Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Vereinfachen von Quellcode? (https://www.delphipraxis.net/37926-vereinfachen-von-quellcode.html)

Grolle 12. Jan 2005 12:05


Vereinfachen von Quellcode?
 
Gibt es hierfür eine einfachere Lösung?
Delphi-Quellcode:
begin
     if PageControl1.ActivePage = TabSheet1 then
     SynEdit1.Undo;
     if PageControl1.ActivePage = TabSheet2 then
     SynEdit2.Undo;
     if PageControl1.ActivePage = TabSheet3 then
     SynEdit3.Undo; ..........usw.
end;
Muss ich diesen Ablauf für alle Synedits schreiben,
oder kann man das irgendwie kürzen?
THX: Grolle

Leuselator 12. Jan 2005 12:12

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ß

arbu man 12. Jan 2005 12:14

Re: Vereinfachen von Quellcode?
 
Delphi-Quellcode:
  (FindComponent('SynEdit'+IntToStr(numer)) as TSynEdit).Undo
Und das in eine schleife einbauen

shmia 12. Jan 2005 12:15

Re: Vereinfachen von Quellcode?
 
Delphi-Quellcode:
begin
     case PageControl1.ActivePageIndex of
      0 : SynEdit1.Undo;
      1 : SynEdit2.Undo;
      2 : SynEdit3.Undo;
     end;
end;

mumu 12. Jan 2005 12:17

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;

Grolle 12. Jan 2005 12:32

Re: Vereinfachen von Quellcode?
 
Klasse! Danke für eure Antworten! :corky:
Grolle

Nisbo 26. Mär 2006 17:44

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 ?

Matze 26. Mär 2006 18:07

Re: Vereinfachen von Quellcode?
 
Moin

Du kannst versuchen, davor ein

Delphi-Quellcode:
SynEdit.BeginUndo;
und danach ein

Delphi-Quellcode:
SynEdit.EndUndo;
oder so in der Art, zu schreiben. Wenn du allerdings etwas machst wie SynEdit.Text := ... geht das leider nicht.

Nisbo 26. Mär 2006 18:14

Re: Vereinfachen von Quellcode?
 
Delphi-Quellcode:
  SynEdit1.BeginUndo;
  SynEdit1.Lines.Add(sprachvar) ;
  SynEdit1.EndUndo;
geht leider nicht:

[Fehler] Unit1.pas(138): Undefinierter Bezeichner: 'BeginUndo'
[Fehler] Unit1.pas(140): Undefinierter Bezeichner: 'EndUndo'

Matze 26. Mär 2006 18:18

Re: Vereinfachen von Quellcode?
 
Hi,

sorry, hatte es nicht mehr im Kopf, es muss

Delphi-Quellcode:
SynEdit1.BeginUndoBlock;
// ...
SynEdit1.EndUndoBlock;
heißen. Aber das sagt dir auch die Codevervollständigung. :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:24 Uhr.
Seite 1 von 2  1 2      

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