Entwickler-Ecke

Multimedia / Grafik - Fangmich-Spiel: TPanel(Sender).Free verursacht Fehler


Metty - So 25.09.05 17:11
Titel: Fangmich-Spiel: TPanel(Sender).Free verursacht Fehler
Also mein Problem ist folgendes:
Ich soll für Informatik ein "Fangmich"-Spiel mit Panels programmieren...
Das Panel, auf das ich dann klicke wird nicht zerstört,
Fehler: "AccesViolation"


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
procedure Tmainform.panelcreate;
begin
  pan := TPanel.Create(mainform);
  pan.Parent := mainform;
  pan.Name := 'pan' + IntToStr(pan_anzahl);
  pan.Width := 40;
  pan.Height := 40;
  pan.Caption := 'F';
  pan.Color := clYellow;
  pan.Left := random(mainform.Width-50);
  pan.Top := random(mainform.Height-60);
  pan.OnClick := panelclose;
  pan.Show;
  inc(pan_anzahl);
end;

procedure Tmainform.panelclose(Sender: TObject);
begin
  TPanel(Sender).Free;
  inc(punkte);
  setpoints;
  dec(pan_anzahl);
//  if TPanel = nil then
//  timer.Enabled := false;
end;


Ich komm einfach nicht weiter :(


alias5000 - So 25.09.05 17:48

Sicher, dass in der Sender in Panelclose ein TPanel ist?


Metty - So 25.09.05 17:59

Hmmm...
Wenn ich den Sender als TPanel deklariere...

Delphi-Quelltext
1:
2:
3:
4:
procedure Tmainform.panelclose(Sender: TPanel);
{...}

pan.OnClick := panelclose;

kommt bei der OnClick-Zuweisung:
Incompatible Types: TObject and TPanel


Sorry, aber bin aber noch im Lernstadium ^^


Keldorn - So 25.09.05 18:01

http://www.delphi-forum.de/viewtopic.php?t=48730&highlight=komponente

ist das gleiche Problem, lise dir den Thread mal durch.

Mfg Frank


Metty - So 25.09.05 18:20

Danke, das hat mein Problem gelöst ;)
Hatte zwar schon mittels SuFu gesucht,
aber wahrscheinlich nach dem falschen :mrgreen: