Autor Beitrag
Kampf_Kartoffel
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 22.10.18 23:40 
Hallo,

im unten angegeben Quelltext stoße ich auf das Problem, dass wenn ich beim ausführen des Programmes, wenn ich Button1 klicke und nur Radiobutton1 gechecked ist trotzdem label2, label3 und label 4 sichtbar werden. Warum ist das so und was kann ich ändern damit im genannten Szenario nur label2 sichtbar wird?

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:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
procedure TForm1.Button1Click(Sender: TObject);
var Euro:real;
begin
label2.visible:=false;
label3.visible:=false;
label4.visible:=false;
label5.visible:=false;
 try
 Euro:=strtofloat(edit1.text);

   if (radiobutton1.checked) or (radiobutton2.checked) or (radiobutton3.checked) or (radiobutton4.checked)  then begin

     if (radiobutton1.checked) then
     panel1.caption:=floattostr(Dollar(Euro));
     label2.visible:=true;

     if (radiobutton2.checked) then
     panel1.caption:=floattostr(Forint(Euro));
     label3.visible:=true;

     if (radiobutton3.checked) then
     panel1.caption:=floattostr(Pfund(Euro));
     label4.visible:=true;

     if (radiobutton4.checked) then
     showmessage('dies ist die Ausgangswährung');

   end else begin
   showmessage('Bitte wählen sie eine Währung zum rechnen aus');
   end;

 except
 showmessage('falsche Eingabe');
 edit1.setfocus;
 end;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  form1.color:=clwhite;
  edit1.setfocus;
  edit1.clear;
  edit2.clear;
  edit3.clear;
  edit4.clear;
  label2.visible:=false;
  label3.visible:=false;
  label4.visible:=false;
  label5.visible:=false;
end;


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 23.10.2018 um 00:11
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 23.10.18 00:18 
Moin und :welcome: in der EE!

user profile iconKampf_Kartoffel hat folgendes geschrieben Zum zitierten Posting springen:
wenn ich Button1 klicke und nur Radiobutton1 gechecked ist trotzdem label2, label3 und label 4 sichtbar werden. Warum ist das so und was kann ich ändern damit im genannten Szenario nur label2 sichtbar wird?
Ich rate mal, du möchtest beide Befehle ausführen, wenn die Bedingung zutrifft, oder? Dann muss da aber noch ein begin-end drum rum: :idea: :zwinker:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
     if (radiobutton1.checked) then begin
       panel1.caption:=floattostr(Dollar(Euro));
       label2.visible:=true;
     end;

Weiterhin noch ein Tipp: du solltest besser das Ereignis FormCreate für das Initialisieren des Formulars benutzen, nicht FormActivate. Letzteres wird immer dann aufgerufen, wenn das Formular den Fokus erhält (also mehrmals, nicht nur einmal beim Start des Programms). :idea:

cu
Narses

PS: Falls du Interesse hast, wie man die vielen ".Visible="-Anweisungen einsparen kann, sag bescheid. Da geht noch was. ;)

_________________
There are 10 types of people - those who understand binary and those who don´t.