Einzelnen Beitrag anzeigen

Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: TSynEdit Aktuelle Zeile Farbig

  Alt 19. Okt 2006, 22:04
Ich versuche jetzt mal, deinen Code nachzuvollziehen:
Code ist also dein TSynEdit (nehme ich mal an), aber warum willst Du dem Ereignis OnKeyDown/OnKeyUp einen String zuweisen??? (zeile hast du ja als String definiert)
Was bitte soll das werden?

OnKeyDown/OnKeyUp sind Prozeduren, die ausgeführt werden, wenn der Benutzer eine Taste drückt bzw. loslässt.

Mal ne Frage:
Weißt Du was der Objektinspektor ist?

Wenn ja, dann verwende mal unter Ereignisse das Event OnKeyUp, dann sollte diese Prozedur erscheinen die Du mit deinem Code füllst, das sieht dann in etwa so aus:
Delphi-Quellcode:
procedure TForm1.CodeKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Statusbar1.Panels[1].Text:='Zeile '+IntToStr(Code.CaretY);
  //ActiveLineColor würde ich auch im ObjektInspektor setzen, im OnChange-Ereignis ist dies wohl äußerst ineffizient
  //auch die restlichen Befehle kannst du weglassen, SetFocus ergibt hier keinen Sinn
end;
OnChange wird nur ausgelöst, wenn ein Zeichen eingegeben wird, also ein Buchstabe oder Enter - wenn Du den Cursor bewegst gibst Du ja nix im SynEdit ein, also wird auch nicht das Ereignis OnChange ausgelöst.
Das Ereignis OnKeyDown/OnKeyUp wird dagegen bei jedem Tastendruck ausgelöst, also auch wenn z.B. die Pfeiltasten gedrückt werden.
Jetzt kann man die Zeile natürlich auch ändern, wenn man mit der Mouse an eine bestimmt Stelle klickt - dafür gibt es dann das Ereignis OnClick - dort schreibst Du dann am besten das gleiche rein, wie bei OnKeyUp.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat