| Autor |
Beitrag |
flotschi
Hält's aus hier
Beiträge: 4
|
Verfasst: Do 20.04.06 00:49
Hallo!
Vielen Dank im Voraus schon mal!
Ich muss bis morgen ein kleines Programm für die Schule abgeben und komm nicht weiter.
Es besteht aus 2 stringgrids mit jeweils 1 zeile und 10 spalten, die beide mit zufallszahlen zw. 1 und 100 gefüllt werden sollen...soweit hab ichs auch richtig und es geht..
Mit einem 2 Button sollen dann die Zahlen elementweise verglichen werden und wenn die Zahl im oberen der beiden Stringgrids größer ist als die im unteren, dann sollen sie vertauscht werden...da happerts ein bisserl bei mir
hier der code den ich bis jetzt zusammengepfuscht hab....
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.Button1Click(Sender: TObject); var i,o,u,zuzahl: integer; begin o:=100; u:=1; for i := 0 to 9 do begin zuzahl:=random(o-u)+1; stringgrid1.Cells[i,0]:=inttostr(zuzahl); zuzahl:=random(o-u)+1; stringgrid2.Cells[i,0]:=inttostr(zuzahl); end; end;
procedure TForm1.FormCreate(Sender: TObject); begin randomize(); end;
procedure TForm1.Button2Click(Sender: TObject); var v:integer; zahl:string; begin for v:= 0 to 9 do if stringgrid1.cells[v,0]>stringgrid2.Cells[v,0] then begin stringgrid1.Cells[v,0]:= zahl; stringgrid2.cells[v,0]:= stringgrid1.cells[v,0]; stringgrid2.Cells[v,0]:= zahl;
end;
end; |
Mein problem ist jetzt, dass mir das prog die Zahlen, wo die obere kleiner ist, stehen lasst und die die getauscht werden sollten, löscht es einfach....
Kann mir jemand sagen was ich falsch gemacht hab??
bin am verzweifeln...
Vielen Dank!
mfg
flotschi
Moderiert von Gausi: Delphi-Tags hinzugefügt
Zuletzt bearbeitet von flotschi am Do 20.04.06 01:17, insgesamt 1-mal bearbeitet
|
|
Ironwulf
      
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: Do 20.04.06 01:00
fällt dir sehr früh ein das du morgen schul hast ;D
Delphi-Quelltext 1: 2: 3: 4: 5:
| begin stringgrid1.Cells[v,0]:= zahl; stringgrid2.cells[v,0]:= stringgrid1.cells[v,0]; stringgrid2.Cells[v,0]:= zahl; end; |
und zwar wenn du zahlen vertauschen willst brauchste noch ne hilfsvariable müsste dann in etwa so aussehn
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| var hilfe: String; begin hilfe:= stringgrid1.Cells[v,0]; stringgrid1.Cells[v,0]:= Zahl; stringgrid2.Cells[v,0]:= hilfe; end; |
und in zukunft formatier bitte deinen text und füg kommentare ein damit man weiß was die einzelnen button machen solln
EDIT:
da mir grad löangweilig is weiß ich dich noch bevor es ein mod tut darauf hin das du bitte dein titel des themas änderst damit es anderen usern mit dem selben problem einfacher fällt ein ähnliches problem zubewältigen ;D;D;D;D;D;D
so den hinweis wollt ich schon immer mal schreiben XD
|
|
flotschi 
Hält's aus hier
Beiträge: 4
|
Verfasst: Do 20.04.06 01:28
Hi!
Danke zuerst mal!
Aber ich hab noch immer so ziemlich das selbe problem...
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Button2Click(Sender: TObject); var v:integer; zahl,hilfe:string;
begin for v:= 0 to 9 do if stringgrid1.cells[v,0]>stringgrid2.Cells[v,0] then begin hilfe:= stringgrid1.Cells[v,0]; stringgrid2.cells[v,0]:= zahl; stringgrid2.Cells[v,0]:= hilfe; stringgrid1.cells[v,0]:=zahl
end;
end; |
Er Setzt mir jetzt zwar die Zahl vom oberen in den unteren Stringgrid, lässt aber die untere zahl verschwinden und die Zelle im oberen wird leer...warum??
Danke!
mfg
flotschi
Moderiert von Gausi: Code- durch Delphi-Tags ersetzt
|
|
Ironwulf
      
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: Do 20.04.06 02:03
wenn dus so machst hat die variable zahl keinen inhalt
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| for v:= 0 to 9 do if stringgrid1.cells[v,0]>stringgrid2.Cells[v,0] then begin Hilfe:= stringgrid2.Cells[v,0]; stringgrid2.Cells[v,0]:= stringgrid1.Cells[v,0]; stringgrid1.Cells[v,0]:= Hilfe; end; |
so müssts jetz wirklich passen
|
|
flotschi 
Hält's aus hier
Beiträge: 4
|
Verfasst: Do 20.04.06 02:32
Super Danke!
endlich gehts...
ich will nicht frech sein oder so...aber kannst du mir vielleicht noch helfen wie ich die 20 zahlen aus den beiden stringgrids in ein (einzelnes) array abspeichern kann? wär echt nett! das array hab ich schon nur wie krieg ich die 20 zahlen rein??
nochmals danke!
mfg
flotschi
Delphi-Quelltext 1: 2: 3: 4: 5:
| const max= 20; type Tzahlen = array[1..max] of integer; var Form1: TForm1; arr: Tzahlen; |
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.Button3Click(Sender: TObject); begin ??? end; |
Moderiert von Gausi: Code- durch Delphi-Tags ersetzt
|
|
Ironwulf
      
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: Do 20.04.06 03:05
|
|
flotschi 
Hält's aus hier
Beiträge: 4
|
Verfasst: Do 20.04.06 03:46
Danke Vielmals!
aber eine kleine Frage hätt ich da noch
als letzes muss ich den inhalt des arrays in einem Label ausgeben, so dass alle zahlen des Arrays nebeneinander mit beistrich im label erscheinen...
ich brings nur zusammen die letze zahl im label anzuzeigen...
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button4Click(Sender: TObject); var i:integer; begin for i:=0 to 19 do begin label1.caption:= inttostr(arr[i]); end;
end; |
Danke für die hilfe!
mfg
flotschi
Moderiert von Gausi: Code- durch Delphi-Tags ersetzt
|
|
der Berliner
      
