Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 2 zahlen in edit feldern tauschen (https://www.delphipraxis.net/103618-2-zahlen-edit-feldern-tauschen.html)

double_slash 18. Nov 2007 16:35


2 zahlen in edit feldern tauschen
 
hi leute
wollte mal ein program schreiben wo man bei starten in 2 edit felder 2 zahlen eingibt...wenn man dann auf den "tauschen" bitbtn klickt werden die 2 zahlen einfach getauscht...ich komm da grad aber nich weiter...könnt ihr mir da helfen???

mein quelltext sieht bisher so aus:
Delphi-Quellcode:
 procedure TForm1.Button1Click(Sender: TObject);
        var a, b: Integer;
        begin
        a := IntEdit1.Value;
        b := IntEdit2.Value;
        tausche(a, b);
        IntEdit1.Value := a;
        IntEdit2.Value := b;
        end;
is das richtig?? kann ja nich sein weil es funktioniert ja nich^^
also wär cool wenn ihr mir helfen könntet
mfg
double_slash

[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]

DeddyH 18. Nov 2007 16:38

Re: 2 zahlen in edit feldern tauschen
 
Und wo ist die Prozedur tausche()?

mkinzler 18. Nov 2007 16:39

Re: 2 zahlen in edit feldern tauschen
 
Diese ist eigentlich überflüssig:

Delphi-Quellcode:
IntEdit1.Value := b;
IntEdit2.Value := a;

DeddyH 18. Nov 2007 16:40

Re: 2 zahlen in edit feldern tauschen
 
Wieso eigentlich Value?

double_slash 18. Nov 2007 16:47

Re: 2 zahlen in edit feldern tauschen
 
kannst du mal bitte den vollständigen quelltext reinschreiben bitte?

mkinzler 18. Nov 2007 16:47

Re: 2 zahlen in edit feldern tauschen
 
.Text statt .Value

Dax 18. Nov 2007 16:48

Re: 2 zahlen in edit feldern tauschen
 
Zitat:

Zitat von double_slash
kannst du mal bitte den vollständigen quelltext reinschreiben bitte?

Nein, du zuerst. Wenn wir nicht wissen, was der wichtige Teil deines Codes tut ("tausche" nämlich), kann dir niemand helfen ;)

double_slash 18. Nov 2007 16:53

Re: 2 zahlen in edit feldern tauschen
 
na:

procedure TForm1.tausche(x, y: Integer);
begin
x := y;
y := x;
end;

das soll sie machen

mkinzler 18. Nov 2007 16:54

Re: 2 zahlen in edit feldern tauschen
 
Dreieckstausch:
Delphi-Quellcode:
 procedure TForm1.tausche(x, y: Integer);
var
    z: Integer;
begin
    z := y;
    y := x;
    x:= z;
end;

double_slash 18. Nov 2007 16:55

Re: 2 zahlen in edit feldern tauschen
 
und was ist jetzt z bei der sache?

DeddyH 18. Nov 2007 16:56

Re: 2 zahlen in edit feldern tauschen
 
2 Denkfehler:
1. Die Übergabe muss ByReference erfolgen, sonst sind alle Änderungen nach Abarbeitung verschwunden (also das Wörtchen var vor die Parameter).
2. Wenn Du das so machst, haben beide Variablen anschließend immer denselben Wert, da Du keinen Puffer verwendest.

Also so:
Delphi-Quellcode:
procedure tausche (var x, y: integer);
var temp: integer;
begin
  temp := x;
  x := y;
  y := temp;
end;

mkinzler 18. Nov 2007 16:56

Re: 2 zahlen in edit feldern tauschen
 
Ist eine Zwischenvariable, die den wert von y sichert, da du sie ja dann überschreibst und so x und y den selben wert hätten.

double_slash 18. Nov 2007 17:12

Re: 2 zahlen in edit feldern tauschen
 
funktioniert trotzdem nich :( :( :( :( :( :( :( :( :( :(
schade

DeddyH 18. Nov 2007 17:13

Re: 2 zahlen in edit feldern tauschen
 
Mal #11 ausprobiert?

double_slash 18. Nov 2007 17:19

Re: 2 zahlen in edit feldern tauschen
 
wat?
ey jungs ich bin über der anfänger^^

DeddyH 18. Nov 2007 17:20

Re: 2 zahlen in edit feldern tauschen
 
Ich meinte Beitrag Nr. 11

grenzgaenger 18. Nov 2007 20:28

Re: 2 zahlen in edit feldern tauschen
 
Zitat:

Zitat von double_slash
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
        var a, b: Integer;
        begin
        a := IntEdit1.Value;
        b := IntEdit2.Value;
        tausche(a, b);
        IntEdit1.Value := a;
        IntEdit2.Value := b;
        end;

also deinen code, würd ich in etwa so umschreiben..
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var temp: string;
begin
 temp := IntEdit1.text;
 IntEdit1.text := IntEdit2.text;
 IntEdit2.text := temp;
end;
denn, du hast hier gar keinen int... sondern nur text... das hoch- und runter konvertieren kannste dir sparen.


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