AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Button auf Panel - via ButtonOnClick das Panel löschen...
Thema durchsuchen
Ansicht
Themen-Optionen

Button auf Panel - via ButtonOnClick das Panel löschen...

Ein Thema von erich.wanker · begonnen am 15. Sep 2008 · letzter Beitrag vom 15. Sep 2008
Antwort Antwort
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#1

Button auf Panel - via ButtonOnClick das Panel löschen...

  Alt 15. Sep 2008, 16:27
Hallo liebes Forum,

ich hab da ein kleies Problem..

Ich erstelle zur Laufzeit einige Panels mit aufsteigendem Tag-Wert.
Gleichzeitig bekommt ein jedes Panel einen Button mit dem gleichen Tag-Wert wie das Panel
Ein jeder Button ruft procedure"killen" auf

Wenn nun ein Button gedrückt wird, lese ich seinen Tag-Wert aus und suche das zugehörige Panel und lösche es..
und genau beim "free" strudelt´s die Procedure..

Wenn ich eine globale Variable mit dem zu löschenden Panel definiere - einen Timer starte und zeitversetzt das Panel lösche - funktionierts natürlich .. aber diesen Weg find ich nicht gut..

Hat jemand einen Lösungsansatz ?

Vielen Dank

Erich

procedure Tform.killen(Sender: TObject);
var i,x:Integer;
begin

with sender as TLMDSpeedbutton do
begin
x:=tag;
end;

for i:= 0 to scrollbox1.ComponentCount-1 do
begin
if scrollbox1.components[i] is TLMDSimplePanel then
begin
if (scrollbox1.components[i] as TLMDSimplePanel).tag = x then
begin
(scrollbox1.components[i] as TLMDSimplePanel).free; // <- Fehler !
break;
end;
end;
end;

end;
Erich Wanker - for life:=1971 to lebensende do begin ..
  Mit Zitat antworten Zitat
Benedikt
(Gast)

n/a Beiträge
 
#2

Re: Button auf Panel - via ButtonOnClick das Panel löschen..

  Alt 15. Sep 2008, 16:46
Hallo,

direkt der erste Eintrag unter deinem wenn du nach Hier im Forum suchenButton AND Panel AND löschen suchst
http://www.delphipraxis.net/internal...=934793#934793

MfG Benedikt
  Mit Zitat antworten Zitat
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#3

Re: Button auf Panel - via ButtonOnClick das Panel löschen..

  Alt 15. Sep 2008, 17:34
Ups...

hab zwar vorher schon eine Weile rumgesucht, aber falsche Schlagwörter verwendet..

Vielen Dank.





Habs jetzt auch mit postMessage gelöst...


Delphi-Quellcode:
 Const
  WM_DESTROYPANEL = WM_USER+712;
...

 procedure CMDestroyPanel(Var Msg : TMessage); message WM_DESTROYPANEL;

Delphi-Quellcode:
Procedure Form.CMDestroyPanel(Var Msg : TMessage);
var i,x:Integer;
Begin

x:=Strtoint(PChar(Msg.WParam));

for i:= 0 to scrollbox1.ComponentCount-1 do
begin

   if scrollbox1.components[i] is TLMDSimplePanel then
   begin
    with (scrollbox1.components[i] as TLMDSimplePanel) do
    begin
      if tag = x then
      begin
      (scrollbox1.components[i] as TLMDSimplePanel).free;
      break;
      end;
    end;

   end;
end;

end;






Delphi-Quellcode:
procedure Form.killen(Sender: TObject);
var i,x:Integer;
begin

with sender as TLMDSpeedbutton do
begin
  what_to_kill:=inttostr(tag);
end;
PostMessage(termin_single_form.Handle,WM_DESTROYPANEL,Integer(@what_to_kill[1]),0);

end;
Erich Wanker - for life:=1971 to lebensende do begin ..
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Button auf Panel - via ButtonOnClick das Panel löschen..

  Alt 15. Sep 2008, 18:11
Das ist aber umständlich. Du kannst doch gleich den Zeiger auf das Control mitgeben:
PostMessage(self.Handle,WM_DESTROYPANEL,Integer(Sender),0); Und dann später nur noch:
Delphi-Quellcode:
Procedure Form.CMDestroyPanel(Var Msg : TMessage);
Begin
   TObject(Msg.WParam).Free;
end;
Andreas
  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 13:39 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