![]() |
Vereinfachen von Quellcode?
Gibt es hierfür eine einfachere Lösung?
Delphi-Quellcode:
Muss ich diesen Ablauf für alle Synedits schreiben,
begin
if PageControl1.ActivePage = TabSheet1 then SynEdit1.Undo; if PageControl1.ActivePage = TabSheet2 then SynEdit2.Undo; if PageControl1.ActivePage = TabSheet3 then SynEdit3.Undo; ..........usw. end; oder kann man das irgendwie kürzen? THX: Grolle |
Re: Vereinfachen von Quellcode?
das sieht nach einer onKeyDown-Behandlung aus - wenn ja, dann übergibt sie Dir den Sender - den nach Synedit casten und gut. sonst (wenn das ein ButtonPush ist), solltest Du die Synedits in einer TList speichern - dann kannst Du über den Index zugreifen.
Gruß |
Re: Vereinfachen von Quellcode?
Delphi-Quellcode:
Und das in eine schleife einbauen
(FindComponent('SynEdit'+IntToStr(numer)) as TSynEdit).Undo
|
Re: Vereinfachen von Quellcode?
Delphi-Quellcode:
begin
case PageControl1.ActivePageIndex of 0 : SynEdit1.Undo; 1 : SynEdit2.Undo; 2 : SynEdit3.Undo; end; end; |
Re: Vereinfachen von Quellcode?
du könntest TabShee1, TabSheet2, usw... in ein Array packen und SynEdit1, SynEdit2, ... in ein zweites Array packen.
und dann das ganze mit einer for-Schleife durchgehen.
Delphi-Quellcode:
for i:=0 to Length(TabSheet_array)-1 do
begin if PageControl1.ActivePage = TabSheet_array[i] then SynEdit_array[i].Undo; end; |
Re: Vereinfachen von Quellcode?
Klasse! Danke für eure Antworten! :corky:
Grolle |
Re: Vereinfachen von Quellcode?
habe diesen beitrag durch die suchfunktion gefunden :)
ich habe gerade auch ein Problem mit undo bei SynEdit wenn man in ein SynEdit per hand schreibt dann kann man: SynEdit1.undo; nutzen und es funktioniert auch :) allerdings füge ich bei mir das ganze mittesl: SynEdit1.Lines.Add('text'); ein, und da funktioniert es nicht hat jemand eine idee was ich da falsch gemacht hab ? bzw wie ich das am besten realisieren kann ? |
Re: Vereinfachen von Quellcode?
Moin
Du kannst versuchen, davor ein
Delphi-Quellcode:
und danach ein
SynEdit.BeginUndo;
Delphi-Quellcode:
oder so in der Art, zu schreiben. Wenn du allerdings etwas machst wie SynEdit.Text := ... geht das leider nicht.
SynEdit.EndUndo;
|
Re: Vereinfachen von Quellcode?
Delphi-Quellcode:
geht leider nicht:
SynEdit1.BeginUndo;
SynEdit1.Lines.Add(sprachvar) ; SynEdit1.EndUndo; [Fehler] Unit1.pas(138): Undefinierter Bezeichner: 'BeginUndo' [Fehler] Unit1.pas(140): Undefinierter Bezeichner: 'EndUndo' |
Re: Vereinfachen von Quellcode?
Hi,
sorry, hatte es nicht mehr im Kopf, es muss
Delphi-Quellcode:
heißen. Aber das sagt dir auch die Codevervollständigung. :roll:
SynEdit1.BeginUndoBlock;
// ... SynEdit1.EndUndoBlock; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 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 by Thomas Breitkreuz