![]() |
variablen in variablen
hallo,
ich hab da mal ne allgemeine frage zu variablen. gibt es irgendeine möglichkeit variablen abhängig von anderen variablen bspw. bei records zu machen... also jetzt konkret der nutzer wählt etwas aus und eine variable bekommt den wert 'audi' und jetzt habe ich ganz viele records wie z.b. audi, mercedes,... und jetzt soll wenn ein bspw. auto ausgewählt ist der wert automatisch in eine variable eingefügt werden... also etwa so: x:='audi'; label1.caption:=x.preis; also so in der art wäre echt cool wenn es da was geben würde, würde vieles vereinfachen danke für eure antworten |
AW: variablen in variablen
So einfach funktioniert das nicht. Man könnte baer mit assoziativen Arrays arbeiten oder dafür extended RTTI heranziehen. Performat wird aber keine der Möglichkeiten sein
|
AW: variablen in variablen
Du kannst an alle Komponenten wie ListBox oder ComboBox usw. Objekte "anhängen". Wählt einer was aus, liest du die Informationen aus dem Objekt aus. Was das ist, hängt an dir.
|
AW: variablen in variablen
RTTI alleine wird da nicht viel helfen, denn woher soll die Variable dann den Preis wissen, wenn man ihr nur einen String zuweist?
In einen OleVariant kann man Interfaces reinpacken und dann über dynamische Property darauf zugreifen. z.B. zu sehen bei beim TWebBrowser, wenn man über DOM auf den HTML-Inhalt zugreift. Aber im Prinzip wäre hier wohl OOP eher angebracht. Eine TAuto-Klasse, welche einen Laden-Befehl hat, dem man die Marke sagt und dann kann man über die Property der Klasse auf die Daten des Autos zugreifen. PS: Der Weg über OleVariant hat einen Nachteil ... die Autovervollständigung des Code-Insight kann nicht helfen, da sie aus der Variable (wärend der Programmierung) natürlich nicht weiß ob und was für ein Objekt mal da drin sein wird. |
AW: variablen in variablen
Ich habe das Gefühl, das sich der Threadersteller etwas komplizierter ausgedrückt hat als er es evtl. benötigt. Irgendwie bin ich der Meinung zu erraten was er haben will, aber es soll bitte sein Vorhaben vorher etwas konkretisieren. Vielleicht täusche ich mich.
|
AW: variablen in variablen
Zitat:
|
AW: variablen in variablen
Himitsu hat schon recht. Hier sollte definitiv auf OOP zurückgegriffen werden, wenn nicht sogar auf die netten Interfaces. Das mit den Records wäre hier imho eher fehl am Platz! Hier könnte man auch herrlich mit Spring arbeiten.
Delphi-Quellcode:
IAuto = interface
// GUID function GetPrice(): Integer; function GetWeightInKg(): Integer; // etc. end; TAudi = class(TInterfacedObject, IAuto) public function GetPrice(): Integer; function GetWeightInKg(): Integer; end; TMercedes = class(TInterfacedObject, IAuto) public function GetPrice(): Integer; function GetWeightInKg(): Integer; end; // Klassen im DI-Container registrieren GlobalContainer.RegisterType<TAudi>().Implements<IAuto>('audi'); GlobalContainer.RegisterType<TAudi>().Implements<IAuto>('mercedes'); GlobalContainer.Build(); // So, so viel zur Vorarbeit... var CarName : string; begin CarName := GetCarName(); Car := ServiceLocator.GetService<IAuto>(CarName); edtCarPrice.Text := Car.GetPrice(); edtCarWeight.Text := Car.GetWeight(); end; // So, nun ist nur noch die Frage, wie GetCarName aussieht... fnuction TForm1.GetCarName(): string; begin Result := LowerCase(cmbbxCarSelection.Text); // -- Oder du musst ein Mapping vornehmen -- if (cmbbxCarSelection.Text = 'Audi A3') then Result := 'audi' else if (cmbbxCarSelection.Text = 'Mercedes A-Klasse') then Result := 'mercedes' // etc... end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 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-2025 by Thomas Breitkreuz