Hallo Leute!
ich mache da irgendwo irgendwie einen mehr als dämlichen Fehler, finde ihn aber nicht...
Ich setze nach einer Combobox-Bedienung in einem anderen Edit einen Preis ein. Dies geschieht hier:
Delphi-Quellcode:
procedure TForm1.cmb_geb_nr1Change(Sender: TObject);
begin
if cmb_geb_nr1.Text='1' then ed_geb_nr1.Text:='4,40';
if cmb_geb_nr1.Text='1200' then ed_geb_nr1.Text:='3,60';
if cmb_geb_nr1.Text='1216' then ed_geb_nr1.Text:='5,55';
if cmb_geb_nr1.Text='1229' then ed_geb_nr1.Text:='11,11';
if cmb_geb_nr1.Text='Dokumentation' then ed_geb_nr1.Text:='6,15';
if cmb_geb_nr1.Text='' then ed_geb_nr1.Text:='';
//ShowMessage('nach dem zuweisen');
end;
In dem Edit löse ich im OnChange-Ereignis eine Berechnung aus. Natürlich ist das doof, dass ich dafür immer alles noch von string nach integer konvertieren muss, aber ich weiss nichts besseres. Jedenfalls hier die Routine, die dann den EditInhalt und den von 10 weiteren nimmt und alles zusammenrechnen soll. Hier schmiert aber die Routine ab. Die Messagebox bekomme ich noch und dann die Meldung, dass 4,40 kein Integerwert ist.
Delphi-Quellcode:
procedure TForm1.ed_geb_nr1Change(Sender: TObject);
var
a,b,c,d,e,f,g,h,i,j:integer;
begin
ShowMessage('vorm rechnen');
if ed_geb_nr1.text >'' then a:=StrToInt(ed_geb_nr1.text) else a:=0;
if ed_geb_nr2.text >'' then b:=strtoint(ed_geb_nr2.text) else b:=0;
if ed_geb_nr3.text >'' then c:=strtoint(ed_geb_nr3.text) else c:=0;
if ed_geb_nr4.text >'' then d:=strtoint(ed_geb_nr4.text) else d:=0;
if ed_geb_nr5.text >'' then e:=strtoint(ed_geb_nr5.text) else e:=0;
if ed_geb_nr6.text >'' then f:=strtoint(ed_geb_nr6.text) else f:=0;
if ed_geb_nr7.text >'' then g:=strtoint(ed_geb_nr7.text) else g:=0;
if ed_geb_nr8.text >'' then h:=strtoint(ed_geb_nr8.text) else h:=0;
if ed_geb_nr9.text >'' then i:=strtoint(ed_geb_nr9.text) else i:=0;
if ed_geb_nr10.text >'' then j:=strtoint(ed_geb_nr10.text) else j:=0;
ed_ges1.Text:=inttostr(a+b+c+d+e+f+g+h+i+j);
end;
Wer weiss Rat oder hat eine bessere Idee???