AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

variablen in variablen

Ein Thema von JP29 · begonnen am 14. Mär 2012 · letzter Beitrag vom 15. Mär 2012
 
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: variablen in variablen

  Alt 15. Mär 2012, 07:33
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;
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 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