🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by Rafal Drwiega Thu, 18 Dec 1997 18:21
Wprowadzanie liczb w polach edycji w C++ Builder
#470
Author: Rafal Drwiega
Date: Thu, 18 Dec 1997 18:21
18 lines
1612 bytes
Pomocy !!!

Może ktoś mógłby mi pomóc i wyjaśnił w jaki sposób zrobić w Builderze
wprowadzanie w polach edycji tylko liczb (całkowitych i rzeczywistych).
Próbowałem różnych rzeczy z MaskEdit ale to nie za bardzo chce wychodzić
(jeśli chcę wprowadzić mniej liczb niż założyłem to zostają puste miejsca).
Ściągnąłem też komponent do Delphi NumEdit, który teoretycznie robi to co
chcę. Jednak gdy wpisuję liczbę zmiennoprzecinkową np. 1.3 (przecinek to .
) występuje błąd konwersji (podczas uruchamiania spod kompilatora) -
"Project Praca.exe raised exception class EConvertError with message "1.3"
is not a valid floating point value. Process stopped. Use Step or Run to
continue" i pozycje po przecinku zostają usunięte. Gdy zmieniłem w pliku
źródłowym komponentu . na , to błąd ten się nie pojawia natomiast nie można
dokonywać obliczeń na takiej liczbie (np. 1,3), bo zostaje tylko pobierana
wartość przed przecinkiem.
Nie wiem co można by tu najlepiej zmienić.

Rafał Drwięga
Re: Wprowadzanie liczb w polach edycji w C++ Builder
#471
Author: Sebastian Tylko
Date: Thu, 18 Dec 1997 21:12
22 lines
1595 bytes

Rafal Drwiega wrote:

> Pomocy !!!
>
> Może ktoœ mógłby mi pomóc i wyjaœnił w jaki sposób zrobić w Builderze
> wprowadzanie w polach edycji tylko liczb (całkowitych i rzeczywistych).
> Próbowałem różnych rzeczy z MaskEdit ale to nie za bardzo chce wychodzić


      Spróbuj tak:
     a) przeczytaj pole edycyjne  jako AnsiString  (pole Text obiektu TEdit)
     b) zrób konwersje na string  (char*)  za pomocš operatora  c_str()
     c)  użyj funkcji   double  strtod(cons char * buf, char ** koniec); (
nagłówek w stdlib.h )
          Zwraca ona podanš jako string buf  liczbę ,zas w argumencie koniec
          zwraca wskazanie do do znaku na którym zakończyła analize.Jesli nie
jest to koniec
          stringu '\0' to podano błędny argument;
      Możesz  to wywoływać  'OnChange' i na bieżšco sprawdzać poprawnoœć
      wpisywanej liczby.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads