Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Zeigerposition in Synedit herausfinden (https://www.delphipraxis.net/16597-zeigerposition-synedit-herausfinden.html)

lorenz 19. Feb 2004 18:50


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

Markus K. 19. Feb 2004 18:53

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);

Markus K. 19. Feb 2004 18:56

Re: Zeigerposition in Synedit herausfinden
 
bei uses muss glaub ich noch RichEdit hinzugefügt werden

Delphi-Quellcode:
uses
  RichEdit,

lorenz 19. Feb 2004 19:05

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

Benedikt 19. Feb 2004 19:07

Re: Zeigerposition in Synedit herausfinden
 
Hi,

du musst einfach SynEdit.CaretX und SynEdit.CaretY auslesen

Markus K. 19. Feb 2004 19:09

Re: Zeigerposition in Synedit herausfinden
 
ups.. Welche Werte stimmen denn nicht ?

lorenz 19. Feb 2004 19:11

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

schan 8. Jun 2004 12:19

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

Benedikt 8. Jun 2004 15:57

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:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz