AGB  ·  Datenschutz  ·  Impressum  







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

Vier gewinnt Stringgrid

Ein Thema von mexman · begonnen am 22. Mai 2009 · letzter Beitrag vom 23. Mai 2009
Antwort Antwort
mexman

Registriert seit: 19. Apr 2009
3 Beiträge
 
Turbo Delphi für Win32
 
#1

Vier gewinnt Stringgrid

  Alt 22. Mai 2009, 10:54
Hallo Leute,

ich schreibe momentan ein Vier-Gewinnt-Spiel, die vom Spieler gesetzten Spielsteine möchte ich in einem Stringgrid anzeigen.

Die "Spielzugabfrage", etc als solches funktionieren...die gesetzten Spielsteine mach ich zur Zeit im Stringgrid als Zeichen sichtbar, anstelle der für die einzelnen Spielsteine stehenden Buchstabe, würde ich gerne die Zellen passend zur Spielsteinfarbe einfärben.

Muss ich um das zu realisieren im Methodenteil vom Stringgrid für ondrawcell eine Prozedur schreiben, die jedes Feld im Spielfeld-Array prüft und dementsprechend die Zellen färbt oder kann ich dem Stringgrid direkt die Färbung der eizelnen Zellen zuweisen?

Dankeschön,
mexman
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Vier gewinnt Stringgrid

  Alt 22. Mai 2009, 11:10
Die Methode wird für jede Zelle aufgerufen, in der Methode musst du nur die Koordinaten der jeweiligen Zelle überprüfen

BTW. Handelt sich eher um Win32 nicht um .Net
Markus Kinzler
  Mit Zitat antworten Zitat
mexman

Registriert seit: 19. Apr 2009
3 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Vier gewinnt Stringgrid

  Alt 23. Mai 2009, 13:38
Delphi-Quellcode:
procedure Tspiel_menu.gitterDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var m,n:integer;
begin
for acol:=1 to 7 do
for arow:=1 to 6 do
  if spiel_menu.gitter.Cells[m,n]='Rthen
    begin
    canvas.brush.color:=clred;
    canvas.FillRect(rect);
    end
  else
  if spiel_menu.gitter.cells[m,n]='Gthen
    begin
    canvas.Brush.color:=clyellow;
    canvas.fillrect(rect);
    end
  else
    begin
    canvas.Brush.color:=clwhite;
    canvas.FillRect(rect);
    end;
end;
Ich möchte, dass Zellen entsprechend ihres Inhaltes gefärbt werden.
Wenn ich das Programm so starte, färbt sich der Hintergrund (aber nicht das Gitter) weiß.
Kann mir bitte jmd. sagen, was falsch ist?

dankeschön
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Vier gewinnt Stringgrid

  Alt 23. Mai 2009, 13:53
Liest du eigentlich auch die Antworten? Ich schrieb, das die Methode füt jede Zeile aufgerufen wird. Du musst also nur Überprüfungen für die aktuelle Zeile durchführen! (Siehe Parameter ACol, ARow)
Du überprüfst für jede Zeile alle! ( bei einem 4x4 gitter wird die Methode 16 mal aufgerufen, in jedem Aufruf überprüfst du alle 16 Felder!)
Ändere bitte .Net auf Win32!
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:11 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