so wird's wohl seinMichl hat geschrieben:glaube nicht, dass sich jemand durch den kompletten Code liest...
Memory-Spiel
Re: Memory-Spiel
Re: Memory-Spiel
Hier die .zip das Problem ist im Bildermodus. zu Beginn passiert garnichts, drückt man auf Karten neu legen werden alle Felder des Drawgrids schwarz und durch Klicken wieder weiß das wars dann aber auch schon.
- Dateianhänge
-
Memory.zip
- (4.82 MiB) 88-mal heruntergeladen
Re: Memory-Spiel
Wenn du mal folgendes machst:Werden die Bilder angezeigt. Warum der ausgeklammerte Code nicht funktioniert, solltest du mal mit Breakpoints + F7 + Zettel + Stift erkunden!
Eigentlich schade, dass du nicht versucht hast, die funktionierende Stringgrid einfach in ein Drawgrid zu verwandeln, wäre ein recht überschaubares Unterfangen gewesen, und statt dessen einen vollkommen anderen Code von irgendwo kopiert hast und diesen jetzt versuchst irgendwie zum Laufen zu bringen...
Code: Alles auswählen
procedure TForm1.DrawGridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
index : integer;
begin
index := LinearIndexOf(ARow, ACol);
DrawGrid.Canvas.StretchDraw(Rect, Images[ImageOfCell[index]].Picture.Graphic); //Zeichnet Bilder korrekt
{ if ModeOfCell[index] = CELL_INVISIBLE then
begin
DrawGrid.Canvas.Brush.Color := clBlack;
DrawGrid.Canvas.FillRect(Rect)
end
else if ModeOfCell[index] = ALREADY_MATCHED then
begin
// DrawGrid.Canvas.StretchDraw(Rect, Images[ImageOfCell[index]].Picture.Graphic);
DrawGrid.Canvas.Brush.Color := clWhite;
DrawGrid.Canvas.FillRect(Rect)
end
else begin
DrawGrid.Canvas.StretchDraw(Rect, Images[ImageOfCell[index]].Picture.Graphic);
end }
end;
Eigentlich schade, dass du nicht versucht hast, die funktionierende Stringgrid einfach in ein Drawgrid zu verwandeln, wäre ein recht überschaubares Unterfangen gewesen, und statt dessen einen vollkommen anderen Code von irgendwo kopiert hast und diesen jetzt versuchst irgendwie zum Laufen zu bringen...
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Memory-Spiel
Kann es daran liegen dass bei mir das drawgrid zu Beginn auf unsichtbar ist und somit auch jede zelle und der Befehl desshalb nicht richtig ausgeführt wird?
Re: Memory-Spiel
Probiere es doch einfach aus. Stelle DrawGrid.Visible im Objektinspektor auf True und teste es!Sadde hat geschrieben:Kann es daran liegen dass bei mir das drawgrid zu Beginn auf unsichtbar ist und somit auch jede zelle und der Befehl desshalb nicht richtig ausgeführt wird?
Ich habs mal für dich gemacht ... gleiches Ergebnis ... liegt also irgendwo daran, wann wobei welche Zelle als "ALREADY_MATCHED, CELL_VISIBLE, CELL_INVISIBLE" (Bezeichnungen hat der Verfasser deines kopierten Codes so gewählt) gestellt wird -> hat wirklich rein gar nichts mit Drawgrid.Visible zu tun -> also müsstest du mal untersuchen, was bei einem Klick auf die Drawgrid passiert, wie du das am besten machst, habe ich dir oben geschrieben (Schritt für Schritt durchgehen, überlegen, was der Code macht, die hinterlegten Größen der Variablen dabei immer anschauen, warum welche zu welcher Größe geändert wurde, zum Test auch mal eine anders belegen usw....)
Wer Lust hat kann auch den Originalcode testen
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;