Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi StringGrid Cells beschriften (https://www.delphipraxis.net/93629-stringgrid-cells-beschriften.html)

Ersan90 8. Jun 2007 13:55


StringGrid Cells beschriften
 
Guten Morgen :)

Ich muss ein Lottoprogramm in delphi 6 erstellen.. Nun habe ich das meiste so hinbekommen wie ichs wollte doch ich habe noch ein Problem..

Wie kann ich alle 49 cells mit den 49 zahlen beschriften ohne dass ich jeden cell einzelnt beschriften muss..

sowas wie:

For Z:=1 TO 7 do begin
For S:=1 TO 7 do begin
NR:=Z*7+S
end;
end;

also nur als beispiel mir is klar dass das so net richtig ist ..

Danke schonma im voraus

MFG Ersan

messie 8. Jun 2007 14:14

Re: StringGrid Cells beschriften
 
Wenn ich es richtig verstanden habe, meinst Du das:
Delphi-Quellcode:
procedure TForm1.TntButton1Click(Sender: TObject);
var
  i,j,k : integer;
begin
  k := 1;
  for i := 0 to SG.RowCount-1 do
  begin
    for j := 0 to SG.ColCount-1 do
    begin
      SG.Cells[j,i] := IntToStr(k);
      inc(k);
    end;
  end;

end;
Einfach Zeilenweise abhecheln, kannst das auch auf spaltenweise umstellen.


Grüße, Messie

Klaus01 8. Jun 2007 14:24

Re: StringGrid Cells beschriften
 
Abgeleitet von der Messie Routine:

Delphi-Quellcode:
procedure TForm1.TntButton1Click(Sender: TObject);
var
  i,j : integer;
begin
  for i := 0 to SG.RowCount-1 do
    for j := 0 to SG.ColCount-1 do
      SG.Cells[j,i] := IntToStr((7*i)+j+1); // Fehler korrigiert, danke Ersan90 
end;
Grüße
Klaus

Ersan90 8. Jun 2007 14:31

Re: StringGrid Cells beschriften
 
vielen vielen dank :D

@Klaus01: Bei dem quelltext bekomm ich irgendwie nen fehler rein :? abber danke euch beiden

Ersan90 8. Jun 2007 14:34

Re: StringGrid Cells beschriften
 
Noch eine kleine Frage.. wie bekomm ich denn die grauen spalten links und oben weg? oder wie kann ich die bei der beschriftung auslassen? denn die kann ich in der prozedur irgendwie net anklicken

messie 8. Jun 2007 14:39

Re: StringGrid Cells beschriften
 
Zitat:

Zitat von Ersan90
Noch eine kleine Frage.. wie bekomm ich denn die grauen spalten links und oben weg? oder wie kann ich die bei der beschriftung auslassen? denn die kann ich in der prozedur irgendwie net anklicken

Im Objektinspektor gibt es die Eigenschaften FixedRows und FixedColoumns, die Mußt Du nur auf 0 setzen.

Grüße, Messie

Ersan90 8. Jun 2007 14:42

Re: StringGrid Cells beschriften
 
Danke nochmals =) Jetzt sieht das ganze Programm doch mal schön aus.

DeddyH 8. Jun 2007 14:43

Re: StringGrid Cells beschriften
 
Und jetzt dürfte der Fehler mit Klaus' Code auch verschwunden sein ;)

Ersan90 8. Jun 2007 14:52

Re: StringGrid Cells beschriften
 
jep das is auch ok doch ein problem tut sich noch auf..
nun klickt man eine zahl an.. diese wird gespeichert und dann ausgewertet
doch ich finde es etwas unübersichtlich da man sich die zahlen schlecht merken kann..

Kann mir vll jemand sagen wie die angegklickten cells farbe bekommen | und wie bei klick eines anderen buttons alle farben wieder verschwindet..?

Das is dann auch meine letzte frage versprochen :D:D

messie 8. Jun 2007 15:18

Re: StringGrid Cells beschriften
 
Schau mal unterZellen im Grid farbig, das ist eine gute Grundlage.
Zitat:

Das is dann auch meine letzte frage versprochen
Das ist in diesem Forum nicht so wichtig...

Grüße, Messie

Ersan90 8. Jun 2007 15:34

Re: StringGrid Cells beschriften
 
ok danke das hilft mir :lol: meessiee an die macht :P

Ersan90 8. Jun 2007 17:10

Re: StringGrid Cells beschriften
 
hm irgendwie komm ich da net weiter..

ich kriegs net hin dass er nur die eine zelle markiert und net gleich die ganze zeile.. und das
die cell dann auch farbig bleibt klappt auch net :cry:

messie 8. Jun 2007 18:07

Re: StringGrid Cells beschriften
 
Dann poste doch mal, wie Du die Routine gelöst hast, dann kann man sehen, woran es liegt.

Grüße, Messie

Klaus01 8. Jun 2007 18:25

Re: StringGrid Cells beschriften
 
Guten Abend,

so läuft es bei mir:

Delphi-Quellcode:
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  aCol, ARow :Integer;
begin
  (sender as TStringGrid).MouseToCell(x,y,Acol,ARow);
  zahlen[StrToInt((sender as TStringGrid).Cells[ACol,ARow])]:=true;
end;

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if ((sender as TStringGrid).Cells[ACol,ARow] <> '') and
     (zahlen[StrToInt((sender as TStringGrid).Cells[ACol,ARow])]) then
    begin
      with (sender as TStringGrid) do
        begin
           canvas.Brush.Color:=clYellow;
           canvas.FillRect(rect);
           Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, (sender as TStringGrid).Cells[ACol, ARow]);
        end;
    end;
end;
Delphi-Quellcode:
  private
    zahlen : Array [1..49] of Boolean;
    { Private declarations }
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  i:Byte;
begin
  for i:=1 to 49 do
    zahlen[i]:=false;
end;
das Zurücksetzen der Farben wirst Du dann wohl selbsständig hinbekommen.
Auch solltest Du noch überprüfen, daß nicht zuviele Zahlen markiert werden können.

Grüße
Klaus

Grüße
Klaus

Ersan90 8. Jun 2007 23:42

Re: StringGrid Cells beschriften
 
vielen dank ;) ich werde das ganze dann morgen ausprobieren und nochmal eine rückmeldung geben

MFG Ersan

Ersan90 10. Jun 2007 16:40

Re: StringGrid Cells beschriften
 
klappt alles :D


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