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 Kann nicht auf dynamisch erstelle Form zugreifen (https://www.delphipraxis.net/88734-kann-nicht-auf-dynamisch-erstelle-form-zugreifen.html)

Logic 20. Mär 2007 09:09


Kann nicht auf dynamisch erstelle Form zugreifen
 
Hallo!

Ich erzeuge in einer Prozedur ein neues Form, was auch richtig angezeigt wird.

Delphi-Quellcode:
procedure makeZettel(nummer:integer);
begin
  zettel.zettel:=TForm.Create(Form1);
  zettel.zettel.Color:=Form2.Color;
  zettel.zettel.BorderStyle:=Form2.BorderStyle;
  zettel.zettel.TransparentColor:=Form2.TransparentColor;
  zettel.zettel.TransparentColorValue:=Form2.TransparentColorValue;
  zettel.zettel.Width:=Form2.Width;
  zettel.zettel.Height:=Form2.Height;
  zettel.zettel.Name:='f_'+IntToStr(nummer);
 
  (mehr Code)

  zettel.zettel.Visible:=true;
end;
(zettel.zettel is ne Form in nem record und nummer beginnt mit 1)

nur wenn ich dann mit:
Delphi-Quellcode:
showmessage(TForm(Application.FindComponent('f_1')).Name);
versuchen will auf die Componente zuzugreifen erhalte ich eine Zugriffsverletzung.

Ich habe schon versucht den Namen direkt mit f_1 festzulegen, nur es bringt einfach nix. Habe mir sogar in ne ListBox die erstellen Namen reinschreiben lassen.
Habt ihr ne Idee?
Rumexperiementieren mit dem parent hat acuh nix gebracht.

Habt ihr ne Idee?

Gruß
Logic

TBx 20. Mär 2007 09:15

Re: Kann nicht auf dynamisch erstelle Form zugreifen
 
Hallo!

Zitat:

Zitat von Logic
zettel.zettel:=TForm.Create(Form1);

Ich denke, hier liegt die Ursache Deines Problems. Du machst Form1 zum Owner Deiner neuen Form.

Du suchst dann aber in den Forms der Application nach Deiner neuen Form:

Zitat:

Zitat von Logic
Application.FindComponent

Du mußt entweder die Form mit Application als Owner generieren oder mit
Delphi-Quellcode:
Form1.FindComponent
arbeiten.

Hope it helps

onlinekater

Logic 20. Mär 2007 12:14

Re: Kann nicht auf dynamisch erstelle Form zugreifen
 
Hallo onlinekater,

danke für deine Antwort, genau das war der Fehler :D

Thx


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