| rady i porady | softsale > rady |
| < poprzednia rada | następna rada > |
Jak odczytać bieżącą pozycję kursora w MemoEdit?
W celu odczytu i zmiany bieżącej pozycji kursora w MemoEdit użyto dwóch procedur: getmemorowcol (M:tmemo;var row,col:LongInt) oraz setmemorowcol (M:tmemo;var row,col:integer).
...
implementation
{$R *.DFM}
procedure tform1.getmemorowcol(M:tmemo;var row,col:LongInt);
begin
row:=Sendmessage(m.handle,EM_LINEFROMCHAR,m.selstart,0);
col:=m.selstart-sendmessage(m.handle,EM_LINEINDEX,row,0);
panel1.caption:=
'(wiersz,kolumna)'+'('+inttostr(row)+','+inttostr(col)+')';
end;
procedure tform1.setmemorowcol(M:tmemo;var row,col:integer);
begin
m.selstart:=SendMessage(m.handle,EM_LINEINDEX,row,0)+col;
end;
W obsłudze zdarzenia OnClick memoedita wywołujemy metodę getmemorowcol a w metodzie OnClick dla komponentów UpDown1 i UpDown2 metodę setmemorowcol. procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType); begin wiersz:=strtoint(edit1.text); kolumna:=strtoint(edit2.text); setmemorowcol(memo1,wiersz,kolumna); memo1.setfocus; panel1.caption:=' Pozycja kursora:'+ inttostr(memo1.selstart); end; W przykładzie tip23.zip po kliknięciu myszką na pozycji tekstu w memoedicie na panelu zostaną wyświetlone współrzędne (wiersz,kolumna). Przy zmianie wiersza lub kolumny, na panelu zostaje wyświetlona pozycja kursora liczona od zera. |
|
SOFTSALE - Oprogramowanie i Szkolenia softsale@softsale.com.pl 03-565 Warszawa , ul. Borzymowska 43 lok. 301C tel/fax:4084840,GSM:0607612428 |