Érthetetlen viselkedés - popup parancsoknál ugrál az ablak

Sziasztok!

Abban kellene segítség, hogy mi okozza azt a hibát, hogy :

Richedit szerkesztésben a feladat, hogy kijelölök egy szövegrészt az egérrel a selstart és sellength segítségével, a kijelölt szöveget szögletes zárójelbe teszi, majd beszínezi. A programrész tökéletesen működik, ha nyomógombra teszem, de ha popup menűben hajtom végre ugyanazt az utasítást, akkor bár a szövegrésznél marad a kijelölés és a kurzor is, de az ablak a szöveg elejére scrollozik, tekerhetem le a scrollbart. próbálkoztam már a richedit handle módosításával, legjobb eredményem az, hogy akkor a kijelölést, és a szövegkurzort leteszi az ablak aljára.

Mi okozhatja, hogy nyomógombnál ezt nem csinálja a program, popupnál meg igen? El lehet képzelni, hogy három egymás melletti szó kijelölésével mennyit kell ugrálni, viszont nyomógombnál minden marad a helyén.

Itt a programrészlet egyébként:

procedure TForm1.N2Click(Sender: TObject); //popup menü eleme
var insertstring : string;
kezd, hossz, a :integer;
begin
with richedit1 do
begin
insertstring:= Text; //beszúrás részei
kezd:=SelStart+1;
hossz:=Sellength+2;
insert('[[',insertstring,kezd);
insert(']]',insertstring,kezd+hossz);
Text:=insertstring;

selstart:=kezd; //színezés részei
sellength:=hossz;
SelAttributes.Color := clblue;

//Ezzel próbálkoztam:
SendMessage(RichEdit1.handle, EM_SCROLLCARET,0,0);

end;

end;

Előre is köszi a segítséget...
üdv avogado

Könyvajánló

Programozzunk Turbo Delphi Rendszerben