Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Möchte meinen Script verkürzen bzw. function erstellen (https://www.delphipraxis.net/176158-moechte-meinen-script-verkuerzen-bzw-function-erstellen.html)

Furtbichler 16. Aug 2013 06:48

AW: Möchte meinen Script verkürzen bzw. function erstellen
 
Zitat:

Zitat von DeddyH (Beitrag 1225062)
...(der Code ist allerdings ungetestet).

Hättste mal ;-).
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;

DeddyH 16. Aug 2013 09:01

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;

user0815 16. Aug 2013 10:14

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;

DeddyH 16. Aug 2013 10:25

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.
Seite 2 von 2     12   

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