prazdny prvok Edit

Programovacie jazyky, rady, poradňa...
jon
Amateur
Amateur
Príspevky: 28
Registrovaný: 17 okt 2009, 13:43

prazdny prvok Edit

Príspevok od používateľa jon »

ahojte
chcel by som sa Vas tu spitat ako to mam spravit, aby mi bralo prvok Edit ak tam nieje nic zadane ako nulu

priklad:

Kód: Vybrať všetko

double m2,hr,sr,dl,pt,cmat,kg,kgs,ton;

m2=StrToFloat(Meter2->Text);          // meter štvorcovy - 7,85kg

hr=StrToFloat(Hrubkaplechu->Text);    // hrubka plechu
sr=StrToFloat(Sirka->Text);           // šírka
dl=StrToFloat(Dlzka->Text);           // dľžka
pt=StrToFloat(Pocet->Text);            // počet tabúl
cmat=StrToFloat(Cenamat->Text);       // cena materiálu eur za kg

kg=hr*m2*sr/1000*dl/1000;             //  vypočíta hmotnosť zadaného rozmeru

Hmotnost1->Text=FloatToStrF(kg,ffNumber,12,2);        // vypíše hmotnosť tabuly
Hmotnost2->Text=FloatToStrF(kg*pt,ffNumber,12,1);     // vypíše celkovú hmotnosť
Hmotnost3->Text=FloatToStrF(kg*pt/1000,ffNumber,12,3);  // vypíše hmotnosť v tonách

Cenamatspolu->Text=FloatToStrF(cmat*(kg*pt),ffNumber,12,2);
kym je v Edit-och nejake cislo pripadne nula vsetko je ok , ale ak je Edit prazdny vyhodi chybove okno ...
ja by som chcel aby to aj pri prazdnom Edit-e bralo ako hodnotu nula.
co s tym ?
dik za odpoved
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: prazdny prvok Edit

Príspevok od používateľa BX »

Netuším, v čom je to písané, ale daj tam proste niečo ako

Kód: Vybrať všetko

if ( moj_edit.Text == "" ) hodnota_edit = 0;
// Audio: Len som zbehol kód očami, dal som ilustračný príklad (Takisto ak by to malo byť správne, trebalo by vedieť, či je operátor== naozaj preťažený pre reťazce a podobné hlúpe detaily. Je to fuk)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: prazdny prvok Edit

Príspevok od používateľa audiotrack »

BX napísal:Netuším, v čom je to písané, ale daj tam proste niečo ako

Kód: Vybrať všetko

if ( moj_edit.Text == "" ) hodnota_edit = 0;
keď už tak

Kód: Vybrať všetko

if ( moj_edit->Text == "" ) hodnota_edit = 0;
jon
Amateur
Amateur
Príspevky: 28
Registrovaný: 17 okt 2009, 13:43

Re: prazdny prvok Edit

Príspevok od používateľa jon »

takze ak som to spravne pochopil malo by to byt takto :

Kód: Vybrať všetko

void __fastcall TForm1::Button2Click(TObject *Sender)
{
double m2,hr,sr,dl,pt,cmat,kg,kgs,ton;

m2=StrToFloat(Meter2->Text);          // meter štvorcovy - 7,85kg

hr=StrToFloat(Hrubkaplechu->Text);    // hrubka plechu
sr=StrToFloat(Sirka->Text);           // šírka
dl=StrToFloat(Dlzka->Text);           // dľžka
pt=StrToFloat(Pocet->Text);            // počet tabúl
cmat=StrToFloat(Cenamat->Text);       // cena materiálu eur za kg

if (Hrubkaplechu->Text=="") hr=0;
if (Sirka->Text=="") sr=0;
if (Dlzka->Text=="") dl=0;
if (Pocet->Text=="") pt=0;
if (Cenamat->Text=="") cmat=0;

kg=hr*m2*sr/1000*dl/1000;             //  vypočíta hmotnosť zadaného rozmeru

Hmotnost1->Text=FloatToStrF(kg,ffNumber,12,2);        // vypíše hmotnosť tabuly
Hmotnost2->Text=FloatToStrF(kg*pt,ffNumber,12,1);     // vypíše celkovú hmotnosť
Hmotnost3->Text=FloatToStrF(kg*pt/1000,ffNumber,12,3);  // vypíše hmotnosť v tonách

Cenamatspolu->Text=FloatToStrF(cmat*(kg*pt),ffNumber,12,2);
nu ale stale mi to nejak nejde ked je pole(edit) prazdne
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: prazdny prvok Edit

Príspevok od používateľa BX »

Chybu vyvoláva pravdepodobne funkcia StrToFloat. Neviem, či si nevie poradiť s prázdnym stringom, alebo sa zrúti aj keď by som jej dal reťazec "abc", každopádne je veľmi divná a ja by som si ju napísal radšej sám a mal by som po problémoch. (Alebo žeby hádzala výnimku?)
Každopádne asi nejako takto by to mohlo fungovať:

Kód: Vybrať všetko

if (Hrubkaplechu->Text=="") hr=0;
else hr=StrToFloat(Hrubkaplechu->Text);    // hrubka plechu
(atď. pre všetky)
jon
Amateur
Amateur
Príspevky: 28
Registrovaný: 17 okt 2009, 13:43

Re: prazdny prvok Edit

Príspevok od používateľa jon »

toto ma nenapadlo ... ok funguje ... dikes
Napísať odpoveď