Autor Beitrag
flotschi
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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....
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.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,0then
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 user profile iconGausi: Delphi-Tags hinzugefügt


Zuletzt bearbeitet von flotschi am Do 20.04.06 01:17, insgesamt 1-mal bearbeitet
Ironwulf
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: Do 20.04.06 01:00 
fällt dir sehr früh ein das du morgen schul hast ;D

ausblenden 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
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 20.04.06 01:28 
Hi!
Danke zuerst mal!
Aber ich hab noch immer so ziemlich das selbe problem...

ausblenden 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); // Vertausche die Zahlen wenn Zahl im oberen > Zahl im unteren
var v:integer;
    zahl,hilfe:string;

begin
for v:= 0 to 9 do
if stringgrid1.cells[v,0]>stringgrid2.Cells[v,0then
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 user profile iconGausi: Code- durch Delphi-Tags ersetzt
Ironwulf
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: Do 20.04.06 02:03 
wenn dus so machst hat die variable zahl keinen inhalt

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
for v:= 0 to 9 do 
if stringgrid1.cells[v,0]>stringgrid2.Cells[v,0then 
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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
const max= 20;
type Tzahlen = array[1..max] of integer;
var
  Form1: TForm1;
  arr: Tzahlen;

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button3Click(Sender: TObject); // Button soll die zahlen der 2 Stringgrids in das array übergeben..??
begin
???
end;


Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt
Ironwulf
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: Do 20.04.06 03:05 
ich hab zwar noch nie was mit stringgrids gemacht aber so müssts gehn ;D
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
for i:= 0 to 9 Do
begin
  arr[i]:= StrToInt(stringgrid1.Cells[i,0]); 
  arr[i+10]:= StrToInt(stringgrid2.Cells[i,0]);
end;


und dann noch die zeile ändern
ausblenden Delphi-Quelltext
1:
2:
const max= 20
type Tzahlen = array[1..max] of integer;


in
ausblenden Delphi-Quelltext
1:
2:
const max= 19
type Tzahlen = array[0..max] of integer;
flotschi Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Button4Click(Sender: TObject); //Gib die zahlen des Arrays in einem Label aus
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 user profile iconGausi: Code- durch Delphi-Tags ersetzt
der Berliner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: Do 20.04.06 15:31 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button4Click(Sender: TObject); //Gib die zahlen des Arrays in einem Label aus  
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: Do 20.04.06 15:37 
:( ok ..dann kann er doch ein label nehmen :D
gruß

_________________
[b]Ich weiß nicht immer, wovon ich rede. Aber ich weiß, dass ich recht habe.[b]