AGB  ·  Datenschutz  ·  Impressum  







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

UserInterface-Klasse

Ein Thema von cltom · begonnen am 30. Dez 2024 · letzter Beitrag vom 31. Dez 2024
 
cltom

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

UserInterface-Klasse

  Alt 30. Dez 2024, 09: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 09:22 Uhr)
  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 10: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