AGB  ·  Datenschutz  ·  Impressum  







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

Code erläuterung zum einfärben von Zellen

Ein Thema von nlz · begonnen am 13. Okt 2010 · letzter Beitrag vom 13. Okt 2010
Antwort Antwort
nlz

Registriert seit: 11. Okt 2010
7 Beiträge
 
Delphi 7 Personal
 
#1

Code erläuterung zum einfärben von Zellen

  Alt 13. Okt 2010, 13:38
Delphi-Version: 7
Hallo liebe Gemeinde,
Hoffe allen geht es gut !.
Also zu meinen Problem. Ich habe auf meine Form1 ein Array erstellt. Dann werden über zufall verschieden Kästchen aktuell mit einen X gekennzeichnet, danach soll der Benutzer alle markierten Zellen ebenfalls anklicken, ist so nen art gedächnissspiel..

Nun meine Frage wie kann statt ein X die Zelle einfärben. Habe auch schon viel im Forum dazu gefunden, doch kann mir einer evetuell den sysntax erklären.
Ich möchte das wenn ich auf die Zelle Klicke diese dann z.B. rot wird.
Muss ich dazu irgendwelche variablen deklarieren ?

Wäre super so in dieser art:
Code:
var
i:=integer; // variable i ist gleich integer
begin
i:=strtoint(edit1.text); // i lese aus edit 1 den text heraus, strtoin=string zu integer
end;
Habe auch shcon einen Code gefunden, könnte mir den jemand vlt. mal genau erklären, weil nur doof einfügen will ich net, möchte ganz gerne verstehenm was ich damit mach:
Code:
procedure TForm1.spielfeldDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if Odd(ACol) and not Odd(ARow) then
  begin
    spielfeld.Canvas.Brush.Color := clBlack;
  end;
  spielfeld.Canvas.FillRect(Rect);
end;
Vielen Dank schon mal für eure Hilfe....
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

AW: Code erläuterung zum einfärben von Zellen

  Alt 13. Okt 2010, 13:41
Und was genau verstehst Du nicht?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
nlz

Registriert seit: 11. Okt 2010
7 Beiträge
 
Delphi 7 Personal
 
#3

AW: Code erläuterung zum einfärben von Zellen

  Alt 13. Okt 2010, 13:44
WOW, danke für die schnelle Antwort

begin
if Odd(ACol) and not Odd(ARow) then
begin
spielfeld.Canvas.Brush.Color := clBlack;
end;
spielfeld.Canvas.FillRect(Rect);
end;

was ist Canvas ?
Was macht brush color genau ?
Warum muss ich danach noch FillRect(Rect) ausfürhren ?
was ist Rect ?, eine Constante, Varibale ?

geht auch sowas in der art:
array.cell.Canvas.Brush[0,2]:=red;

Grüßle nlz
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Code erläuterung zum einfärben von Zellen

  Alt 13. Okt 2010, 13:47
Die Canvas ist die Zeichenfläche deiner Komponente. Auf diese Zeichenfläche kannst du Dinge zeichnen, z.B. Rechtecke, Linien, Texte oder Grafiken. Mit Canvas.Brush.Color setzt du die Farbe des Pinsels. FillRect füllt dann das Rechteck, das als Parameter übergeben wird, in der aktuell eingestellten Farbe. Rect ist ein Parameter, der dir beim Ereignis OnDrawCell übergeben wird.

Hoffe, ich konnte dir schonmal einbisschen weiter helfen.
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Code erläuterung zum einfärben von Zellen

  Alt 13. Okt 2010, 13:49
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  // ist die Länge des Textes in Zelle(Acol,Arow) größer 0 dann rot sonst weiß
  if length(StringGrid1.Cells[Acol,Arow])>0 then Stringgrid1.Canvas.Brush.Color := clRed else Stringgrid1.Canvas.Brush.Color := clWhite;
  // füllen
  Stringgrid1.Canvas.FillRect(rect);
end;

procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var
  Acol,Arow:Integer;

begin
   //Mauskoordinaten in Zellkoordinaten umrechnen
   StringGrid1.MouseToCell(x,y,Acol,Arow);
   // ist die Länge des Textes in Zelle(Acol,Arow) größer 0 dann Leertext sonst 'X'
   if length(StringGrid1.Cells[Acol,Arow])>0 then StringGrid1.Cells[Acol,Arow] := 'else StringGrid1.Cells[Acol,Arow]:='X';

end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#6

AW: Code erläuterung zum einfärben von Zellen

  Alt 13. Okt 2010, 13:52
Ein paar Links zur DP-Referenz:
TCanvas
TBrush
DrawCell

Weitere Fragen bitte erst nach dem Lesen

[edit] Zu spät [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
nlz

Registriert seit: 11. Okt 2010
7 Beiträge
 
Delphi 7 Personal
 
#7

AW: Code erläuterung zum einfärben von Zellen

  Alt 13. Okt 2010, 13:52
Ups....

dann lese ich erst mal ... war wieder zu schnell beim fragen ....

danke für die Hilfen

Gruß nlz
  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 07:38 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