Einzelnen Beitrag anzeigen

Wolli-Essen

Registriert seit: 5. Feb 2010
9 Beiträge
 
#5

AW: Stringgrid zeichnet zum falschen Zeitpunkt

  Alt 24. Feb 2012, 15:48
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
  Mit Zitat antworten Zitat