Delphi-PRAXiS

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 Zur Laufzeit erstellte Komponenten eindeutig erkennen (https://www.delphipraxis.net/47580-zur-laufzeit-erstellte-komponenten-eindeutig-erkennen.html)

messie 13. Jun 2005 14:06


Zur Laufzeit erstellte Komponenten eindeutig erkennen
 
Moin,

ich habe in meinem Projekt eine Menge Objekte, denen TEdits zugeordnet sind. Dies werden zur Laufzeit in unterschiedlichen Scrollboxen erstellt und gefüllt. Wenn jetzt ein Wert in einem der TEdits geändert wird muß ich den geänderten Wert prüfen und übergeben. Gibt es dort eine eindeutige Zuordnung für den direkten Zugriff auf die anderen Variablen des Objekts? Andernfalls müßte ich ja alle Objekte durchsuchen, on mein TEdit dazugehört.

Danke, Messie

ibp 13. Jun 2005 14:39

Re: Zur Laufzeit erstellte Komponenten eindeutig erkennen
 
jedes edit hat ein oncahnge ereignis, da kannst du prüfen oder zuordnen! ansonsten verstehe ich dein problem nicht!

messie 13. Jun 2005 14:57

Re: Zur Laufzeit erstellte Komponenten eindeutig erkennen
 
Delphi-Quellcode:
type
  TDemo = class(TObject)
    Edit : TEdit;
    wert : integer;
  end;
var
  Demo : TDemo;

implementation
  Demo := TDemo.create;
  Demo.wert := 8;
  Demo.Edit := TEdit.Create(Form1);//in irgendeinem Steuerelement
  Demo.Edit.Text := IntToStr(wert);
end.
Falls der Wert im TEdit geändert wird, möchte ich den in einem Arbeitsgang an Demo.wert übergeben. (Bedenke, daß ich eine Menge dieser TDemos erzeuge)

Grüße, Messie

messie 14. Jun 2005 06:25

Re: Zur Laufzeit erstellte Komponenten eindeutig erkennen
 
Moin,

ist meine Frage so blöd, daß ich nicht mal eine Abfuhr bekomme?

Grüße, Messie

Kroko1999 14. Jun 2005 06:47

Re: Zur Laufzeit erstellte Komponenten eindeutig erkennen
 
Delphi-Quellcode:
type
  TDemo = class(TObject)
    constructor Create (AOwner: TComponent);
  private
    FEdit: TEdit;
    FWert : integer;
    procedure EditChange (Sender: TObject);
    procedure SetWert (Const Value: Integer);
  protected
  public
   Edit: TEdit read FEdit;
   Wert: Integer read FWert write SetWert;
  end;
var
  Demo : TDemo;

implementation

constructor TDemo.Create;
begin
  FEdit := TEdit.Create (AOwner);
  FEdit.Parent := AOwner;
  FEdit.OnChange := EditChange;
end;

procedure TDEmo.SetWert;
begin
  FWert := Value;
  FEdit.Text := IntToStr(FWert);
end;

procedure EditChange;
begin
  FWert := StrToInt (FEdit.Text);
end;


  Demo := TDemo.Create(Form1);//in irgendeinem Steuerelement
  Demo.Wert := 8;
end.

Robert Marquardt 14. Jun 2005 07:31

Re: Zur Laufzeit erstellte Komponenten eindeutig erkennen
 
Das sieht gut aus. Ich wuerde allerdings Value statt Wert bevorzugen, damit es nicht so ein germish wird.
Ein paar Absicherungen im Code koennten auch nicht schaden. Bei Texteingaben wirft dieser Code noch Exceptions.

Kroko1999 14. Jun 2005 08:02

Re: Zur Laufzeit erstellte Komponenten eindeutig erkennen
 
Absicherung ist klar
Value nehme ich nie, da property Set... damit arbeitet und irgendwann, irgendwo, irgendwie doch mal was schief geht

messie 15. Jun 2005 12:59

Re: Zur Laufzeit erstellte Komponenten eindeutig erkennen
 
Hat eine Weile gedauert, bis ich meine Strukturen soweit umgebaut hatte, aber jetzt funzt es. Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:35 Uhr.

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