Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Leerstellen konvertieren (https://www.delphipraxis.net/5995-leerstellen-konvertieren.html)

Privateer3000 25. Jun 2003 19:05


Leerstellen konvertieren
 
Hi Leutz,
ich möchte das man in einem Edit feld keine Leerstellen haben darf.
Da diese zur Berechnung dienen kommt es natürlich zu Fehlern wenn dies der Fall ist.
mit der Delphihilfe habe ich folgendes gebaut:
Delphi-Quellcode:
var
  aLabel: TLabel;
  eEdit: TEdit;
  fEdit: String;
  zwsum,aEdit,bEdit: Integer;
  puff,ssumgm200,ssumgm100,ssumgm50,ssumgm20,ssumgm10,ssumgm5,gmges: Real;
begin
  if Sender <> nil then
  if Sender is TEdit then
  begin
  eEdit:=FindComponent('anzgm'+Copy(TLabel(Sender).Name,6,3))as TEdit;
  while Pos(' ', fEdit) > 0 do
    fEdit[Pos(' ', fEdit)] := '0';
.......(dann weiter im Source)
trotzdem erkennt das Prog dann keine Leerstellen und es gibt ein Exeption.

Was ist oben falsch??Kann jemand helfen??

Christian Seehase 25. Jun 2003 19:08

Moin Privateer,

warum unterdrückst Du die Blanks nicht gleich bei der Eingabe?

Ansonsten: Schau Dir mal StringReplace an.

Daniel B 25. Jun 2003 19:09

Hallo,

warum lässt Du es überhaupt zu das Leerstellen eingegeben werden können? VErhindere das doch. Wär doch besser. So sparst Du dir noch etwas Code beim rechnen, musst ncihts mehr abtesten.

Grüsse, Daniel :hi:

Lillebrohr 25. Jun 2003 19:10

Hallo Privateer,

Dann füge doch in die OnMouseDown Prozedur deines Berechungsbuttons (wenn einer vorhanden ist) folgendes ein:
Delphi-Quellcode:
For i:=1 to length(edit1.text) do
    begin
    zeichen := edit1.text[i];
    If zeichen <> ' ' then
        begin
        zeichenkette := zeichenkette + zeichen;
        end;
    end;
In Zeichenkette steht dann halt alles ohne Leerzeichen. Ist vielleicht ein bißschen umständlich aber es funktioniert.

Tschau

Hansa 25. Jun 2003 19:15

Ds da war doch gestern schon mal ähnlich da, oder ?

Code:
if pos (DecimalSeparator,text) <> 0 then begin // Komma überhaupt da ?? 
then
        key := #0; // zweites Komma unterdrücken
Bau das doch so um, daß das Leerzeichen einfach von Anfang an unterdrückt wird.

Privateer3000 25. Jun 2003 19:26

Zitat:

Zitat von Christian Seehase
Moin Privateer,

warum unterdrückst Du die Blanks nicht gleich bei der Eingabe?

Ansonsten: Schau Dir mal StringReplace an.

Bitte mal eine Beispielzeile,komme mit den Parametern nicht zurecht.
Wo muss diese Funktion positioniert werden?

Hansa 25. Jun 2003 19:33

Christian Seehase hat doch gar keinen Quelltext gezeigt, meinst Du etwa meinen ?? Schreibe das ins OnKeyPress - Event im OI. DecimalSeperator muß halt durch ' ' ersetzt werden.

Privateer3000 25. Jun 2003 19:57

Habe folgendes in OnChange Ereignis geschrieben:
Delphi-Quellcode:
eEdit.Text:=StringReplace(eEdit.Text,' ','0',[rfReplaceAll]);
Das Löschen aller Zeichen ist trotzdem möglioch führt, natürlich, zur Fehlermeldung :cry:

Daniel B 25. Jun 2003 20:02

Hallo,

warum magst Du sowas nicht?
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #32 then
    Key := #0;
end;
Grüsse, Daniel :hi:

Hansa 25. Jun 2003 20:06

und wenn Du das blank automatisch in eine 0 umwandeln willst:

Code:
 
if Key = #32 then
  Key := #48;


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.
Seite 1 von 2  1 2      

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