Ok, versuchen wir es mit etwas Code.
Hier die Ereignisroutine vom Memo KeyPress
Delphi-Quellcode:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9','a'..'z','/','-', DecimalSeparator, ThousandSeparator])
then Key := #0;
end;
und hier der entsprechende teil vom FormKeyPress
Delphi-Quellcode:
While i < GrdArtikel.RowCount-1 do
Begin
Artikel := GrdArtikel.Cells[5,i];
While not datamodule2.DBSRabatt.Eof do
Begin
If Datamodule2.DBSRabatt.FieldValues['Gruppe'] = Artikel then
Begin
ClubRabatt := ClubRabatt+(StrToFloat(GrdArtikel.cells[4,i])*Datamodule2.DBSRabatt.FieldValues['Rabatt']/100);
Inc(i);
End;
Datamodule2.DBSRabatt.Next;
End;
Inc(I);
End;
Mtg_Flag := 'J';
If ClubRabatt > 0 Then
Begin;
Clubrabatt := Clubrabatt*-1;
Summe := Summe+Clubrabatt;
lb_Summe.Caption := FloatToStrF(Summe,ffNumber,8,2);
GrdArtikel.RowCount := Zeile;
GrdArtikel.Cells[0,Zeile] := '1';
GrdArtikel.Cells[1,Zeile] := 'Clubrabatt';
GrdArtikel.Cells[3,Zeile] := FloatToStrf(Clubrabatt,ffNumber,8,2);
GrdArtikel.Cells[4,Zeile] := FloatToStrf(Clubrabatt,ffNumber,8,2);
GrdArtikel.Cells[5,Zeile] := '1111';
Inc(Zeile);
End;
Memo1.Text := '';
End;
ShowMessage('Clubmitglied '+ Datamodule2.DBMitglieder.FieldByName('Vorname')
.Value+' '+Datamodule2.DBMitglieder.FieldByName('Name').Value+#13+Datamodule2.
DBMitglieder.FieldByName('Produkt').Value);
End;
das ShowMessage() wird ausgelöst.
Jetzt kommen noch einige Routinen zum Bezahlvorgang. Nach erfolgter Zahlung wartet das Prg in dieser
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
LblFirma.Caption := TimeToStr(Time);
end;
Schleife.
Erst wenn der nächste Artikel im Memo eingegeben und Enter gedrückt wird, wird die Stringgridzeile der Vorartikels ausgegeben.
Gruß
Wolle