Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
Delphi 2010 Professional
|
"Gehe zu Zeile" in TRichEdit bzw. TSynEdit
29. Jul 2003, 21:14
Hallo,
ich wollte für mein Programm eine "Gehe zu Zeile" funktion machen..
aber irgendwie klappt mein Code nicht:
Delphi-Quellcode:
procedure TMainForm.GotoLine(Line: Integer);
var
Pos: TPoint;
HwnD: Integer;
begin
if (Documents.PageCount <= 0) or (Documents.ActivePage = nil) then Exit;
Pos.X := 0;
if not Dokumente[Documents.ActivePage.TabIndex+1].EditorMode then
HwnD := (FindComponent('RichEdit'+IntToStr(Documents.ActivePage.TabIndex+1)) as TRichEdit).Handle else
HwnD := (FindComponent('SynEdit'+IntToStr(Documents.ActivePage.TabIndex+1)) as TSynEdit).Handle;
Pos.Y := Line;
if not Dokumente[Documents.ActivePage.TabIndex+1].EditorMode then
begin
SendMessage(HwnD,EM_LINESCROLL,0,-1 * SendMessage(hWnD, EM_EXLINEFROMCHAR, 0, (FindComponent('RichEdit'+IntToStr(Documents.ActivePage.TabIndex+1)) as TRichEdit).SelStart) );
(FindComponent('RichEdit'+IntToStr(Documents.ActivePage.TabIndex+1)) as TRichEdit).SelStart := SendMessage(hwnd,EM_LINEINDEX,Pos.Y -1,0);
end else
begin
SendMessage(hwnd,EM_LINESCROLL,0,-1 * SendMessage(hwnd, EM_EXLINEFROMCHAR, 0, (FindComponent('SynEdit'+IntToStr(Documents.ActivePage.TabIndex+1)) as TSynEdit).SelStart) );
(FindComponent('SynEdit'+IntToStr(Documents.ActivePage.TabIndex+1)) as TSynEdit).SelStart := SendMessage(hwnd,EM_LINEINDEX,Pos.Y,0);
end;
SendMessage(hwnd,EM_SCROLLCARET,0,0);
Sendmessage(hwnd,EM_LINESCROLL,0, Pos.Y - 1);
end;
kann mir jemand weiterhelfen?
mfG
mirage228
David F.
|
|
Zitat
|