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 SynEdit - Bookmarks? (https://www.delphipraxis.net/33001-synedit-bookmarks.html)

glkgereon 31. Okt 2004 09:58


SynEdit - Bookmarks?
 
ja, wie benutz ich die?

gibts da ein tut zu?

jim_raynor 31. Okt 2004 12:53

Re: SynEdit - Bookmarks?
 
Es gibt doch bei TSynEdit diverse Bookmark Funktionen

IsBookmark - Prüfen ob ein Bookmark gesetzt ist
GetBookmark - Ermittle Position zu einem Bookmark
SetBookmark - Setze einen Bookmark
ClearBookmark - Lösche einen Bookmark
und
GotoBookmark - Gehe zu einem Bookmark

Ich denke das sollte dir weiterhelfen.

glkgereon 31. Okt 2004 13:04

Re: SynEdit - Bookmarks?
 
kannst du mal einen beispiel-code bringen?

weil ich komm damit nicht zurecht irgendwie...

jim_raynor 31. Okt 2004 14:03

Re: SynEdit - Bookmarks?
 
Mmhh.

Erstmal sind die immer Standardmäßig aktiv. Mit Strg+0..9 kannst du zu einem springen und mit Strg+Shift+0..9 kannst du einen setzen.

Zum Setzen eines Bookmarks hab ich folgenden Code:

Delphi-Quellcode:
if EditFeld.IsBookmark(Tag) then
begin
  EditFeld.GetBookMark(Tag,X,Y);
  if Y=EditFeld.CaretY then
  begin
    EditFeld.ClearBookMark(Tag);
    ImageIndex:=-1;
    exit;
  end;
end;
EditFeld.SetBookMark(Tag,EditFeld.CaretX,EditFeld.CaretY);
ImageIndex:=Tag;
Tag gibt dabei die Nummer des Bookmarks an (0..9). Schaue also, ob an der aktuellen Position der Bookmark gerade gesetzt ist, wenn ja wird er gelöscht. Ansonsten wird er immer an die aktuelle Position (EditFeld.CaretX und EditFeld.CaretY) gesetzt.

Um zu einer Marke zu springen musst du nur EditFeld.GotoBookMark(Tag) machen.

glkgereon 31. Okt 2004 14:25

Re: SynEdit - Bookmarks?
 
und wie kann ich jetzt mehrere bookmarks setzen?

also der code funzt....

jim_raynor 1. Nov 2004 16:04

Re: SynEdit - Bookmarks?
 
Tag durch eine entsprechende Zahl von 0 bis 9 ersetzen. :roll:
Am besten in eine Funktion packen und die Nummer des Bookmarks als Paramter übergeben lassen.

glkgereon 1. Nov 2004 17:51

Re: SynEdit - Bookmarks?
 
ja, ich möchte das automatisch hochgezählt wird mit den bookmarks...kann ich da tag nicht einfach durch eine variable ersetzen, die dann hoch/runtergezählt wird?

wo muss ich dann hoch/runterzählen?

jim_raynor 1. Nov 2004 18:00

Re: SynEdit - Bookmarks?
 
Ja kannst du: Tag ist bei nur ein x-beliebige Integer-Variable.

Delphi-Quellcode:
var
  i: Integer;
begin
  for i:=0 to 9 do
  begin
    if not EditFeld.IsBookmark(i) then
    begin
      EditFeld.SetBookMark(i,EditFeld.CaretX,EditFeld.CaretY);
    end;
  end;
end;

glkgereon 1. Nov 2004 18:22

Re: SynEdit - Bookmarks?
 
:gruebel:
also nach meinem verständniss sollte der code 9 bookmarks machen...aber bei mir passiert nix...

ich krieg das echt nicht hin

jim_raynor 1. Nov 2004 19:16

Re: SynEdit - Bookmarks?
 
Mit dem Code macht er alle an die gleiche stelle, sehen tust du immer nur einen. Man sollte nach dem SetBookmark noch ein break einbauen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 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