AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Leerzeichen in Enter(Zeilenumbruch) umwandeln
Thema durchsuchen
Ansicht
Themen-Optionen

Leerzeichen in Enter(Zeilenumbruch) umwandeln

Ein Thema von NDR · begonnen am 21. Mai 2009 · letzter Beitrag vom 22. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von NDR
NDR

Registriert seit: 18. Apr 2007
28 Beiträge
 
Delphi 7 Enterprise
 
#1

Leerzeichen in Enter(Zeilenumbruch) umwandeln

  Alt 21. Mai 2009, 16:55
Hallo,
Ich suche in Delphi 7 eine Möglickeit Leerzeichen in Enter/einen Zeilenumbruch umzuwandeln.
Zur Problematik:
Ich habe ein Memofeld in dem Zahlen eingegeben werde sollen, sodass ich eine Liste von Zahlen bekomme, mit den ich denn nach dem Umwandeln Rechnen etc. machen kann.
Der Benutzer kann ja nun aber auf die Idee kommen und zwei Zahlen in eine Zeile zu schreiben... das würde denn ja eine Fehlermeldung ala " '123 321' ist kein gültiger Integerwert" hervorrufen. Zu dem Zweck möchte ich das wenn ein Leerzeichen oder sonstige nicht erlaubten Zeichen im String drin stehen die das konvertieren in einen Integerwert verhindern geblockt bzw umgewandelt werden.

Beispiel
aus
'-123 321'
wird
'-123'
'321'

oder aus
'1234-567'
wird
'1234'
'-567'

Gibtes da eine Möglichkeit das schon bei der Eingabe zu korrigieren oder muss ich da erst ne Procedure drüber laufen lassen die mir die fehlerhaften Eingaben berichtigt?

mfg NDR
  Mit Zitat antworten Zitat
21. Mai 2009, 17:02
Dieses Thema wurde von "fkerber" von "Open-Source" nach "Sonstige Fragen zu Delphi" verschoben.
Da es sich um eine Frage handelt, verschiebe ich das mal.
easywk

Registriert seit: 9. Jul 2003
Ort: Schwanewede
117 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Leerzeichen in Enter(Zeilenumbruch) umwandeln

  Alt 21. Mai 2009, 17:24
Hallo,

klar, du kannst in der Routine OnKeyPress die Tasten abfangen. Ich habe das zwar noch nicht in einem Memofeld gemacht, aber in TEdit mache ich das ständig:

Delphi-Quellcode:
const
  CZahlenGroup = ['-','1','2','3','4','5','6','7','8','9','0',#8];

procedure TForm1.SimulateEnterZahlen(Sender: TObject;var Key: Char);
begin
  if not (Key in CZahlenGroup) then
    Key:=#0;
end;
Mein Fall löscht die Taste einfach, du kannst aber natürlich dann auch den Key auf Enter setzen ...

cu
easy
Björn
if all else fails - read the instructions
  Mit Zitat antworten Zitat
Benutzerbild von NDR
NDR

Registriert seit: 18. Apr 2007
28 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Leerzeichen in Enter(Zeilenumbruch) umwandeln

  Alt 21. Mai 2009, 17:44
So hab jetzt diese Procedure mit reingeschrieben und beim Memofeld mit dem Ereignis OnKeyPress verknüpft.... das Problem ist jetzt nur das ich zwar nur noch Zahlen und '-' eingeben kann, jedoch mein "Enter" um auf die nächste Zeile zu kommen auch geblockt wird


Noch ne weitere Frage die mir grad so aufkommt.... wie kann ich die anzahl der Zeilen im Memofeld beschränken?

schonmal thx

NDR
  Mit Zitat antworten Zitat
DenSchub

Registriert seit: 4. Jun 2006
Ort: Balingen
209 Beiträge
 
#5

Re: Leerzeichen in Enter(Zeilenumbruch) umwandeln

  Alt 21. Mai 2009, 17:51
Ersetz mal das #8 durch #13 denn das steht imho für Enter.

Grüße,
Dennis Schubert
Ground Zero is nichts gegen mein Schreibtisch.
  Mit Zitat antworten Zitat
Benutzerbild von NDR
NDR

Registriert seit: 18. Apr 2007
28 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Leerzeichen in Enter(Zeilenumbruch) umwandeln

  Alt 21. Mai 2009, 17:54
Supi das mit der #13 funzt^^
Bleibt nur noch diese kleine Frage hier:
Zitat von NDR:
Noch ne weitere Frage die mir grad so aufkommt.... wie kann ich die anzahl der Zeilen im Memofeld beschränken?
^^
NDR
  Mit Zitat antworten Zitat
DenSchub

Registriert seit: 4. Jun 2006
Ort: Balingen
209 Beiträge
 
#7

Re: Leerzeichen in Enter(Zeilenumbruch) umwandeln

  Alt 21. Mai 2009, 17:57
Das setzt z.B. die Maximal-Anzahl der Zeilen auf 3:
Delphi-Quellcode:
if (Key = #13) AND (Memo.Lines.Count >= 3) then
  Key := #0;
Grüße

[edit]Das kommt natürlich auch in das OnKeyPress rein![/edit]
Dennis Schubert
Ground Zero is nichts gegen mein Schreibtisch.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#8

Re: Leerzeichen in Enter(Zeilenumbruch) umwandeln

  Alt 21. Mai 2009, 17:57
Zitat von NDR:
jedoch mein "Enter" um auf die nächste zeile zu kommen auch geblockt wird
Probiere es mal so:
Delphi-Quellcode:
const
  CZahlenGroup = ['-','1','2','3','4','5','6','7','8','9','0',#8,#13,#10];
MfG,
BUG

EDIT: Roter Kasten ... was ist das?

Wenn er die Rücktaste benutzen möchte, sollte er das #8 drinlassen.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Leerzeichen in Enter(Zeilenumbruch) umwandeln

  Alt 21. Mai 2009, 18:00
Eigentlich ja nur eine Frage pro Thread. Wäre die Antwort trivial, hätte ich auch nichts gesagt, aber ein gutes begrenzen der Zeilenzahl ist imho relativ kompliziert.

Trivial:
Wenn Memo1.Lines.Count größer gewünschtem Wert, das #13 wieder in #0 wandeln. Verhalten ist dann nicht ganz elegant, wenn man alte Zeilen oben dran editieren will

€: Ok, einer war schneller
  Mit Zitat antworten Zitat
DenSchub

Registriert seit: 4. Jun 2006
Ort: Balingen
209 Beiträge
 
#10

Re: Leerzeichen in Enter(Zeilenumbruch) umwandeln

  Alt 21. Mai 2009, 18:01
Stimmt, #8 ist ja die Rücktaste

Satty: Nö, denn das blockt ja dann nur das Enter, und wenn man oben was editieren will benutzt man ja kein Enter..
Dennis Schubert
Ground Zero is nichts gegen mein Schreibtisch.
  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:44 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