Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie OnDrawCell von StringGrid im Quelltext auslösen (https://www.delphipraxis.net/148707-wie-ondrawcell-von-stringgrid-im-quelltext-ausloesen.html)

dödö 6. Mär 2010 23:24


Wie OnDrawCell von StringGrid im Quelltext auslösen
 
Hallo,

ich programmiere ein Memoryspiel. Die einzelnen Bilder werden in OnDrawCell in das StringGrid geladen, die Dateinamen liegen dabei in einem Array, die Verteilung ist zufällig. Wenn ich nun ein neues Spiel starte, ändere ich das Array.Das StringGrid ändert sich aber noch nicht, da OnDrawCell ja nicht ausgelöst wurde, es ändert sich erst, wenn man z.B. ein anderes Vollbildfenster aufruft und dann wieder das Programm. Nun möchte ich aber, dass das StringGrid sich ändert, wenn ich ein neues Spiel starte. Ich muss also irgendwie die ganzen OnDrawCell-Methoden aufrufen, was aber durch die vielen Parameter schwierig wird.
Gibt es da irgendeine Möglichkeit, wie ich dem StringGrid im Quelltext sagen kann, dass es sich komplett neu zeichnen soll?

DeddyH 6. Mär 2010 23:40

Re: Wie OnDrawCell von StringGrid im Quelltext auslösen
 
Hallo und Willkommen in der DP :dp:,

ist das eine Hausaufgabe und sind einige Deiner Mitschüler neuerdings auch hier angemeldet (ständig dieses Memory in den letzten Tagen :gruebel:)? Naja, wie dem auch sei: damit sich eine Zelle neu zeichnet musst Du ihr einen neuen Wert zuweisen. Das kannst Du z.B. in 2 verschachtelten Schleifen tun (eine für die Spalten und eine für die Zeilen).

Calle 24. Jun 2010 16:19

AW: Wie OnDrawCell von StringGrid im Quelltext auslösen
 
Oder die einfachere Möglichkeit:

Delphi-Quellcode:
StringGrid.Visible:=false;
StringGrid.Visible:=true;
Veranlasst das StringGrid ebenso zur kompletten Neuzeichnung.

hoika 24. Jun 2010 16:48

AW: Wie OnDrawCell von StringGrid im Quelltext auslösen
 
Hallo,

Grid.Invalidate.


Heiko

Deep-Sea 24. Jun 2010 16:53

AW: Wie OnDrawCell von StringGrid im Quelltext auslösen
 
Falls man nur einen Teil neu zeichnen lassen will, kann man auch die API-Funktion InvalidateRect nutzen.

Hawkeye219 24. Jun 2010 16:55

AW: Wie OnDrawCell von StringGrid im Quelltext auslösen
 
Hallo,
Zitat:

Zitat von Deep-Sea (Beitrag 1031374)
Falls man nur einen Teil neu zeichnen lassen will, kann man auch die API-Funktion InvalidateRect nutzen.

etwa so: InvalidateGridCell

Gruß Hawkeye

Deep-Sea 24. Jun 2010 16:59

AW: Wie OnDrawCell von StringGrid im Quelltext auslösen
 
@Hawkeye219:
Musst du denn alles verraten? :P :wink:


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