Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Sender (https://www.delphipraxis.net/164552-sender.html)

jandelph 17. Nov 2011 16:47


Sender
 
hallo,

ich muss einen Währungsumrechner(€-DM) erstellen, dabei soll ich die Fuktion sender benutzen!
Also 2 edit felder, wenn man nen knopf drückt soll dann beim anderen auch was stehen!
Ich hab das so verstanden:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
a, b : real;
begin
  a := StrToFloat(edit1.Text);
  b := StrToFloat(edit2.Text);
  if sender = edit1 then edit2.Text := FloatToStr(a*2);
  if sender = edit2 then edit1.Text := FloatToStr(b/2);
end;
das Progamm kann ich zwar ausführen jedoch gschieht nichts wenn ich den button drücke!
Welchen Fehler hab ich gemacht?
Danke!

LG
Jan

daywalker9 17. Nov 2011 16:50

AW: Sender
 
Du musst Sender = Button1 oder Sender = Button2 prüfen, denn daher kommt das Ereignis und nicht vom Edit.

Luckie 17. Nov 2011 16:55

AW: Sender
 
Und man kann im Titel auch mehr als ein Wort eintippen. ;)

DeddyH 17. Nov 2011 16:57

AW: Sender
 
Zitat:

Zitat von daywalker9 (Beitrag 1136719)
Du musst Sender = Button1 oder Sender = Button2 prüfen, denn daher kommt das Ereignis und nicht vom Edit.

Das macht aber auch nur dann Sinn, wenn derselbe Event-Handler beiden Buttons zugewiesen wird. Das kann man bequem im Objektinspektor erledigen.

daywalker9 17. Nov 2011 17:10

AW: Sender
 
Zitat:

Zitat von DeddyH (Beitrag 1136721)
Zitat:

Zitat von daywalker9 (Beitrag 1136719)
Du musst Sender = Button1 oder Sender = Button2 prüfen, denn daher kommt das Ereignis und nicht vom Edit.

Das macht aber auch nur dann Sinn, wenn derselbe Event-Handler beiden Buttons zugewiesen wird. Das kann man bequem im Objektinspektor erledigen.

Das natürlich vorrausgesetzt.

jandelph 17. Nov 2011 17:12

AW: Sender
 
hallo,
danke für eure antworten,
ich möchte aber, dass beides bei einem button geschehen soll!
also wenn das in edit1 steht soll es in edit2 angezeigt werden und wenn es bei edit2 steht bei edit1...
LG
Jan

Bummi 17. Nov 2011 17:18

AW: Sender
 
ohne Button
Delphi-Quellcode:
procedure TForm2.Edit2Change(Sender: TObject);
var
  d:Double;
begin
  If TryStrToFloat(TEdit(Sender).Text,d) then
    if Sender=Edit1 then
      begin
      Edit2.OnChange := nil;
      Edit2.Text := FloatToStr(d/2);
      Edit2.OnChange := Edit2Change;
      end
    else
      begin
        Edit1.OnChange := nil;
        Edit1.Text := FloatToStr(d/2);
        Edit1.OnChange := Edit2Change;
      end;

end;

jandelph 17. Nov 2011 17:38

AW: Sender
 
Danke es funktioniert und ich versteh es auch ausßer,
was beudeutet der datentyp double?
und warum ist am Ende
Application.ProcessMessages ?
oder besser gefragt was geschieht dadurch?
LG
Jan

Bummi 17. Nov 2011 17:52

AW: Sender
 
Zitat:

und warum ist am Ende
Application.ProcessMessages ?
das hatte ich da vergessen, sorry, brauchst Du nicht ....

Double ist ein Fliesskommadatentyp 8 Byte und entspricht in neueren Versionen Real


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