![]() |
Frame visible und invisible
Hi, ich hab folgendes Problem:
Delphi-Quellcode:
Mit diesem Code möchte ich, dass beim Buttonclick3 das Frame eingebunden wird. Dann habe ich auf dem Frame einen Button, mit dem das Frame wieder unsichtbar wird. Klicke ich jetzt wieder auf Button3 soll das Frame wieder sichtbar werden. Das funzt aber nicht. Wieso?
procedure TForm1.Button3Click(Sender: TObject);
var spio: TFrame2; begin if c=0 then begin spio:=TFrame2.create(Form1); //Frame ins Form einbinden spio.Parent:=Form1; spio.Top:=32; spio.Left:=750; spio.Show; c:=1; end else Spio.visible:=true; end; Danke |
Re: Frame visible und invisible
Das geht nicht weil Spio eine lokale Variable ist die nach Verlassen deines Klickereignisses wieder undefniert ist. Beim nächsten Buttonklick ist also die vorherige Instanz nicht mehr zugewiesen, kann also nicht mehr über diese Variable angesprochen werden und später auch nicht frei gegeben werden.
Im übrigen geht es auch so (was den vorteil hat das du den Frame bei Programmende auch wieder freigeben kannst):
Delphi-Quellcode:
private
spio: TFrame2; [...] procedure TForm1.Button3Click(Sender: TObject); begin if (spio = nil) then //Alternativ auch: if not(Assigned(spio)) then begin spio:=TFrame2.create(Form1); //Frame ins Form einbinden spio.Parent:=Form1; spio.Top:=32; spio.Left:=750; spio.Show; end else Spio.visible:=true; end; |
Re: Frame visible und invisible
Hi, erstmal danke für die Hilfe. Nun hab ich spio:Tframe2; unter private eingefügt.
Doch kommt jetzt diese Fehlermeldung: [Error] Unit1.pas(30): Undeclared identifier: 'TFrame2' Wo soll ich TFrame2 noch deklarieren? |
Re: Frame visible und invisible
Du musst deine Unit zu den uses hinzufügen.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, [...], DEINEUNIT; //<- Hier muss es hinn type TForm1 = class(TForm) [...] private spio: TFrame2; [...] end; implementation uses DEINEUNIT; //<- Hier hast du es zur Zeit vermutlich stehen {$R *.dfm} |
Re: Frame visible und invisible
Jaaa, es funzt. Thx
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr. |
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