AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Von Methode in eigene Klasse auf Form1 zugreifen.
Thema durchsuchen
Ansicht
Themen-Optionen

Von Methode in eigene Klasse auf Form1 zugreifen.

Ein Thema von Christian18 · begonnen am 5. Okt 2005 · letzter Beitrag vom 5. Okt 2005
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Von Methode in eigene Klasse auf Form1 zugreifen.

  Alt 5. Okt 2005, 18:22
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
  Mit Zitat antworten Zitat
delphifan2004

Registriert seit: 26. Nov 2004
Ort: Dresden
274 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Von Methode in eigene Klasse auf Form1 zugreifen.

  Alt 5. Okt 2005, 18:43
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
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: Von Methode in eigene Klasse auf Form1 zugreifen.

  Alt 5. Okt 2005, 18:46
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
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Von Methode in eigene Klasse auf Form1 zugreifen.

  Alt 5. Okt 2005, 20:07
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:12 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