![]() |
Frage zu SynEdit.
Hallo ich habe keine Ahnung ob ich jetzt mit meiner Frage in der richtigen Rubrik hier gelandet bin. Falls nicht, entschuldigt das bitte.
Also nun zu meiner Frage. Ich habe ein ganz einfache Projekt mit einem SynEdit EditirFeld und einer Statusleiste angelegt. Nun würde ich gerne die Courserposition in der Statausleiste anzeigen lassen. Mein bisheriger Quelletxt scheitert am umwandeln bzw. auslesen des Datentyps TSynStatusChange. Vielleicht wisst Ihr was ich falsch mache? Hier der Code:
Delphi-Quellcode:
[edit=Sharky]Delphi-Tags gesetzt. Einfach [*delphi] vor und [*/delphi] hinter den Code setzen (ohne die *) Mfg, Sharky[/edit]
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, SynEdit; type TForm1 = class(TForm) SynEdit1: TSynEdit; StatusBar1: TStatusBar; procedure SynEdit1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; CharPos_x: TSynStatusChange; CharPos_y: TSynStatusChange; implementation {$R *.dfm} procedure TForm1.SynEdit1Change(Sender: TObject); var CharPos: TSynStatusChange; begin CharPos := SynEdit.scCaretx; StatusBar1.Panels[0].Text :=Format('Ln %d', [CharPos[0]]); end; end. |
Re: Frage zu SynEdit.
Zitat:
ersteinmal "Herzlich Willkommen in der DelphiPRAXIS". und Du bist in der richtigen Sparte ;-) Ich habe das eben zum testen einfach mal so gemacht:
Delphi-Quellcode:
Also einfach im .OnKeyUp und OnKeyDown die Possition des Carets in der Statusbar anzeigen.
procedure TForm1.SynEdit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState); begin StatusBar1.Panels[0].Text :=Format('Ln %d', [SynEdit1.CaretY]); end; procedure TForm1.SynEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin StatusBar1.Panels[0].Text :=Format('Ln %d', [SynEdit1.CaretY]); end; |
Re: Frage zu SynEdit.
ähm sharky, aber was machst du, wenn der Benutzer mit der Maus die Cursorposition wechselt ?
Moin werfux, folgenden Code verwende ich immer:
Delphi-Quellcode:
procedure TForm1.SynEdit1StatusChange(Sender: TObject;
Changes: TSynStatusChanges); begin if Changes * [scAll, scCaretX, scCaretY] <> [] then begin Statusbar1.Panels[1].Text := Format(' Zeile:%6d, Spalte: %3d', [SynEdit1.CaretY, SynEdit1.CaretX]); end; end; |
DANKE
Danke damit kann ich schon eine Menge anfangen...
|
Re: Frage zu SynEdit.
Zitat:
Ne, Du hast ja recht. Das Nagetier am PC habe ich total vergessen. |
Re: Frage zu SynEdit.
Servus :hi:
Also ich mach es wie aus den Beispielen von SynEdit: Eine TActionList auf die Form droppen, dann ein neues TAction Object erzeugen (Doppelklick auf die ActionList, dann Rechtsklick und neue Aktion wählen). Dann die Aktion passend benennen, jetzt die Aktion anklicken im OI bei den Events des Objekts von TAction das Event OnUpdate auswählen, doppelklick darauf und dann folgenden Code rein:
Delphi-Quellcode:
Wobei du das Feld bzw. noch den Namen an deine Statusbar anpassen musst ;)
var
Point: TPoint; begin Point := Editor.CaretXY; StatusBar.Panels[0].Text := Format(' %6d:%3d ', [Point.Y, Point.X]); end; Jetzt finalerweise noch die Statusbar anklicken, dann wieder im OI auf der Eventsleiste gehen und oben beim Feld Action unsere gerade frisch definierte Action auswählen, das wars :D jetzt dürfte sich alles von alleine Ändern, egal ob klicken, tasten oder sonst was ;) mfg phlux :hi: |
Re: Frage zu SynEdit.
Also bei mir funzt der Code nicht ganz.
Delphi meckert rum: Zitat:
Delphi-Quellcode:
mfG
procedure TForm1.Action1Update(Sender: TObject);
var Point: TPoint; begin Point := SynEdit1.CaretXY; StatusBar1.Panels[0].Text := Format(' %6d:%3d ', [Point.Y, Point.X]); end; Störtebeker |
Re: Frage zu SynEdit.
Liegt vielleicht daran, das der Code schon 3 Jahre alt ist? ;-)
|
Re: Frage zu SynEdit.
Hast du vielleicht ne Ersatzlösung?
|
Re: Frage zu SynEdit.
Zitat:
schaue doch mal nach was für einen Typ .CaretXY zurück gibt. Es scheint ja kein TPoint zu sein ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 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