![]() |
Problem:Checkbox & Radiobutton
Hallo,
ich habe in meinem Programm u.a. eine Statusleiste, in der das Datum angezeigt wird. Über einen "Eigenschaften"-Dialog kann das Datum ein/ausgeschaltet werden. Nun habe ich zwei Radiobutton: 1) Tag / Monat / Jahr 2) Monat / Tag / Jahr und eine Checkbox 1) Datum anzeigen Die Checkbox hat folgenden Code:
Delphi-Quellcode:
So. Wenn ich bei der Checkbox das Häckchen entferne, verschwindet das Datum. Setzte ich das Häckchen, taucht es wieder auf. Nun mein Problem. Lasse ich das Datum verschwinden und setzte den Radiobutton auf das jeweils andere, taucht das Datum wieder auf, ohne dass das Häckchen gesetzt wurde.
procedure TForm5.CheckBox1Click(Sender: TObject);
begin if checkbox1.checked = false then begin Form3.Statusbar1.Panels[4].Text:=''; end else begin Form3.Statusbar1.Panels[4].Text:='Datum: '+FormatDateTime('dd.mm.yyyy', Now); end end; Was nun? mfG Störtebeker |
Re: Problem:Checkbox & Radiobutton
Wo ist die Abfrage von den Radiobuttons? Die sind in deinem geposteten Quelltext garnicht enthalten ...
Achja, dein Quelltext geht auch einfacher zu schreiben und vor allem übersichtlicher ;)
Delphi-Quellcode:
procedure TForm5.CheckBox1Click(Sender: TObject);
begin if not CheckBox1.Checked then Form3.Statusbar1.Panels[4].Text:= '' else Form3.Statusbar1.Panels[4].Text:= 'Datum: '+FormatDateTime('dd.mm.yyyy', Now); end; |
Re: Problem:Checkbox & Radiobutton
Ich denke mal so:
Delphi-Quellcode:
Allerdings wäre der Code für den Klick auf den entsprechenden RadioButton noch interessant.
procedure TForm5.CheckBox1Click(Sender: TObject);
const DatumsFormat: array[Boolean] of string = ('dd.mm.yyyy','mm.dd.yyyy'); begin if not checkbox1.checked then Form3.Statusbar1.Panels[4].Text:='' else Form3.Statusbar1.Panels[4].Text:='Datum: '+FormatDateTime(DatumsFormat[RadioButton2.Checked], Now); end; [edit] Naja, immerhin ist mein Code etwas anders ;) [/edit] |
Re: Problem:Checkbox & Radiobutton
Sry. Codes für die Radiobutton reiche ich hiermit nach:
1)Tag / Monat / Jahr
Delphi-Quellcode:
procedure TForm5.RadioButton1Click(Sender: TObject);
begin Form3.Statusbar1.Panels[4].Text:='Datum: '+FormatDateTime('dd.mm.yyyy', Now); end; 2)Monat / Tag / Jahr
Delphi-Quellcode:
procedure TForm5.RadioButton1Click(Sender: TObject);
begin Form3.Statusbar1.Panels[4].Text:='Datum: '+FormatDateTime('mm.dd.yyyy', Now); end; |
Re: Problem:Checkbox & Radiobutton
Wenn Du meinen Code nimmst, kannst Du beide Methoden auskommentieren (sollte dann funktionieren, ungetestet).
|
Re: Problem:Checkbox & Radiobutton
Danke. Es funzt.
mfG Störtebeker |
Re: Problem:Checkbox & Radiobutton
Um mal noch deinen Fehler zu dokumentieren. Du hast zwar bei der Checkbox eine Abfrage, ob angezeigt werden soll oder nicht, aber bei der Radiogroup wird ungeachtet der Checkbox das jeweilige Datumsvormat angezeigt.
Überweise doch einfach den ItemIndex an die Procedur bzw. mach eine Funktion draus.
Delphi-Quellcode:
Aufrufen kannst du das dann mit:
function setPanelDate(index: integer):string;
const DateForm: array[boolean] of string = ('dd.mm.yyyy', 'mm.dd.yyyy'); begin result:= nil; result:= 'Datum: '+FormatDateTime(DateForm[index], now); end;
Delphi-Quellcode:
Beides ungetestet!
procedure TForm5.CheckBox1Click(Sender: TObject);
begin if not CheckBox1.Checked then Form3.Statusbar1.Panels[4].Text:= '' else Form3.Statusbar1.Panels[4].Text:= setPanelDate(RadioButton2.Checked); end; Angenehme Nacht noch //Edit: Hatte Radiobutton1.Checked erst stehen, was aber falsch ist, da doch hier ein Boolean zurückgeliefert wird, welcher bei false = 0 ist und bei true = 1 ... und die beiden Datenformate in der Konstante sind intern in Delphi auch mit 0 und 1 indexiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:01 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 by Thomas Breitkreuz