AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Leerstellen konvertieren

Ein Thema von Privateer3000 · begonnen am 25. Jun 2003 · letzter Beitrag vom 26. Jun 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

Leerstellen konvertieren

  Alt 25. Jun 2003, 20:05
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??
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 25. Jun 2003, 20:08
Moin Privateer,

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

Ansonsten: Schau Dir mal StringReplace an.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#3
  Alt 25. Jun 2003, 20: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
  Mit Zitat antworten Zitat
Lillebrohr
(Gast)

n/a Beiträge
 
#4
  Alt 25. Jun 2003, 20: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
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5
  Alt 25. Jun 2003, 20: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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#6
  Alt 25. Jun 2003, 20:26
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?
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7
  Alt 25. Jun 2003, 20: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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#8
  Alt 25. Jun 2003, 20:57
Habe folgendes in OnChange Ereignis geschrieben:
eEdit.Text:=StringReplace(eEdit.Text,' ','0',[rfReplaceAll]); Das Löschen aller Zeichen ist trotzdem möglioch führt, natürlich, zur Fehlermeldung
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#9
  Alt 25. Jun 2003, 21: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
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10
  Alt 25. Jun 2003, 21:06
und wenn Du das blank automatisch in eine 0 umwandeln willst:

Code:
 
if Key = #32 then
  Key := #48;
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:58 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