![]() |
Zeigerposition in Synedit herausfinden
Hallo alle zusammen!
Ich würde gerne in der Statusleiste meines Fensters die Position des Zeigers anzeigen. (So wie in der Sourceansicht bei Delphi links unten.) Ich müsste doch dazu im onChange-Ereignis des SynEdits das betreffende Panel der Statusleiste auf zeile: spalte setzen. :) Mein Problem: Wie finde ich die aktuelle Position (Zeile/Spalte) heraus? :gruebel: Man liest sich, Lorenz |
Re: Zeigerposition in Synedit herausfinden
Hallo,
du kannst es ja mal folgend versuchen.
Delphi-Quellcode:
var
CharPos: TPoint; begin CharPos.Y := SendMessage(SynEdit1.Handle, EM_EXLINEFROMCHAR, 0, SynEdit1.SelStart); CharPos.X := (SynEdit1.SelStart - SendMessage(SynEdit1.Handle, EM_LINEINDEX, CharPos.Y, 0)); Inc(CharPos.Y); Inc(CharPos.X); |
Re: Zeigerposition in Synedit herausfinden
bei uses muss glaub ich noch RichEdit hinzugefügt werden
Delphi-Quellcode:
uses
RichEdit, |
Re: Zeigerposition in Synedit herausfinden
Hallo,
erstmal danke für die Antwort. Aber leider: - Die Werte stimmen nicht wirklich - Ich glaube, das dauert zu lange bei jedem Tastenanschlag. Sowas wie SynEdit.'Zeilennummer' und SynEdit.'Spaltennummer' gibt es ja wahrscheinlich nicht. (D. h. ich hab's evtl. noch nicht gefunden.) Man liest sich, Lorenz |
Re: Zeigerposition in Synedit herausfinden
Hi,
du musst einfach SynEdit.CaretX und SynEdit.CaretY auslesen |
Re: Zeigerposition in Synedit herausfinden
ups.. Welche Werte stimmen denn nicht ?
|
Re: Zeigerposition in Synedit herausfinden
Hallo,
@Benedikt: {Vielen Dank! Jetzt hat es funktioniert! Ich wollte dasselbe vorher schon probieren, weil ich's wo gelesen habe, aber da wurden im AutoComplete von Delphi die Caret... Einträge nicht angezeigt :roll: Jetzt funktioniert's auf jeden Fall und das ist die Hauptsache.} @markus k.: {Irgendwie beide...} MfG Lorenz |
Re: Zeigerposition in Synedit herausfinden
ihc wollt aml fragen welches ereignis ich denn nhemen muss
bei onchange macht er die position ja nur neu, wenn cih was schreibe wenn ich dann aber im text hin und her klicke oder so, dann macht er ja nichts |
Re: Zeigerposition in Synedit herausfinden
Hi,
das Ganze machst du am besten im OnStatusChange des SynEdits:
Delphi-Quellcode:
procedure TForm1.SynEdit1StatusChange(Sender: TObject; Changes: TSynStatusChanges);
begin //Überprüfung oder das Caret wirklich geändert wurde. if (Changes*[scAll, scCaretX, scCaretY]<>[]) then begin //Schreibe CaretX und CaretY sonstwo hin end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz