AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Auf Methoden einer Form zugreifen die über TFormClass erzeug
Thema durchsuchen
Ansicht
Themen-Optionen

Auf Methoden einer Form zugreifen die über TFormClass erzeug

Ein Thema von Sharky · begonnen am 29. Mär 2005 · letzter Beitrag vom 5. Apr 2005
 
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#9

Re: Auf Methoden einer Form zugreifen die über TFormClass er

  Alt 5. Apr 2005, 08:24
Hallo Sharky,

vielleicht ist meine Ausführung etwas zu knapp gewesen. Die Lösung über RTTI ist fehlerträchtig, weil nicht Typsicher. Die Lösung mit der Vererbungshierarchie zwingt Dich zur Einhaltung einer Linie, die nicht unbedingt gewollt ist, wenn Du über Fabriken Exemplare von Klassen erzeugst, die von einander unabhängig sein können- wie in Deinem Beispiel.
Der Ansatz über Typpürfungen ist deshalb unelegant, weil Du an jeder Stelle an der Du mit unterschiedlichen Klassen arbeitest über jede Klasse prüfen müsstest.

Deshalb mein Vorschlag, Interfaces, hier zB:
Delphi-Quellcode:
type
  IMyInterface = Interface
  ['{70EA899F-F97B-4F8E-9C9E-1C3EF3718EE7}']
    procedure SetLabelText(const AText: string);
  end;
zu verwenden und die Deklaration Deiner Formulare entsprechend zu erweitern
Delphi-Quellcode:
type
  TForm2 = class(TForm, IMyInterface)
  protected
    procedure SetLabelText(const AText: string);
der Code innerhalb des Buttons könnte dann so aussehen:
Delphi-Quellcode:
[..]
  newForm := newFormClass.Create(self);
  try
    //ohne Wissen der konkreten Klasse kann die Methode über
    //das Interface verwendet werden
    if newForm.GetInterface(IMyInterface, myRef) then
      myRef.SetLabelText('AText');

    newForm.ShowModal;
  finally
    FreeAndNil (newForm);
  end;
Vielleicht hilft Dir in diesem Zusammenhang auch das Bei Google suchenfactory pattern oder, zur Vermeidung von Interfaces das Bei Google suchenvisitor pattern der GoF weiter.
gruß, choose
  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 00:30 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