AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu SynEdit.

Ein Thema von werfux · begonnen am 10. Jun 2004 · letzter Beitrag vom 15. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
werfux

Registriert seit: 31. Mai 2004
2 Beiträge
 
#1

Frage zu SynEdit.

  Alt 10. Jun 2004, 13:54
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:
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.
[edit=Sharky]Delphi-Tags gesetzt. Einfach [*delphi] vor und [*/delphi] hinter den Code setzen (ohne die *) Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Frage zu SynEdit.

  Alt 10. Jun 2004, 14:09
Zitat von werfux:
Hallo ich habe keine Ahnung ob ich jetzt mit meiner Frage in der richtigen Rubrik hier gelandet bin....
Hai werfux,

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:
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;
Also einfach im .OnKeyUp und OnKeyDown die Possition des Carets in der Statusbar anzeigen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Frage zu SynEdit.

  Alt 10. Jun 2004, 14:17
ä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;
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
werfux

Registriert seit: 31. Mai 2004
2 Beiträge
 
#4

DANKE

  Alt 10. Jun 2004, 14:19
Danke damit kann ich schon eine Menge anfangen...
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Frage zu SynEdit.

  Alt 10. Jun 2004, 14:34
Zitat von MrKnogge:
ähm sharky, aber was machst du, wenn der Benutzer mit der Maus die Cursorposition wechselt ?...
Ihm die Maus klauen

Ne, Du hast ja recht. Das Nagetier am PC habe ich total vergessen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#6

Re: Frage zu SynEdit.

  Alt 10. Jun 2004, 15:04
Servus
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:
var
  Point: TPoint;

begin
  Point := Editor.CaretXY;
  StatusBar.Panels[0].Text := Format(' %6d:%3d ', [Point.Y, Point.X]);
end;
Wobei du das Feld bzw. noch den Namen an deine Statusbar anpassen musst
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 jetzt dürfte sich alles von alleine Ändern, egal ob klicken, tasten oder sonst was

mfg phlux
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#7

Re: Frage zu SynEdit.

  Alt 14. Okt 2007, 16:06
Also bei mir funzt der Code nicht ganz.

Delphi meckert rum:

Zitat:
[ERROR]...: Incompatible types: 'TPoint' and 'TBufferCoord'
Delphi-Quellcode:
procedure TForm1.Action1Update(Sender: TObject);
var
  Point: TPoint;

begin
  Point := SynEdit1.CaretXY;
  StatusBar1.Panels[0].Text := Format(' %6d:%3d ', [Point.Y, Point.X]);
end;
mfG
Störtebeker
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Frage zu SynEdit.

  Alt 14. Okt 2007, 16:44
Liegt vielleicht daran, das der Code schon 3 Jahre alt ist?
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#9

Re: Frage zu SynEdit.

  Alt 14. Okt 2007, 17:07
Hast du vielleicht ne Ersatzlösung?
"And he piled upon the whale´s white hump - a sum of all the rage and hate felt by his whole race.
If his chest had been a cannon, he would have shot his heart upon it."
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Frage zu SynEdit.

  Alt 14. Okt 2007, 17:09
Zitat von Störtebeker:
Hast du vielleicht ne Ersatzlösung?
Hai Störebeker,

schaue doch mal nach was für einen Typ .CaretXY zurück gibt. Es scheint ja kein TPoint zu sein
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:35 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