AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi TSpinEdit und Zahlen mit ner 0 aufstocken zum senden ?
Thema durchsuchen
Ansicht
Themen-Optionen

TSpinEdit und Zahlen mit ner 0 aufstocken zum senden ?

Ein Thema von Lightbeam · begonnen am 12. Nov 2008 · letzter Beitrag vom 18. Nov 2008
Antwort Antwort
Seite 2 von 2     12   
Lightbeam

Registriert seit: 12. Nov 2008
9 Beiträge
 
#11

Re: TSpinEdit und Zahlen mit ner 0 aufstocken zum senden ?

  Alt 17. Nov 2008, 14:43
Zitat von divBy0:
Versuchs mal mit StrToIntDef.

Aber eigentlich brauchst du die führende Null ja nur zum Senden über RS232 und nicht als Darstellung im SpinEdit, oder?
nur zum senden richtig @ divBy0


@ ChrisE
ich schau es mir nochmal an bzw versuch es mal wobei das würd mich glat komplett aufn kopp stellen
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#12

Re: TSpinEdit und Zahlen mit ner 0 aufstocken zum senden ?

  Alt 17. Nov 2008, 14:47
Das Problem ist, wenn du StrToInt benutzt und dann im SpinEdit keine Ganzzahl drinsteht, dann gibt halt den Fehler.

Wenn du StrToIntDef benutzt, kannst du das Abfangen.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#13

Re: TSpinEdit und Zahlen mit ner 0 aufstocken zum senden ?

  Alt 17. Nov 2008, 14:49
Hallo Lightbeam

aber ich hab dir mit dem Quelltext genau das gegeben was divBy0 gesagt hat. Nur beim Senden ist es wichtig das die "0" vorne steht und nicht im UserInterface (also Deiner SpinEdit). Genau das macht der Quelltext

Gruß, Chris

P.S.:
Der Aufruf der Methode könnte dann so aussehen:

Delphi-Quellcode:
// in der Ereignisbehandlungsroutine für das Senden
try
  SendWert := StrToInt(SpinEdit.Wert);
except
  SendWert := -1; // als Marker das was schief ging
end;
if (SendWert >= 0) and (SendWert<=255) then
begin
  UebertrageWert(SendWert);
end else
begin
  // User Informieren das das so nicht geht :-)
end;

// und alles andere was so nötig ist in dieser Methode...
@Edit: Vergessen, dass SpinEdit.Wert ja alles sein kann
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Lightbeam

Registriert seit: 12. Nov 2008
9 Beiträge
 
#14

Re: TSpinEdit und Zahlen mit ner 0 aufstocken zum senden ?

  Alt 17. Nov 2008, 15:03
Zitat von divBy0:
Das Problem ist, wenn du StrToInt benutzt und dann im SpinEdit keine Ganzzahl drinsteht, dann gibt halt den Fehler.

Wenn du StrToIntDef benutzt, kannst du das Abfangen.
ok Fehler behoben weiteres Problem ich überschreibe ja jetzt den wert mit Definiertem wert
aaaaabbbbeeeeer ich will da zB auch ne zahl eintippen was leider jetzt nicht mehr geht
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#15

Re: TSpinEdit und Zahlen mit ner 0 aufstocken zum senden ?

  Alt 17. Nov 2008, 15:06
Zitat von Lightbeam:
Zitat von divBy0:
Das Problem ist, wenn du StrToInt benutzt und dann im SpinEdit keine Ganzzahl drinsteht, dann gibt halt den Fehler.

Wenn du StrToIntDef benutzt, kannst du das Abfangen.
ok Fehler behoben weiteres Problem ich überschreibe ja jetzt den wert mit Definiertem wert
aaaaabbbbeeeeer ich will da zB auch ne zahl eintippen was leider jetzt nicht mehr geht
Versteh ich nicht.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Lightbeam

Registriert seit: 12. Nov 2008
9 Beiträge
 
#16

Re: TSpinEdit und Zahlen mit ner 0 aufstocken zum senden ?

  Alt 17. Nov 2008, 15:11
Ich hab zB ein SpinEdit wert mit Pfeiltasten bzw + - eingestellt von mir Festeingestellten wert von 0-900

nun stell ich zb 50 ein der soll halt 050 übertragen das tut er auch wenn ichs mit + - tasten einstelle

durch den def wert umgehe ich zwar den fehler nun schreit er mir aber dauerhaft ne 000 <-- mein def wert


wenn ich es mit zahlen in spinedit eintippen will das heist nicht über die + - Tasten

Delphi-Quellcode:
procedure TForm1.testChange(Sender: TObject);
begin
Test.Text:=format('%0.3d',[strToIntDef(Test.text,000)]);
end;
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#17

Re: TSpinEdit und Zahlen mit ner 0 aufstocken zum senden ?

  Alt 17. Nov 2008, 15:18
Wenn er dann "000" sendet, kann der eingegebene String nicht in eine Ganzzahl gewandelt werden.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Lightbeam

Registriert seit: 12. Nov 2008
9 Beiträge
 
#18

Re: TSpinEdit und Zahlen mit ner 0 aufstocken zum senden ?

  Alt 17. Nov 2008, 15:37
Zitat von divBy0:
Wenn er dann "000" sendet, kann der eingegebene String nicht in eine Ganzzahl gewandelt werden.
hab da so ein doofes gefühl das ich mir nen eigentor mit ner schleife gebaut hab

das 000 steht ja dazu da def wert einzutragen fals keine Gültige zahl da ist
da er aber nachm ersten zahl druck schon die zeile ausfüllt klappt das nicht oO
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#19

Re: TSpinEdit und Zahlen mit ner 0 aufstocken zum senden ?

  Alt 18. Nov 2008, 02:10
kleiner tipp am rande...nehm lieber ein Tedit und ein TUpDown, da Spinedit unter späteren Delphi-versionen nicht mehr zur verfügung seht.

ansonsten würde ich das so in etwa machen (funktioniert bei mir,solange updown1.associate nicht auf das editfeld gesetzt ist):

Delphi-Quellcode:
procedure TForm1.UpDown1Change;
begin
  edit1.text:=format('%0.3d',[updown1.position]);
end;

procedure TForm1.UpDown1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
  updown1change;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  updown1.Position:=strToIntDef(edit1.text,000)
end;

procedure TForm1.Edit1Exit(Sender: TObject);
begin
  updown1change;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key='+then
  begin
    updown1.Position:=updown1.Position+1;
    updown1change;
    key:=#0;
  end else
  if key='-then
  begin
    updown1.Position:=updown1.Position-1;
    updown1change;
    key:=#0;
  end;
end;
zusätzlich kannst du natürlich auch die Pfeiltasten noch hinzufügen (keydown).

HTH Frank
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 13:08 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