Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Von Methode in eigene Klasse auf Form1 zugreifen. (https://www.delphipraxis.net/54509-von-methode-eigene-klasse-auf-form1-zugreifen.html)

Christian18 5. Okt 2005 17:22


Von Methode in eigene Klasse auf Form1 zugreifen.
 
Hallo,

ich habe mal eine Frage. Ich habe mir eine kleine Klasse in einer neuen Unit geschrieben. Jetzt will ich in dieser Klasse mit einer Methode auf mein Hauptformular zugreifen. Hauptformular --> Form1.

Meine Frage ist jetzt wie ich das machen kann??? Ich habe im Internet gelesen das man sowas vieleicht mit Vererbung machen kann. Ist es wirklich so???

Achso, die Methode in meiner Klasse soll auf meinem Hauptformular einen Frame ausblenden.

Frame1.Visible:=False;

So das war jetzt auch schon alles.

MFG Christian18

delphifan2004 5. Okt 2005 17:43

Re: Von Methode in eigene Klasse auf Form1 zugreifen.
 
Hallo Christian18!

Wieso sollte das nicht gehen. Hier mein Vorschlag.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
  private
    FProp: Integer;
  public
    procedure DoSomething;
    preoperty aProp: Integer read FProp write FProp;
  end;

  TMyClass = class
    procedure CallFormMethod;
  end;

procedure TMyClass.CallFormmethod;
begin
   Form1 := TForm1.Create(self); //Kann sein, das Du das hier vergessen hast!!!!!!!!!!!!!!
   Form1.DoSomething;
   Form1.aProp := 5;
end;
Maximalen Erfolg wünscht

Delphifan2004

MarcoWarm 5. Okt 2005 17:46

Re: Von Methode in eigene Klasse auf Form1 zugreifen.
 
da wird Dir sicher jeder was anderes als Lösung anbieten, denn da gibts verschiedene Möglichkeiten.

die einfachste:
du greifst in deiner Klasse einfach auf die Variable Form1 zu.... das ist ziemlich unschön, da Deine Klasse sonst nur in diesem speziellen Programm laufen würde.

etwas spezieller:
du übergibst Deiner Klasse das Form1 als Owner (beim constructor create(AOwner: TForm1) ) dann hast du die Variable in Deiner klasse verfügbar... brauchst aber immer den Formulartyp TForm1 in deinem Projekt (weil du ja auf das spezielle Frame zugreifen willst)

die universelle:
du übergibst Deiner Klasse das ein normales TForm als Owner (beim constructor create(AOwner: TForm) ) jetzt musst du allerdings per Controls[] des TForm rausfinden, welches Control auf dem Formular dein Frame ist, dafür ist die Klasse aber universell einsetzbar.

die universelle2:
du übergibst Deiner Klasse ein Frame als Owner (beim constructor create(AOwner: TFrame) ) jetzt kannst du direkt über den Owner gehen und den verstecken oder anzeigen

Tipp:
du musst es nich unbedingt als Owner übergeben... du kannst die Frames/Forms auch als "normale" published bzw. public Variable übergeben

alzaimar 5. Okt 2005 19:07

Re: Von Methode in eigene Klasse auf Form1 zugreifen.
 
Einen hab ich noch: Als Event.
Deine Klasse stellt ein Event zur Verfügung (z.B. OnExternalAccess). Die TForm1 biegt das Event auf eine kleine Methode um und gut ist. So ist die Klasse universell einsetzbar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:29 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