AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Android ARC / DisposeOf - dynamisch erstellte Komponente entfernen
Thema durchsuchen
Ansicht
Themen-Optionen

Android ARC / DisposeOf - dynamisch erstellte Komponente entfernen

Ein Thema von pmros · begonnen am 12. Mai 2017 · letzter Beitrag vom 15. Mai 2017
 
pmros

Registriert seit: 8. Sep 2015
22 Beiträge
 
#1

Android ARC / DisposeOf - dynamisch erstellte Komponente entfernen

  Alt 12. Mai 2017, 20:00
Hallo erst mal,

ich habe mich jetzt schon tot gesucht zu dem Thema und alle Lösungen die es gibt funktionieren nicht.

Ich generiere zwei TRectangle und einen TButton bei Berührung eines Buttons. Das "InvisiblePanel" ist nicht sichtbar und soll dafür da sein, herauszufinden wann außerhalb des zweiten Rectangles (dem MenuPanel) gedrückt wird.

Delphi-Quellcode:
procedure TForm1.MenuPanel;
var
MP:TRectangle;
IP:TRectangle;
BtnConfig:TButton;
begin
      if FindComponent('InvisiblePanel') = nil then
      begin
      //-------------------------------------------> Inivisble Panel
      IP:=TRectangle.Create(self);
      IP.Parent:=Form1;
      IP.Name:='InvisiblePanel';
      IP.Width:=Form1.Width;
      IP.Height:=Form1.Height;
      IP.Position.X:=0;
      IP.Position.Y:=0;
      IP.OnClick:=InvisibleClick;
      IP.Fill.Color:=StringToAlphaCOlor('null');


      //-------------------------------------------> Menu Panel
      MP:=TRectangle.Create(self);
      MP.Parent:=Form1;
      MP.Name:='MenuPanel';
      MP.Width:=300;
      MP.Height:=300;
      MP.Position.X:=Form1.Width-300;
      MP.Position.Y:=73;


      //------------------------------------------> Buttons
      BtnConfig:=TButton.Create(self);
      BtnConfig.Parent:=Form1;
      BtnConfig.Name:='ButtonConfig';
      BtnConfig.Width:=300;
      BtnConfig.Height:=50;
      BtnConfig.Position.X:=Form1.Width-300;
      BtnConfig.Position.Y:=73;
      //BtnConfig.OnClick:=ConfigClick;
      BtnConfig.ComponentIndex:=2;
      BtnConfig.Text:='Einstellungen';

      end
In der InvisibleClick Prozedur sollen dann eigentlich nur ButtonConfig, InvisiblePanel und MenuPanel entfernt werden.

Versuch 1:

Delphi-Quellcode:
procedure TForm1.InvisibleClick(Sender: TObject);
var
MP,IP:TRectangle;
BtnConfig:TButton;
begin

IP:=FindComponent('InvisiblePanel') as TRectangle;
MP:=FindComponent('MenuPanel') as TRectangle;
BtnConfig:=FindComponent('ButtonConfig') as TButton;

IP.DisposeOf;
MP.DisposeOf;
BtnConfig.DisposeOf;
end;
Die App crasht unter Android.

Versuch 2 (Ich lass den ersten Teil der Prozedur mal weg):

Delphi-Quellcode:
IP.Parent:=nil;
IP:=nil;
IP.DisposeOf;

MP.Parent:=nil;
MP:=nil;
MP.DisposeOf;

BtnConfig.Parent:=nil;
BtnConfig:=nil;
BtnCOnfig.DisposeOf;
Die App crasht unter Android.

Versuch 3:

Delphi-Quellcode:
IP:=nil;
IP.Owner.RemoveComponent(IP);
IP.free;

MP:=nil;
MP.Owner.RemoveComponent(MP);
MP.free;

BtnConfig:=nil;
BtnConfig.Owner.RemoveComponent(BtnConfig);
BtnConfig.free;
Natürlich Crash.

Solange ich nicht versuche
IP.DisposeOf; auszuführen, geht alles gut.

Delphi-Quellcode:
MP.DisposeOf;
BtnConfig.DisposeOf;
funktionieren.

Hat jemand eine Idee?
  Mit Zitat antworten Zitat
 


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 18:16 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