Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: carmelo81 - Ottobre 23, 2013, 07:30:02 pm

Titolo: Valore nullo Stringgrid
Inserito da: carmelo81 - Ottobre 23, 2013, 07:30:02 pm
buonasera,
sapreste indicarmi come evitare l'errore "not is a valid float value" che appare se una cella è vuota e nel frattempo vorrei fare una operazione con altre celle in cui però i valori sono inseriti?
Grazie mille
carmelo
Titolo: Re:Valore nullo Stringgrid
Inserito da: nomorelogic - Ottobre 23, 2013, 07:45:20 pm
dicci un po' di più, è una griglia collegata ad una tabella (e quindi il problema è in un campo calcolato) o che altro?

di solito basta mettere una "if" che controlla il contenuto del campo come stringa oppure puoi mettere tutto in un costrutto try..except

es:
Codice: [Seleziona]
if s <> '' then
   f := StrToFloat(s)
else
   f := 0;

oppure
Codice: [Seleziona]
try
  f := StrToFloat(s);
except
  f := 0;
end;
Titolo: Re:Valore nullo Stringgrid
Inserito da: carmelo81 - Ottobre 23, 2013, 10:02:46 pm
hai ragione, sono stato superficiale...!
In pratica disegno una figura piana tramite coordinate x,y che immetto nella griglia.
La griglia però, non ha infinite celle, ma tramite un edit si inserisce il numero di righe necessarie, pari al numero di vertici della figura.
Una volta caricate le righe sufficienti, le celle sono vuote, quindi se volessi disegnare questa figura prima di inserire i valori delle coordinate nelle rispettive celle, esce fuori l'errore che dicevo prima.
Potrei ovviare inserendo automaticamente il valore iniziale 0 in ogni cella, ma non mi piace l'idea e quindi vi chiedevo un altra soluzione per questo fastidioso problemino...
Titolo: Re:Valore nullo Stringgrid
Inserito da: bonmario - Ottobre 24, 2013, 08:01:55 am
Puoi usare la funzione TryStrToInt per convertire la cella in numero.

Ciao, Mario
Titolo: Re:Valore nullo Stringgrid
Inserito da: nomorelogic - Ottobre 24, 2013, 04:24:16 pm
o anche la TryStrToFloat  ;)
Titolo: Re:Valore nullo Stringgrid
Inserito da: bonmario - Ottobre 24, 2013, 08:41:25 pm
Esatto ... mi perdo sempre nei dettagli !!!!

Ciao, Mario