Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi stringgrid per Timer mit Randomzahlen füllen (https://www.delphipraxis.net/114742-stringgrid-per-timer-mit-randomzahlen-fuellen.html)

laura_ 30. Mai 2008 14:11


stringgrid per Timer mit Randomzahlen füllen
 
- wie geht es, dass ich ein großes stringgrid (ca. 99 felder) so programmiere, dass ich mit einem timer ,random-zahlen in einer bestimmten reihenfolge ausgeben kann also in die einzelnen felder?

[edit=SirThornberry]Titel geändert und Programmiersprache geändert - Bitte zukünftig selbst aussagekräftigere Titel nehmen als "Stringgrid" :-D (das du Hilfe suchst, sagt ja bereits die Forumssparte aus) - Mfg, SirThornberry[/edit]

DeddyH 30. Mai 2008 14:13

Re: suche hilfe für stringgrid?
 
Was meinst Du mit bestimmter Reihenfolge? Aufsteigend sortiert?

laura_ 30. Mai 2008 14:17

Re: suche hilfe für stringgrid?
 
ja habe ein 10 mal 9 felder großes stringgrid und will nun dann zufallszahlen
von 1 bis 99 gezogen werden und dann jeweils in ihre spalte einsortiert werden
z.B. die 17 kommt in die 7,2? weißt du was ich meine?

Klaus01 30. Mai 2008 14:17

Re: suche hilfe für stringgrid?
 
Hallo,

ich sehe das zwei Möglicjkeitem.

a)
Du ermittelst zwei Zufallszahlen (eine für die Zeile und eine für die Spalte)
b)
Du siehst das Stringgrid als eine Kette von Feldern an
Zufallszahl modulo Spaltenzahl gibt die Zeile
Zufallszahl div Spaltenzahl gibt den Spaltenindex

Grüße
Klaus

DP-Maintenance 30. Mai 2008 14:20

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Sonstige Fragen zu Delphi" nach "VCL / WinForms / Controls" verschoben.

Tyrael Y. 30. Mai 2008 14:24

Re: suche hilfe für stringgrid?
 
Deine Grundlagen sind RowCount und ColCount.

RowCount gibt dir die Anzahl der Zeilen zurück.
ColCount die Anzahl der Spalten.

Du machst also eine verschachtelte Schleife.
- gehst dabei alle Zeilen durch
- in jeder Zeile schreibst du in jede der Spalten dieser Zeile einen Wert rein


Damit du auch selbst noch bissel was machst hier ein Pseudo-Code ;)

Delphi-Quellcode:
function FülleStringGridMitWerte();
begin
   Schleife über alle Zeilen angefangen von Zeile i := 0 bis letzte Zeile
   begin
     Schleife über alle Spalten angefangen von Spalte j := 0 bis letzte Spalte
     begin
       StringGrid.Cells[aktuelle Spalte, aktuelle Zeile] := Mein zufälliger Wert;
     end;
   end;
end;

DeddyH 30. Mai 2008 14:31

Re: stringgrid per Timer mit Randomzahlen füllen
 
@Tyrael Y.: Das ist aber nicht das Ziel ;) .
Angenommen, die gerade gezogene Zufallszahl ist 17. Wie Klaus bereits sagte, kannst Du den Zeilenindex mit div ermitteln und den Spaltenindex mit mod. Solltest Du fixe Spalten oder Zeilen definiert haben, musst Du die noch dazuaddieren (FixedCols bzw. FixedRows). Kurze Beispielrechnung:
17 div 10 = 1 <-- Zeile 1 (die erste hat Index 0)
17 mod 10 = 7 <-- Spalte 7 (s.o.)

laura_ 30. Mai 2008 14:45

Re: stringgrid per Timer mit Randomzahlen füllen
 
wenn cih also mit mod und div die beiden ergebnisse für eine zufallszahl errechnet habe...
wie kann cih die beiden zusammenführen? indem ich für zeile und spalte variablen nehme? und diese
dann dem ergebnis zuordne? wie geht das genau?

DeddyH 30. Mai 2008 14:48

Re: stringgrid per Timer mit Randomzahlen füllen
 
Ich würde es mit 2 Variablen machen.
Delphi-Quellcode:
Zeile := Zahl div 10 + StringGrid.FixedRows;
Spalte := Zahl mod 10 + StringGrid.FixedCols;
StringGrid.Cells[Spalte, Zeile] := IntToStr(Zahl);
[edit] Zeile und Spalte bei der Zuweisung verwechselt :oops: [/edit]

laura_ 30. Mai 2008 14:58

Re: stringgrid per Timer mit Randomzahlen füllen
 
ja hatte ich bemerkt ;)danke hat mir sehr geholfen :)


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