Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Dynamisch Variablenname erzeugen (https://www.delphipraxis.net/102801-dynamisch-variablenname-erzeugen.html)

shmia 5. Nov 2007 11:02

Re: Dynamisch Variablenname erzeugen
 
Zitat:

Zitat von blackmice
Nur ist demjenigen für den ich das Programm schreibe erst jetzt eingefallen, dass er statt 1 Trackbar mehr braucht. Und wenn ich jetzt diese Variablen in nen Array setze, kann ich an 1000 Stellen anfangen alles neu zu machen.

Erfahrung aus der Praxis:
Man kann Probleme im Sourcode sofort beheben und benötigt dafür die Zeit X.
Man kann es auch lassen wie es ist. Nach einigen weiteren Änderungen merkt man dann,
dass die ganze Soße jetzt so komplex geworden ist, dass man eigentlich fast nichts mehr ändern
kann ohne Angst zu haben müssen, dass danach nichts mehr funktioniert. (*)
Stichwort: Antipattern , Spaghetticode
Nun braucht man die Zeit 5 bis 20 * X.

*) bei kommerzieller Software hat man dann "einen Klotz in der Hos'".
Nervige Anrufe der Kunden mit Fehlermeldungen kosten Arbeitszeit und schaden dem Image.

Deep-Sea 5. Nov 2007 11:02

Re: Dynamisch Variablenname erzeugen
 
Zitat:

Zitat von leddl
Delphi-Quellcode:
procedure WasAuchImmer(Var a : Integer; Var b : String; Sender : TObject)
begin
  a := (Sender as TTrackBar).Position;
  b := "Ich bin ein String";
end;

procedure TForm1.THRMinBarChange(Sender: TObject);
Begin
  WasAuchImmer(ersterInteger, ersterString);
End;

procedure TForm1.HVBarChange(Sender: TObject);
Begin
  WasAuchImmer(zweiterInteger, zweiterString);
End;

Du solltest auch drei Parameter übergebne, wenn deine Procedure drei erwartet :stupid:

blackmice 5. Nov 2007 11:05

Re: Dynamisch Variablenname erzeugen
 
Manchmal ist man ja auch so vernagelt in seinem Denken, dass einem die einfachsten Ideen nicht einfallen. Klar kann ich auch die Variablen im Aufruf mitgeben. Danke.

leddl 5. Nov 2007 11:05

Re: Dynamisch Variablenname erzeugen
 
Zitat:

Zitat von Deep-Sea
Du solltest auch drei Parameter übergebne, wenn deine Procedure drei erwartet :stupid:

Das passiert, wenn man nachträglich noch was einfügt :zwinker:

kolbaschedder 5. Nov 2007 11:10

Re: Dynamisch Variablenname erzeugen
 
Hallo,

Hatte mal ein ähnliches Problem. TObject hat eine frei verfügbare Eigenschaft "Tag : Integer". Hier kannst du jedem Trackbar eine ID zuordnen. Alle Trackbars bekommen die gleiche obChange zugeordnet.

in deiner onChange kannst du dann sowas machen

Delphi-Quellcode:
  case Sender.tag of
    1 : a := TTrackbar(Sender).position;
    2 : b := TTrackbar(Sender).position;
    3 : c := TTrackbar(Sender).position;
    4 : d := TTrackbar(Sender).position;
    5 : e := TTrackbar(Sender).position;
...
MfG

Kolbi

Deep-Sea 5. Nov 2007 11:12

Re: Dynamisch Variablenname erzeugen
 
Idee:
Du erstellt ein Objekt mit der Eigenschaft X (Name egal) als Index-Eigenschaft. Der Index-Parameter ist ein String, also hier der Name der Variable.
So kannst du überall wo auf eine Variable zugegriffen wird, wie zB. iThrMaxHigh, auf "Objekt.X['iThrMaxHigh']" zugreifen, es geht dann sowohl lesen als auch schreiben und du musst nur kurz die Funktion "Ersetzen" nutzen ...

blackmice 5. Nov 2007 11:22

Re: Dynamisch Variablenname erzeugen
 
Hmm, mal sehen, vielleicht kann ich beides kombinieren.

Ich danke allen auf jeden Fall für die Unterstützung und werde einfach mal mit den genannten Tipps ein bischen experimentieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 Uhr.
Seite 2 von 2     12   

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