![]() |
AW: Möchte meinen Script verkürzen bzw. function erstellen
Zitat:
Der Code ist leider 'Müll'. Hier sollen einfach nur Ziffern erlaubt sein, bei einem Komma gibt es eine kleine Sonderbehandlung. So geht's.
Delphi-Quellcode:
procedure DoOnKeyPress(Sender: TObject; var Key: char);
const BACKSPACE = #8; var TheEdit: TEdit; begin TheEdit := Sender as TEdit; If Key = ',' then if Pos(',', TheEdit.Text) > 0 then Key := #0 else if TheEdit.Text = '' then begin TheEdit.Text := '0,'; TheEdit.Selstart := Length(TheEdit.Text); end else if Not (Key in ['0'..'9', BACKSPACE]) then Key := #0; end; |
AW: Möchte meinen Script verkürzen bzw. function erstellen
Selber Müll, an begin und end gespart, so sind auch Buchstaben zulässig :tongue:
Delphi-Quellcode:
const
BACKSPACE = #8; var TheEdit: TEdit; begin TheEdit := Sender as TEdit; If Key = ',' then begin //<-- darf nicht fehlen if Pos(',', TheEdit.Text) > 0 then Key := #0 else if TheEdit.Text = '' then begin TheEdit.Text := '0,'; TheEdit.Selstart := Length(TheEdit.Text); end end //<-- auch nicht else if Not (Key in ['0'..'9', BACKSPACE]) then Key := #0; |
AW: Möchte meinen Script verkürzen bzw. function erstellen
@DeddyH: gib mal als erstes ein Komma ein.
Warum nicht einfach so:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
const BACKSPACE = #8; begin if not (Key in ['0'..'9', DecimalSeparator, BACKSPACE]) then Key := #0; end; procedure TForm1.Edit1Exit(Sender: TObject); begin try Edit1.Text := FormatFloat('0.00', StrToFloat(Edit1.Text)); except Edit1.Text := FormatFloat('0.00', 0);; end; end; |
AW: Möchte meinen Script verkürzen bzw. function erstellen
Wieso sollte ich, ist ja nicht mein Code (obwohl man in dem Fall auch nur den Key entwerten oder das Komma aus der Vorlage entfernen müsste)?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 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