Thread View: pl.comp.lang.c
2 messages
2 total messages
Started by Rafal Drwiega
Thu, 18 Dec 1997 18:21
Wprowadzanie liczb w polach edycji w C++ Builder
Author: Rafal Drwiega
Date: Thu, 18 Dec 1997 18:21
Date: Thu, 18 Dec 1997 18:21
18 lines
1612 bytes
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
Author: Sebastian Tylko
Date: Thu, 18 Dec 1997 21:12
Date: Thu, 18 Dec 1997 21:12
22 lines
1595 bytes
1595 bytes
Rafal Drwiega wrote:
> Pomocy !!!
>
> Może kto mógłby mi pomóc i wyjanił 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