Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [erledigt] .Caption wird nicht gesetzt (Noob-Alarm!) (https://www.delphipraxis.net/64141-%5Berledigt%5D-caption-wird-nicht-gesetzt-noob-alarm.html)

JeSchwa 28. Feb 2006 05:13


[erledigt] .Caption wird nicht gesetzt (Noob-Alarm!)
 
hallo Gemeinde,

me = neu unter den Delphinen aber wissbegierig. :-D

zum Reinschnuppern hab ich mal mit dem Mini-Rechner von www.dsdt.info angefangen. wie erwartet ohne Probleme.

dann hab ich mit Verzweigungen angefangen und ein sehr zelzames Problemchen mit dem Setzen einer .Caption.

das Prog:
1 Unit mit 1 Form (Form1)
da drin Edit1, Edit2, Label1-4 und nen Drückmich

passieren tut nur:
Drückmich -> Edit1+Edit2 -> Label2

das Problem habe ich mit dem ersten zaghaften Versuch einer Eingabe-Kontrolle:
es soll, wenn Edit1 oder Edit2 oder beide leer sind eine Warnung auf Lebel4.Caption und ansonsten eine Entwarnung, doch die ENTwarnung erscheint nicht - Label4.Caption wird geleert, statt neu befüllt.
hab's auch mal mit Form1.Label4.Caption versucht - gleiches Ergebnis. auch das Auskommentieren der Formatierungen hat nix gebracht.

zur Überprüfung der Verzweigung hab ich dann noch ein Edit1.Text := Edit2.Text; eingefügt und das wird prima ausgeführt - also ist kein Fehler im if bis dahin.

und nun bin ich ratlos und hoffe auf eine Erklärung. :D
THX schonmal

Jens


(die Kommentare meinen: !(Problemstelle)1(Nummer1).test(zum Problem).(Ergebnis des Tests))

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
//.decl
 var
 zahl1,zahl2,ergebnis: integer;
 warn1,warn2: ShortString;

begin
//.init
 zahl1 := 0; zahl2 := 0;
 warn1 := ''; warn2 := '';

 if (Length(Edit1.Text) > 0) then
  zahl1 := StrToInt(Edit1.Text)
  else begin
  warn1 := 'Feld1 ist leer! ';
  end;

 if ... nochmal für Edit2 und warn2

 ergebnis := zahl1 + zahl2;
 Label2.Caption := IntToStr(ergebnis);

 if (warn1 = '') then begin
   if (warn2 = '') then begin
     Edit1.Text := Edit2.Text; //.!1.test.ok
     Label4.Font.Color := clWindowText;
     Label4.Font.Style := [];
     Label4.Caption := 'Warnungen: keine'; //.!1
//   Form1.Label4.Caption := 'Warnungen: keine'; //.!1.test.nok
    end
 end
 else
   Label4.Font.Color := clRed;
   Label4.Font.Style := [fsBold];
   Label4.Caption := warn1 + warn2;

end;

end.

enzo 28. Feb 2006 05:33

Re: .Caption wird nicht gesetzt (Noob-Alarm!)
 
Hallo Jens

eine Entwarnung wird es nie geben den Du Fragst ob warn1='' , wenn Warn1 nicht leer fuehrt er es auch nicht aus.

Delphi-Quellcode:
if ([u]warn1 = ''[/u]) then begin
   if (warn2 = '') then begin
     Edit1.Text := Edit2.Text; //.!1.test.ok
     Label4.Font.Color := clWindowText;
     Label4.Font.Style := [];
     Label4.Caption := 'Warnungen: keine'; //.!1
//   Form1.Label4.Caption := 'Warnungen: keine'; //.!1.test.nok
    end
end
else
   Label4.Font.Color := clRed;
   Label4.Font.Style := [fsBold];
   Label4.Caption := warn1 + warn2;

end;
probier es mal so

Delphi-Quellcode:
if (warn1 <> '') then begin
   if (warn2 <> '') then begin
     Edit1.Text := Edit2.Text; //.!1.test.ok
     Label4.Font.Color := clWindowText;
     Label4.Font.Style := [];
     Label4.Caption := 'Warnungen: keine'; //.!1
//   Form1.Label4.Caption := 'Warnungen: keine'; //.!1.test.nok
    end
end
else
   Label4.Font.Color := clRed;
   Label4.Font.Style := [fsBold];
   Label4.Caption := warn1 + warn2;

end;
gruss
enzo

[edit=sakura] [delphi]-Tags Mfg, sakura[/edit]

JeSchwa 28. Feb 2006 05:52

Re: .Caption wird nicht gesetzt (Noob-Alarm!)
 
hi Enzo,

thx für die schnelle Antwort.


wenn es an der Bedingung liegen würde, würde doch auch
Delphi-Quellcode:
Edit1.Text := Edit2.Text;
nicht ausgeführt - diese Änderung unterliegt ja den gleichen Bedingungen (steht im gleichen if-Block).

diese (Kontroll)Anweisung wird aber umgesetzt (Edit1 nimmt den Wert von Edit2 an).
um das zu checken hab ich sie ja rein geschrieben. ^^

oder hab ich etwas an Deiner Antwort falsch verstanden? bitte Geduld mit dem noob. ;)

Gruß vom Jens

enzo 28. Feb 2006 05:53

Re: .Caption wird nicht gesetzt (Noob-Alarm!)
 
Hallo Jens

Lass dein Programm wie es ist , ich habe es vorhin falsch verstanden.

Das Problem ist einfach:

so sieht es bei dir aus:

if (warn1 = '') then begin
if (warn2 = '') then begin
Edit1.Text := Edit2.Text; //.!1.test.ok
Label4.Font.Color := clWindowText;
Label4.Font.Style := [];
Label4.Caption := 'Warnungen: keine'; //.!1
// Form1.Label4.Caption := 'Warnungen: keine'; //.!1.test.nok
end
end
else
Label4.Font.Color := clRed;
Label4.Font.Style := [fsBold];
Label4.Caption := warn1 + warn2;

end;





if (warn1 = '') then begin
if (warn2 = '') then begin
Edit1.Text := Edit2.Text; //.!1.test.ok
Label4.Font.Color := clWindowText;
Label4.Font.Style := [];
Label4.Caption := 'Warnungen: keine'; //.!1
// Form1.Label4.Caption := 'Warnungen: keine'; //.!1.test.nok
end
end
else
BEGIN
Label4.Font.Color := clRed;
Label4.Font.Style := [fsBold];
Label4.Caption := warn1 + warn2;
END;
end;



Schreibe nach else begin und am ende end;



gruss enzo

JeSchwa 28. Feb 2006 05:58

Re: .Caption wird nicht gesetzt (Noob-Alarm!)
 
hihi Enzo - wie so oft: kleine Ursache -> große Wirkung.

(dabei hatte ich schon gelesen, dass mehrere Anweisungen von begin/end eingeschlossen werden müssen *selfslap*)

THX nu klappt's

das Jens


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz