AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frame visible und invisible

Ein Thema von P4CM4N · begonnen am 20. Jun 2007 · letzter Beitrag vom 20. Jun 2007
Antwort Antwort
P4CM4N

Registriert seit: 14. Jun 2007
49 Beiträge
 
#1

Frame visible und invisible

  Alt 20. Jun 2007, 13:33
Hi, ich hab folgendes Problem:

Delphi-Quellcode:
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;
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?

Danke
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Frame visible und invisible

  Alt 20. Jun 2007, 13:54
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;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
P4CM4N

Registriert seit: 14. Jun 2007
49 Beiträge
 
#3

Re: Frame visible und invisible

  Alt 20. Jun 2007, 14:27
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?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Frame visible und invisible

  Alt 20. Jun 2007, 14:35
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}
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
P4CM4N

Registriert seit: 14. Jun 2007
49 Beiträge
 
#5

Re: Frame visible und invisible

  Alt 20. Jun 2007, 16:51
Jaaa, es funzt. Thx
  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 02:22 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