Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi 1000000 zu 1.000.000 (https://www.delphipraxis.net/25583-1000000-zu-1-000-000-a.html)

Doctor 8. Jul 2004 23:07


1000000 zu 1.000.000
 
Hallo !!!

Ich habe folgendes kleines Problem:

Ich habe ein Edit-Feld.
In diesem Edit-Feld werden Euro-Werte ausgegeben.

Jetzt möchte ich für die bessere Darstellung folgende Ausgabe haben:
Anstatt "1000000" möchte ich in dem Edit-Feld "1.000.000" stehen haben.
Und das soll so bis in unvorstellbare möglich sein ...

Kann mir da jemand weiterhelfen ???


MfG
Doctor

Luckie 8. Jul 2004 23:09

Re: 1000000 zu 1.000.000
 
Zitat:

Zitat von Doctor
Kann mir da jemand weiterhelfen ???

Ja. Die Delphi Hilfe. ;)

-> Format.

gmarts 8. Jul 2004 23:10

Re: 1000000 zu 1.000.000
 
...oder nimm anstatt eines Edits ein MaskEdit.

Doctor 8. Jul 2004 23:13

Re: 1000000 zu 1.000.000
 
Zitat:

Zitat von gmarts
...oder nimm anstatt eines Edits ein MaskEdit.


Mask Edit ... und dann welche Eigenschaft muss ich verändern ?

DP-Maintenance 8. Jul 2004 23:14

DP-Maintenance
 
Dieses Thema wurde von "Luckie" von "Programmieren allgemein" nach "VCL-Komponenten und Controls" verschoben.
Ist ja ein Delphi-Problem. ;)

gmarts 8. Jul 2004 23:22

Re: 1000000 zu 1.000.000
 
Du musst die Taste rechts neben Escape drücken.

Luckie 8. Jul 2004 23:26

Re: 1000000 zu 1.000.000
 
Also ich habe da jetzt auf die schnelle nichts gefunden, was ihm helfen könnte.

Mal kurz was in den Editor gehauen:
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var
  dummy: double;
  s: String;
begin
  s := StringReplace(Edit1.Text, ThousandSeparator, '', [rfReplaceAll]);
  dummy := StrToFloat(s);
  Edit1.Text := Format('%.0n', [dummy]);
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  Edit1.SelStart := length(Edit1.Text);
end;
Manko: Der Cursor steht nach dem das Tausendertrennzeichen das erstemal gesetzt wurde am Anfang.

Luckie 8. Jul 2004 23:35

Re: 1000000 zu 1.000.000
 
So sieht es "richtig" aus:
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var
  dummy: double;
  s: String;
begin
  s := StringReplace(Edit1.Text, ThousandSeparator, '', [rfReplaceAll]);
  dummy := StrToFloat(s);
  Edit1.Text := Format('%.0n', [dummy]);
  SendMessage(Edit1.Handle, WM_KEYDOWN, VK_END, 0);
  SendMessage(Edit1.Handle, WM_KEYUP, VK_END, 0);
end;
Nur Kommazahlen gehen noch nicht.

NicoDE 8. Jul 2004 23:37

Re: 1000000 zu 1.000.000
 
Zitat:

Zitat von Luckie
So sieht es "richtig" aus:
Delphi-Quellcode:
  SendMessage(Edit1.Handle, WM_KEYDOWN, VK_END, 0);
  SendMessage(Edit1.Handle, WM_KEYUP, VK_END, 0);

Und wenn ich nun was in der Mitte ändern will? ...
(Hat TEdit kein SelStart/SelLength?)

Doctor 8. Jul 2004 23:39

Re: 1000000 zu 1.000.000
 
Zitat:

Zitat von Luckie
So sieht es "richtig" aus:
Nur Kommazahlen gehen noch nicht.


jo, das is das, was ich wollte :-)
thx a lot !!!

beim MaskEdit denke ich mal, das es die Eigenschaft "EditMask" wäre, jedoch komm ich damit nicht zurecht.

Luckie 8. Jul 2004 23:41

Re: 1000000 zu 1.000.000
 
Zitat:

Zitat von NicoDE
Zitat:

Zitat von Luckie
So sieht es "richtig" aus:
Delphi-Quellcode:
  SendMessage(Edit1.Handle, WM_KEYDOWN, VK_END, 0);
  SendMessage(Edit1.Handle, WM_KEYUP, VK_END, 0);

Und wenn ich nun was in der Mitte ändern will? ...

Dann wird da eben nichts in der Mitte geändert. :evil:
Zitat:

(Hat TEdit kein SelStart/SelLength?)
Ähm ja, das wäre auch eine Möglichkeit. :oops:

Doctor 8. Jul 2004 23:42

Re: 1000000 zu 1.000.000
 
nur ein Problem ...

wenn man aus dem Edit-Feld die Zahlen löscht, kommt ein fehler.
Da das Edit-Feld jedoch die Eigenschaft "ReadOnly = True" hat is das denke ich nicht weiter schlim.

Luckie 9. Jul 2004 00:03

Re: 1000000 zu 1.000.000
 
Warum nimmst du denn dann nicht ein Label, wenn man doch nichts eingeben kann?

Doctor 9. Jul 2004 00:17

Re: 1000000 zu 1.000.000
 
hmm, gute frage, aber Editt gefällt mir besser :-)

Luckie 9. Jul 2004 00:31

Re: 1000000 zu 1.000.000
 
Nur dass es den Benutzer etwas iritieren wird. Edits sind eben zur Eingabe gedacht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz