Autor Beitrag
sunday_2
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 7.0
BeitragVerfasst: Mo 30.12.02 14:15 
Hi Leute,

Folgendes Prob: ich erstelle zur Laufzeit diverse Panels die die selbe Farbe haben wie der hintergrund ( um Grafiken abzudecken ).
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var NewPanel: array[1..207] of TPanel;
          NewPanel[Panelzaehler]:= TPanel.create(P_SP_Grafik);
          NewPanel[Panelzaehler].Parent:= P_SP_Grafik;
          NewPanel[Panelzaehler].Caption:= '';
          NewPanel[Panelzaehler].Top:= 40+((j)*31);
          NewPanel[Panelzaehler].Left:=96+((i)*31);
          NewPanel[Panelzaehler].ParentColor:= true;
          NewPanel[Panelzaehler].Height:=31;
          NewPanel[Panelzaehler].Width:=31;
          NewPanel[Panelzaehler].BevelOuter:=bvRaised;
          NewPanel[Panelzaehler].Visible:= true;

ich habe allerdings keine Ahnung wie ich diese zerstören kann um die dahinter liegenden Grafiken wieder sichtbar zu machen. (Wichtig ist, die Panels dürfen nicht mehr existieren. Das Array NewPanel muß wieder komplett leer sein).
Habe es bisher so versucht, klappt leider nicht.
ausblenden Quelltext
1:
2:
3:
4:
5:
if length(NewPanel[1].Name) > 0 then
        begin
        for i:=1 to 207 do
            NewPanel[i].Free;         
        end;



Für hilfe wäre ich echt dankbar.

P.S. Viel Spaß morgen Nacht! :wink:

_________________
Gruß Sunday

... wer nicht fragt, bleibt dumm!!!
Dev4u.ch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 36



BeitragVerfasst: Mo 30.12.02 14:30 
alsoc ich weiss auch nicht wie das geht..
aber versuchs doch mal mit..

ausblenden Quelltext
1:
newpanel.free					


oder

ausblenden Quelltext
1:
2:
3:
4:
5:
if length(NewPanel[1].Name) > 0 then 
        begin 
        for i:= 207 downto i do 
            NewPanel[i].Free;    //vielleicht auch .Destroy?      
        end;

_________________
Jedes Programm wurde von einem Menschen gecodet - Menschen machen nun mal Fehler!!
sunday_2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 7.0
BeitragVerfasst: Mo 30.12.02 15:02 
Das klappt so nicht.
Das Problem ist, das ich die Abfrage, ob es bereits newPanel gibt beim Start benötige. Da springt er allerdings sofort raus bei
ausblenden Quelltext
1:
if length(NewPanel[1].Name) > 0 then					

da NewPanel[1].Name natürlich noch nicht existiert. Ich brauche die abfrage aber auf 'Spiel starten' da es ja möglich sein soll, das Spiel ein zweites mal zu spielen ohne erst das ganze Programm zu beenden und neu zu starten. Quasi ein Teufelskreis :evil:

_________________
Gruß Sunday

... wer nicht fragt, bleibt dumm!!!
Dev4u.ch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 36



BeitragVerfasst: Mo 30.12.02 15:25 
du könntest die panels in eine TList hinzufügen..

dann kannst du schauen ob TList.items.count < 0 ist..

_________________
Jedes Programm wurde von einem Menschen gecodet - Menschen machen nun mal Fehler!!
sunday_2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 7.0
BeitragVerfasst: Mo 30.12.02 15:48 
Das könnte klappen :)

Vielen dank und guten Rutsch!

_________________
Gruß Sunday

... wer nicht fragt, bleibt dumm!!!