Thema: Delphi UserInterface-Klasse

Einzelnen Beitrag anzeigen

cltom

Registriert seit: 22. Sep 2005
224 Beiträge
 
Delphi 12 Athens
 
#1

UserInterface-Klasse

  Alt 30. Dez 2024, 10:16
Delphi-Version: 12 Athens
Hallo,

für einen wiederkehrenden Block von Eingabewerten würde ich gern den Transfer der UI-Elemente ins Objekt als eigene Klasse auslagern, also sinngemäß:

Delphi-Quellcode:

type
  TDataClass = Class(TObject)
        
    public
      ValueA: Integer;
      ValueB: string;

  end;

type
  TTransferClass = Class(TObject)
    
    public
      procedure GetValues(TargetContainer: TWinControl; MyObject: TDataClass);

  end;


Implementation

  procedure TTransferClass.GetValues(TargetContainer: TWinControl; MyObject: TDataClass);
  begin
    TryStrToInt(TargetContainer.edt_ValueA.Text, MyObject.ValueA);
    MyObject.ValueB := TargetContainer.edt_ValueB.Text;
  end;
Das geht natürlich so nicht, weil die Edit-Felder hier ja nicht bekannt sind, die liegen ja am TargetContainer (oder sogar auch nicht).

Eine Variante wäre es, die Controls erst hier zu erzeugen. Finde ich nicht beliebig praktisch, weil die Controls nicht immer an der gleichen Position sind und dann müsste man je nach TargetContainer unterschiedliche Koordinaten definieren. Die zur Designzeit schon zu erzeugen ist da einfacher.

Auch möglich wäre es, via "FindComponent" die Controls zu suchen. Da heißt es (wohl zu recht), dass das nicht empfehlenswert ist, weil langsam und fehleranfällig, wenn sich doch mal ein Controlname ändert.

Ist der Ansatz grundsätzlich verkehrt oder gibt es eine Variante dafür, die ich übersehe?

Danke! Ein frohes neues Jahr!

Geändert von cltom (30. Dez 2024 um 10:22 Uhr)
  Mit Zitat antworten Zitat