![]() |
Stringgrid Felder bei Formcreate färben
Hallo
Also ich hatte vor ein kleines Spiel zu schreiben. In einer Multidimensionellen Array ist die Map eingetragen Auf 0 kann man gehen auf -1 nicht. Nun wollte ich dass wenn das Spiel startet (also form.create) dass alle Felder mit 0 als Inhalt Grün gefärbt werden und alle mit -1 Rot. Ich hab schon 2 stunden dran gesessen und hab auch schon genug gegoogelt nur find ich nicht wirklich eine passende Lösung. |
Re: Stringgrid Felder bei Formcreate färben
Nicht beim Erzeugen der Form, sondern beim Zeichnen (OwnerDraw; onDrawCell)
|
Re: Stringgrid Felder bei Formcreate färben
ok das hab ich zwar auch versucht
aber irgendwie läuft bei mir etwas schief
Delphi-Quellcode:
wenn ich das somache kommt ein komisches resultat raus.
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState); var i,j:integer; begin for i:=0 to 9 do begin for j:=0 to 9 do begin form1.stringgrid1.Cells[i,j]:=IntToStr(map[i,j]); if(map[i,j]=-1)then begin stringgrid1.Canvas.Brush.Color:=clred; stringgrid1.Canvas.FillRect(Rect); end else begin stringgrid1.Canvas.Brush.Color:=clgreen; stringgrid1.Canvas.FillRect(Rect); end; end; end; end; Ich hab echt keine Ahnung wie ich es anstellen soll. |
Re: Stringgrid Felder bei Formcreate färben
Du brauchst keine Schleife.
Das OnDrawCell Ereignis wird schon für jede Zelle aufgerufen, welche neu gezeichnet werden soll. |
Re: Stringgrid Felder bei Formcreate färben
oh wie dumm -.-
Also es läuft jetzt Nur es sieht bisschen unschön aus. Durch das ganze geOnDrawed sieht man überall linien. Kann man das irgendwie umgehen ausschalten oder sonst was? |
Re: Stringgrid Felder bei Formcreate färben
Was für Linien?
|
Re: Stringgrid Felder bei Formcreate färben
also sieht so aus wenn eine szene dauernd neugezeichnet werden würde
man kann es nicht screenshoten. Sieht aber hässlich aus. Und noch eine kleine Nebenfrage: Man sieht ja auf dem Stringgrid auf welcher Zelle man sich grade befindet(Nicht Focus sonder gestrischelte Kiste). Kann man das auch irgendwie wegschaffen? |
Re: Stringgrid Felder bei Formcreate färben
Zitat:
Ist DefaultDrawing aktiv? |
Re: Stringgrid Felder bei Formcreate färben
also es kommen diese Linien weil ich in die Stringgrid die -1 0 und 2(für die position des Spielers) hineinschreibe.
Das scheint Die Stringgrid nicht zu mögen. Wie genau stelle ich das mit dem State ein? |
Re: Stringgrid Felder bei Formcreate färben
Das ist nichts zum Einstellen, sondern sagt dir ob, die aktuell gezeichnete Zelle markiert ist.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 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