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 Frame löschen / entfernen (https://www.delphipraxis.net/19322-frame-loeschen-entfernen.html)

Schäl Guevera 1. Apr 2004 08:05


Frame löschen / entfernen
 
Hy!

Spiele gerade mit Frames. Möchte ein Frame dynamisch einblenden und auf Button-Klick wieder ausblenden, bzw. aus dem Speicher entfernen.
DAs laden des Frames funktioniert auch wunderbar, aber das entfernen mit .Free erzeugt eine Access-Violation an der Adresse 000000

Laden des Frames:
Delphi-Quellcode:
procedure TMitarbeiter.IWButton1Click(Sender: TObject);
begin
    mmframe := Unit1.TFrame1.Create(self);
    mmframe.Top := 222;
end;
Entfernen des Frames
Delphi-Quellcode:
procedure TMitarbeiter.IWButton2Click(Sender: TObject);
begin
  mmframe.free;
end;
Nanü?! :gruebel:

Es muss doch möglich sein ein Object das ich erzeugen kann auch wieder zu töten ... :-D

Irgendjemand eine Idee? DANKE!

himitsu 1. Apr 2004 08:57

Re: Frame löschen / entfernen
 
Es funktioniert auch.


1. mmframewie und wo ist mmframe definiert?

2. ist noch was anderes auf dem Frame drauf?

...

Schäl Guevera 1. Apr 2004 10:19

Re: Frame löschen / entfernen
 
Da - bin ich ja beruhigt, dass es funktionieren soll :-D

Jep - auf dem Frame sind verschiedenen IW-Komponenten drauf - aber das sollte das .free doch nicht stören, da es doch alle Komponenten vorher löscht, bevor das Frame entfernt wird ... oder???

Ich poste einfach mal den ganzen Quellcode ... :wink:
Delphi-Quellcode:
unit Mitarbeit;
{PUBDIST}

interface

uses
  IWAppForm, IWApplication, IWTypes, Classes, Controls, Forms, Menu_Frame,
  IWControl, IWCompButton, Unit1;

type
  TMitarbeiter = class(TIWAppForm)
    MenuFrame1: TMenuFrame;
    IWButton1: TIWButton;
    IWButton2: TIWButton;
    procedure IWButton1Click(Sender: TObject);
    procedure IWButton2Click(Sender: TObject);
  public
  end;

implementation
{$R *.dfm}

uses
  ServerController, IWForm;
var
  mmframe: Tframe;

procedure TMitarbeiter.IWButton1Click(Sender: TObject);
begin

    mmframe := Unit1.TFrame1.Create(self);
    mmframe.Top := 222;
end;

procedure TMitarbeiter.IWButton2Click(Sender: TObject);
begin
  mmframe.free;
end;

end.
Ach ja - alles unter Delphi 7

himitsu 1. Apr 2004 12:37

Re: Frame löschen / entfernen
 
Ich bin mir zwar nicht ganz sicher, ob die Untergeordneten Komponenten richtig fregegeben werden, aber ich vermute mal, das es gemacht wird.


Allerdings muß die Komponente auch dem Frame zugeordnet sein.

Also die untergeordneten Komponenten sollten so in dieser Art erstellt werden:
Code:
[color=darkred]mmframe[/color] := Unit1.TFrame1.Create(self);

IWKomponente := Unit1.TIWKomponente.Create([color=red]mmframe[/color]);
IWKomponente.Parent := [color=red]mmframe[/color];
...


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