Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler beim dynamischen Erstellen von Tabs (https://www.delphipraxis.net/91839-fehler-beim-dynamischen-erstellen-von-tabs.html)

.chicken 10. Mai 2007 16:40


Fehler beim dynamischen Erstellen von Tabs
 
Ich krich hier immer n Fehler aber weiss nicht wo er liegt...habe es ziemlich genauso in einer alten Prozedur gemacht, wo alles funktioniert hat!
Delphi-Quellcode:
procedure TMessageForm.CreateTab(Name, Caption: String);
var
  i: Integer;
  ATab: TTabSheet;
  AFrame: TMsgFrame;
begin
  if not Assigned(PControl.FindComponent(Name)) then
  begin
    ATab := TTabSheet.Create(MessageForm);
    ATab.Caption := Caption;
    AFrame := TMsgFrame.Create(MessageForm);
    AFrame.Name := Name;              //von hier
    ATab.InsertControl(AFrame);       //nach hier kommt der Fehler ;-)
    ATab.PageControl := PControl; //PControl ist mein PageControl
  end
  else
    (PControl.FindComponent(Name) as TTabSheet).Highlighted := True;
end;
Wisst ihr wo da der Fehler liegt? Bin ich einfach wieder blind? :D

xaromz 10. Mai 2007 16:43

Re: Fehler beim dynamischen Erstellen von Tabs
 
Hallo,

Du bist doch inzwischen lange genug hier, um zu wissen, dass man auch die Fehlermeldung angeben sollte.

Gruß
xaromz

.chicken 10. Mai 2007 16:46

Re: Fehler beim dynamischen Erstellen von Tabs
 
Argh sorry ^^
Also es kommt ne schöne AV :D

"Access violation at address 00408D97 in module Client.exe. Read of address 00A0C000"

Hoffe das hilft weiter ;-)

Udontknow 10. Mai 2007 16:49

Re: Fehler beim dynamischen Erstellen von Tabs
 
Wo genau, bei welcher Zeile? Der Debugger ist dein Freund! :)

Edit: Ist PControl evtl. nicht initialisiert?

Cu,
Udontknow

mkinzler 10. Mai 2007 16:51

Re: Fehler beim dynamischen Erstellen von Tabs
 
Vielleicht nicht der Grund, aber gefährlich:

Delphi-Quellcode:
ATab := TTabSheet.Create(self);
...
AFrame := TMsgFrame.Create(self);

.chicken 10. Mai 2007 16:53

Re: Fehler beim dynamischen Erstellen von Tabs
 
Also, aeh hab oben editiert wo der Fehler auftritt.
PControl habe ich so aufs Form gezogen also muesste es autmomatisch initialisiert sein..!?

Was vll noch zu erwähnen wäre, ich rufe die Prozedur aus ner anderen Unit auf!

Oeh was is an dem Code gefährlich mkinzler? Meinst du ich soll nich MessageForm, sondern self benutzen oder wie?

Udontknow 10. Mai 2007 16:59

Re: Fehler beim dynamischen Erstellen von Tabs
 
Wo kommt denn jetzt das MessageForm her? Instantiierst du TMessageForm mehrere Male?
Weise dem Frame mal den Parent Tab zu, anstelle InsertControl zu nutzen...

CU,
Udontknow

.chicken 10. Mai 2007 17:01

Re: Fehler beim dynamischen Erstellen von Tabs
 
Nein, also ich habe zwei Forms, die eine enthält ne Stringlist, wenn ich auf die klicke dann wird in der anderen diese Prozedur ausgeführt (also in der MessageForm). Die soll dann da ein Tab erstellen in dem schon auf der Form liegenden PageControl!

Habs ma geändert und Parent benutzt: Fehler kommt immernoch!

mkinzler 10. Mai 2007 17:26

Re: Fehler beim dynamischen Erstellen von Tabs
 
Zitat:

Oeh was is an dem Code gefährlich mkinzler? Meinst du ich soll nich MessageForm, sondern self benutzen oder wie?
Ja, dann bekommst du immer die richtige Instanz und nicht eine bestimmte, welche u.U. nicht intantiiert sein könnte.

.chicken 10. Mai 2007 17:40

Re: Fehler beim dynamischen Erstellen von Tabs
 
Stimmt, klingt logisch, danke für den Hinweis ;-)

Edit: Problem hats aber immernoch nicht geloest ^^


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