![]() |
CheckBox auswerten
Hallo zusammen
habe hier folgendes: auf einem Form sind mehrere Checkboxen die ausgewertet werden und in ein Datenbankfeld eingetragen werden. Das sieht dann so aus:
Delphi-Quellcode:
Das Problem ist hier das es einen Schönheitsfehler hat das wenn ich nur 2 Checkboxen angewählt habe
procedure Tfrm_member.insert_chairmen;
var CM, SCH, HM, MBP, H, NH, SS, PS, D: string; A_SCH, A_HM, A_AH, A_NH, A_PS, A_DOC :string; begin if G_CheckBox_church.Checked then CM := 'CM'; if G_CheckBox_school.Checked then SCH := 'SCH'; if G_CheckBox_hotel.Checked then HM := 'HM'; if G_CheckBox_hospital.Checked then H := 'H'; if G_CheckBox_mbp.Checked then MBP := 'MBP'; if G_CheckBox_nursinh.Checked then NH := 'NH'; if G_CheckBox_bibel.Checked then SS := 'SS'; if G_CheckBox_ps.Checked then PS := 'PS'; if G_CheckBox_donors.Checked then D := 'D'; if A_CheckBox_school.Checked then A_SCH := 'A_SCH'; if A_CheckBox_hotel.Checked then A_HM := 'A_HM'; if A_CheckBox_hospital.Checked then A_AH := 'A_H'; if A_CheckBox_nursinh.Checked then A_NH := 'A_NH'; if A_CheckBox_ps.Checked then A_PS := 'A_PS'; if A_CheckBox_Doctor.Checked then A_DOC := 'A_DOC'; with DM_member.Member do begin Edit; FieldByName('CHAIRMEN_G').AsString := ( CM +' '+ SCH +' '+ HM +' '+ MBP +' '+ H +' '+ NH +' '+ SS +' '+ PS +' '+ D +' '); FieldByName('CHAIRMEN_A').AsString := ( A_SCH +' '+ A_HM +' '+ A_AH +' '+ A_NH +' '+ A_PS +' '+ A_DOC +' '); end; end; z.B. G_CheckBox_church.Checked & if G_CheckBox_ps.Checked dann sieht das Ergebnis so aus. CM PS Der Abständ sollten eigentlich nur 1x verhandn sein. Wie könnte ich das lösen? Shalom Manfred |
Re: CheckBox auswerten
1. Besser
Delphi-Quellcode:
2. Mach den Abstand Teil der Strings innerhalb der Variablen:
if G_CheckBox_church then ...
Delphi-Quellcode:
CM := 'CM ';
|
Re: CheckBox auswerten
Zitat:
|
Re: CheckBox auswerten
Zitat:
|
Re: CheckBox auswerten
Hallo,
die vielen Variablen sind doch eh unnötig.
Delphi-Quellcode:
Das Leerzeichen wird nur dann angehangen,
var
sChairMen_G: String; begin sChairMen_G:= ''; // jaja, is unnötig ;) if G_CheckBox_church.Checked then begin if sChairMen_G<>'' then sChairMen_G:= sChairMen_G+' '; sChairMen_G:= sChairMen_G+'CM'; end; if G_CheckBox_school.Checked then begin if sChairMen_G<>'' then sChairMen_G:= sChairMen_G+' '; sChairMen_G:= sChairMen_G+'SCH'; end; end; wenn im String schon was drinsteht. Das if sChairMen_G='' then sChairMen_G:= sChairMen_G+' '; könnte man auhc noch über eine Extra-Methode kapseln, aber es geht hier erst mal ums Prinzip. Davon abgesehen, ist es keine gute Idee, zusammengesetzte Strings in die DB zu übergeben. Ich würde eine Detailtabelle Chairman machen, wo jeder Bereich (church, school) ein Record ist. Heiko |
Re: CheckBox auswerten
HAI manfred_h besteht dein Problem noch? :coder:
|
Re: CheckBox auswerten
Hi zusammen
Ihr seid ja super schnell mit Antworten da wir einem ja :pale: Werde es gleich ausproieren. Danke Manfred |
Re: CheckBox auswerten
Problem gelöst :thumb:
habe es jetzt so gelöst.
Delphi-Quellcode:
Ist eigentlich ganz einfach wenn man das Ergebniss dann sieht.
CM := 'CM ';
Zitat:
so gelöst. Nur bei dieser Sparte war das am Anfang nicht absehbar und im Moment lass ich es mal so. Aber Danke für Deinen Tipp Shalom Manfred |
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Lässt sich als Delphi-Problem einordnen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 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