Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Aus Frame heraus auf übergeordnete (haupt)Form zugreifen (https://www.delphipraxis.net/102605-aus-frame-heraus-auf-uebergeordnete-haupt-form-zugreifen.html)

TRBB 31. Okt 2007 21:14


Aus Frame heraus auf übergeordnete (haupt)Form zugreifen
 
Wunderschönen guten Abend,

gibt es eine Möglichkeit aus einem Frame heraus auf die übergeordnete Form zuzugreifen?

Wie zum Beispiel in Javascript über:
parent.


Vielen Dank im Voraus.
TRBB


EDIT (Lösung):
Delphi-Quellcode:
ValidParentForm(self).caption := 'Übergeordnete Form wurde neu beschriftet';

TonyR 31. Okt 2007 21:17

Re: Aus Frame heraus auf übergeordnete (haupt)Form zugreifen
 
:dp: Wilkommen in der DP!!!

Was GENAU möchtest du tun bzw. erreichen?

mkinzler 31. Okt 2007 21:21

Re: Aus Frame heraus auf übergeordnete (haupt)Form zugreifen
 
Interiere über .Parent bis Klasse = TForm ist.

TRBB 31. Okt 2007 21:27

Re: Aus Frame heraus auf übergeordnete (haupt)Form zugreifen
 
Zitat:

Zitat von TonyR
:dp: Wilkommen in der DP!!!

Was GENAU möchtest du tun bzw. erreichen?

Vielen Dank,
Ich habe TForm1. Darin befindet sich ein Frame.
Aus diesem Frame heraus möchte ich auf TForm1 zugreifen.


Zitat:

Zitat von mkinzler
Interiere über .Parent bis Klasse = TForm ist.

Tut mir leid wenn ich etwas beriffsstuzig bin.
Interieren habe ich weder bei Google noch bei Wikipedia gefunden und ich habs noch nie gehört^^
Kannst du mir vielleicht einen kurzen Beispiel Code geben?

Schonmal vielen Dank für die schnelle Antworten.

mkinzler 31. Okt 2007 22:46

Re: Aus Frame heraus auf übergeordnete (haupt)Form zugreifen
 
Delphi-Quellcode:
var
    Parent: TComponent;
...
    Parent := Frame.Parent;
    while not (Parent is TForm) do
        Parent := Parent.Parent;

TRBB 1. Nov 2007 08:47

Re: Aus Frame heraus auf übergeordnete (haupt)Form zugreifen
 
Vielen Dank schon mal.
Leider funktioniert es nicht ganz :(


Der Compiler gibt einige Fehler aus:
Delphi-Quellcode:
procedure TFrameForm.Button1Click(Sender: TObject);
var parentForm: TComponent;
begin
  parentForm := FrameForm.Parent;
  while not (parentForm is TMainForm) do
    parentForm := parentForm.Parent; //Fehler: Undeclared identifier: 'Parent'
  parentForm.caption := 'test erfolgreich'; //Fehler: Undeclared identifier: 'Caption'
end;
MainForm: Hauptform die beim PRGM-Start angeziegt wird und die Frames enthält
FrameForm: eines der frames (eigebettes Frame/iframe in HTML - weiss nicht obs hier verschiedene gibt ich schreibs lieber mal dazu)

Schöne Grüße
TRBB

mkinzler 1. Nov 2007 09:04

Re: Aus Frame heraus auf übergeordnete (haupt)Form zugreifen
 
Delphi-Quellcode:
procedure TFrameForm.Button1Click(Sender: TObject);
var parentForm: TControl;
begin
  parentForm := FrameForm.Parent;
  while not (parentForm is TForm) do
    parentForm := parentForm.Parent;
  (parentForm as TForm).Caption := 'test erfolgreich';
end;
[Edit: is TMainForm]

DP-Maintenance 1. Nov 2007 09:15

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Die Delphi-IDE" nach "VCL / WinForms / Controls" verschoben.
Es geht nicht um die IDE an sich.

Deep-Sea 1. Nov 2007 09:19

Re: Aus Frame heraus auf übergeordnete (haupt)Form zugreifen
 
Wie wäre es mit der Funktion "ValidParentForm" oder "GetParentForm"? :P

TRBB 1. Nov 2007 09:47

Re: Aus Frame heraus auf übergeordnete (haupt)Form zugreifen
 
Delphi-Quellcode:
var
  parentForm: TComponent;
begin
  parentForm := FrameForm.Parent;
  while not (parentForm is TMainForm) do
    parentForm := (parentForm as TForm).Parent;
  (parentForm as TForm).caption := 'test erfolgreich';
und auch
Delphi-Quellcode:
ValidParentForm(FrameForm).caption := 'test erfolgreich';
Funktionieren beide nicht.
Das Problem ist das VerleihForm durch Delphi beim erstellen eines Frames nicht automatisch erstellt wird.
Bei normalen Forms findet man oben im interface Teil
Delphi-Quellcode:
var
  MeinForm: TMeinForm;
Bei Frames aber nicht.
Ich habe nun einfach beim Frame
Delphi-Quellcode:
var
  FrameForm: TFrameForm;
eingefügt aber das scheint nicht ganz richtig zu sein.

Beide Versionen produzieren Fehler.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 Uhr.
Seite 1 von 2  1 2      

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