2010-08-03 15 views
12

Je veux insérer une région dans une vue d'édition, puis replier cette région.Comment plier une région insérée avec l'API Open Tools?

// fEditView: IOTAEditView; 

var 
    writer: IOTAEditWriter; 
begin 
    writer := fEditView.Buffer.CreateUndoableWriter; 
    //... 
    writer.Insert('{$REGION ''Documentation''}'#13#10'{$ENDREGION}'); 
    writer := nil; // Flush the buffer 
    fEditView.Position.GotoLine(lineNo); // go to the line number of the region 
    fEditView.Paint; 
end; 

Cet extrait de code insérera une région dans l'éditeur de code. Mais l'EDI a besoin d'une action pour générer une telle région dans l'éditeur de code.

Est-il possible de forcer l'IDE faire cette action et je peux utiliser

(fEditView as IOTAElideActions).ElideNearestBlock; 

le plier?

+0

Juste une idée: Avez-vous essayé de libérer l'écrivain? –

+0

J'ai remarqué cela et mis l'écrivain à zéro avant d'autres actions. –

Répondre

2

trouvés par les crasseux essais et erreurs :-)

(fEditView as IOTAElideActions).EnableElisions; 
(fEditView as IOTAElideActions).EnableElisions; 
(fEditView as IOTAElideActions).ElideNearestBlock; 

EnableElisions() semble effectivement bascule les élisions disposent.

La désactivation et la remise en marche des élec- tions semble avoir l'effet escompté. Il y a quelques mises à jour de l'écran pas très joli en cours. S'il est possible de supprimer ce que je ne sais pas.