AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid Felder bei Formcreate färben

Ein Thema von Lucifer · begonnen am 19. Jun 2008 · letzter Beitrag vom 19. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Lucifer
Lucifer

Registriert seit: 29. Mär 2007
62 Beiträge
 
#1

Stringgrid Felder bei Formcreate färben

  Alt 19. Jun 2008, 20:11
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Stringgrid Felder bei Formcreate färben

  Alt 19. Jun 2008, 20:20
Nicht beim Erzeugen der Form, sondern beim Zeichnen (OwnerDraw; onDrawCell)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Lucifer
Lucifer

Registriert seit: 29. Mär 2007
62 Beiträge
 
#3

Re: Stringgrid Felder bei Formcreate färben

  Alt 19. Jun 2008, 20:24
ok das hab ich zwar auch versucht

aber irgendwie läuft bei mir etwas schief

Delphi-Quellcode:
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;
wenn ich das somache kommt ein komisches resultat raus.
Ich hab echt keine Ahnung wie ich es anstellen soll.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Stringgrid Felder bei Formcreate färben

  Alt 19. Jun 2008, 20:28
Du brauchst keine Schleife.
Das OnDrawCell Ereignis wird schon für jede Zelle aufgerufen, welche neu gezeichnet werden soll.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Lucifer
Lucifer

Registriert seit: 29. Mär 2007
62 Beiträge
 
#5

Re: Stringgrid Felder bei Formcreate färben

  Alt 19. Jun 2008, 20:31
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Stringgrid Felder bei Formcreate färben

  Alt 19. Jun 2008, 20:32
Was für Linien?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Lucifer
Lucifer

Registriert seit: 29. Mär 2007
62 Beiträge
 
#7

Re: Stringgrid Felder bei Formcreate färben

  Alt 19. Jun 2008, 20:34
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Stringgrid Felder bei Formcreate färben

  Alt 19. Jun 2008, 20:40
Zitat:
Man sieht ja auf dem Stringgrid auf welcher Zelle man sich grade befindet(Nicht Focus sonder gestrischelte Kiste).
Im Parameter State
Ist DefaultDrawing aktiv?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Lucifer
Lucifer

Registriert seit: 29. Mär 2007
62 Beiträge
 
#9

Re: Stringgrid Felder bei Formcreate färben

  Alt 19. Jun 2008, 20:43
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Stringgrid Felder bei Formcreate färben

  Alt 19. Jun 2008, 20:46
Das ist nichts zum Einstellen, sondern sagt dir ob, die aktuell gezeichnete Zelle markiert ist.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:29 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