Beiträge: 417
Win Xp Home
delphi 2005
|
Verfasst: Do 20.04.06 07:05
Hallo
bist du dir sicher das das ein label sein muß.
Weil Label ist einzeilig weitere Zeile geht glaub ich nur mit #13#10
nimm doch ein Memo, oder darfst du das nicht?
So wie du es hast durchäuft er zwar die schleife 20 mal
schreibt auch jedesmal einen anderen wert ins label
der wird aber bei jedem Durchlauf vom nächsten wert wieder überschrieben.
sodas am schluß der 20ste wert im Label steht.
also ich schlag ne memo Komponente vor.
Gruß
_________________ [b]Ich weiß nicht immer, wovon ich rede. Aber ich weiß, dass ich recht habe.[b]
|
|
Ironwulf
      
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: Do 20.04.06 15:31
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button4Click(Sender: TObject); var i:integer; begin Label1.Caption:= IntToStr(arr[1]); for i:=1 to 19 do begin label1.caption:= Label.Caption + ' - ' + inttostr(arr[i]); end; |
|
|
der Berliner
      
Beiträge: 417
Win Xp Home
delphi 2005
|
Verfasst: Do 20.04.06 15:37
 ok ..dann kann er doch ein label nehmen
gruß
_________________ [b]Ich weiß nicht immer, wovon ich rede. Aber ich weiß, dass ich recht habe.[b]
|
|