Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dringendes Problem mit ImageList , Plz HELP (https://www.delphipraxis.net/94526-dringendes-problem-mit-imagelist-plz-help.html)

GaaraSabakuKyo 22. Jun 2007 17:53


Dringendes Problem mit ImageList , Plz HELP
 
Hallo,
habe bereit schon mal wegen meinen Mahjongg-Projekt geschreiben und habe auch sofort Hilfe gefunden. Danke nochmal hierfür. Allerdings stehe ich nun vor dem nächsten Problem. Meine Imagelist mit 36 verschiedenen Bildern ordnet per Zufallsverfahren genau 4mal jedes Bild einen der 144 Buttons zu. So nun benötige ich allerdings auch eine Funktion die das Spiel neu starten lässt wenn man nicht weiter kommt. klick ich allerdings auf Neubeginn werden zwar alle buttons wieder visible und mit den Bildern ausgefüllt, jedoch mit den gleichen Bildern zuvor, sprich nicht gemischt. Desweiteren lassen sich auch nicht mehr Bilder gleichen Glyphs wegklicken. Ich vermute das, durch den Neubeginn zwar die Glyphen verteilt werden,allerdings nur die alten noch angezeigt werden! Bitte brauche dringend Hilfe. :wall:

DeddyH 22. Jun 2007 17:55

Re: Dringendes Problem mit ImageList , Plz HELP
 
Zeig doch mal den Quellcode zum Zuweisen der Bilder.

GaaraSabakuKyo 22. Jun 2007 18:41

Re: Dringendes Problem mit ImageList , Plz HELP
 
so da der mom quelltext bei knapp 2000zeilen is , hab ich nur den momentanen text zum "neues spiel" hier:
Code:
procedure TForm1.NeuesSpiel1Click(Sender: TObject);
Var i,j,m,z:Byte;
begin
if messagedlg('Neues Spiel starten?',mtconfirmation,[mbYes,mbNo],0)= mrYes then begin

for i:=1 to 144 do Steine[i].Visible:=true;
if messagedlg('Spielregeln erklären?',mtinformation,[mbYes,mbNo],0)=mryes then
showmessage('Das Ziel ist, durch Anklicken zweier identischer Steine alle Elemente abzubauen. Allerdings können Steine nicht markiert werden, die jeweils links und rechts einen weiteren Stein haben oder teilweise durch andere verdeckt werden.');
begin
for i:=0 to 3 do
  for j:=1 to 36 do
  begin
  Bilder[j+i*36]:=j-1;
  end;
Randomize;
for i:=1 to 144 do
  begin
  z:=Random(144)+1;
  m:=Bilder[i];
  Bilder[i]:=Bilder[z];
  Bilder[z]:=m;
  end;

for i:=1 to 144 do
ImageList1.GetBitmap(Bilder[i],Steine[i].Glyph);
end;
end;

end;
so ich hoffe ihr könnt beim prob helfen , weeitere fragen beantworte ich gerne

DeddyH 22. Jun 2007 18:45

Re: Dringendes Problem mit ImageList , Plz HELP
 
Randomize sollte einmalig aufgerufen werden (z.B. OnCreate)

GaaraSabakuKyo 23. Jun 2007 06:22

Re: Dringendes Problem mit ImageList , Plz HELP
 
mhm, meinst du damit in den teil delphis rein , der sofort startet sobald man das projekt öffnet? createform?... sry versteh net allzuviel, aber ich hab das randomize jetz shon wie wild durch die Gegend geschoben und nach dem 2.Mal klicken auf Neues Spiel funzt immer gar nichts mehr... ohmann, ich brauch das unbedingt. Oder gibts vielleicht was,das das gesamte projekt einfach nochmal neu startet per klick? weil beim ersten mal drauf klciken funktioniert es ja...

Nuclear-Ping 23. Jun 2007 07:08

Re: Dringendes Problem mit ImageList , Plz HELP
 
Weiß den Glyphs beim Neustart einfach mal nil zu.

Delphi-Quellcode:
for i := 1 to 144 do
  Steine[i].Glyph := nil;


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