Autor Beitrag
Naemo
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Di 23.01.07 18:18 
Hi

Hab für Info nen Stringgrid, wo ich ne Tausendertafel darstellen soll. Die Tafel soll von 0 bis 1000 gehen, aber es werden immer nur 100 Felder angezeigt.
Un da hab ich jetz nen kleines Problem.
Hab bis jetzt nur geschaft, das die erste Reihe in richtiger Reihenfolge ausgegeben wird

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm3.Button2Click(Sender: TObject);
var v_t1,v_t2, i, i_2, i_3,  : integer;
begin
       randomize;

        v_t1 := random(900);                   (*erste Zahl in der angezeigte Tafel*)      

                 v_t2 := v_t1 + 10;
                     
          begin
         for i:= v_t1 to v_t2 do    (* soll für immer die nächste Zahl nach Rechts eine dazu zählen*)

                   for i_2 := 0 to 10 do   (*soll immer eine Zeile nach rechts gehen*)

                       for i_3 := 0 to 10 do   (*<--- Hier is das Problem: Er müsste eigetlich in der  
                                               Zählschleife immer "i_3 + 10 rechnen" un nich "i_3 + 1"*)



 StringGrid1.cells[i_2,i_3]:=(inttostr(v_t1 + i_2 + i_3));

                          end;


Zuletzt bearbeitet von Naemo am Di 23.01.07 18:47, insgesamt 1-mal bearbeitet
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Di 23.01.07 18:20 
könntest Du bitte die Code-Tags benutzen anstatt alles fett darzustellen
Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure Bla;
begin
  TueEtwas;
end;

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Naemo Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Di 23.01.07 18:29 
sry
Dragonclaw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 196

Windows Vista
Delphi 7 Prof.
BeitragVerfasst: Di 23.01.07 18:37 
Ich versteh nicht wirklich was du genau haben willst. Guck dir mal bitte das Programm im Anhang an und sag mir ob du sowas gemeint hast.
Einloggen, um Attachments anzusehen!
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Di 23.01.07 18:41 
user profile iconNaemo hat folgendes geschrieben:
sry
per edit kann man dies auch nachträglich ändern!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Naemo Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Di 23.01.07 18:45 
@Dragonclaw

Genau so was mein ich :D
Kannst mir bidde ma sagen, wie de das gemacht hast, oder den Quelltext geben?!
Dragonclaw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 196

Windows Vista
Delphi 7 Prof.
BeitragVerfasst: Di 23.01.07 18:52 
Klar kann ich machen hier ist der Code. Ich denke mal du bist in der Lage zu verstehen was da passiert ;)


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
procedure TForm1.FormCreate(Sender: TObject);
var
  I, J, Zahl: Integer;
begin
Zahl:= 1;
for J := 0 to 9 do
 for I := 0 to 9 do
   begin
    StringGrid1.Cells[I,J] := IntToStr(Zahl);
    Inc(Zahl);
   end;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
var I, J: Integer;
begin
if not (StringGrid1.Cells[9,9] = IntToStr(1000)) then
 begin
  for J := 0 to 9 do
   for I := 0 to 9 do
    StringGrid1.Cells[I,J] := IntToStr(StrToInt(StringGrid1.Cells[I,J]) + 100);
 end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var I,J: Integer;
begin
if not (StringGrid1.Cells[0,0] = IntToStr(1)) then
 begin
  for J := 0 to 9 do
   for I := 0 to 9 do
    StringGrid1.Cells[I,J] := IntToStr(StrToInt(StringGrid1.Cells[I,J]) - 100);
 end;
end;
Naemo Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Di 23.01.07 19:00 
wunderbar :D

Danke

Hab da aber jetz nochn par fragen :oops: :
Wie kann ichn da Lücken lassen, damit man da selber die Lücken ergenzen kann?!
Un wie kann man das kontrollieren?
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Do 01.03.07 23:24 
Hallo,
user profile iconNaemo hat folgendes geschrieben:

Wie kann ichn da Lücken lassen, damit man da selber die Lücken ergenzen kann?!
indem man nach dem Füllen des Grids per Zufall Zellen auswählt und den Inhalt löscht.

Pseudo-Code:
solange Anzahl-leere-Zellen nicht erreicht
wenn Zelle[Zufalls-Spalte,Zufalls-Zeile] nicht leer
dann Zelle[Zufalls-Spalte,Zufalls-Zeile] leeren und Anzahl-leere-Zellen hochzählen

kontrollieren? Eingabe mit Inhalte der Nachbar-Zellen vergleichen

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )