PDA

Visualizza la versione completa : [Delphi] Tedit


tia86
08-06-2002, 12:01
premetto ke ho delphi 2.0

come si fa a prendere un valore dalla tedit e trasformarlo in un numero di tipo real?
ho provato con strtoint ma funziona solo con gli interi:(
vi prego aiutatemi!!



ciao:)

tia86
08-06-2002, 14:57
UP:(

matsoftware
08-06-2002, 15:30
Originariamente inviato da tia86
premetto ke ho delphi 2.0

come si fa a prendere un valore dalla tedit e trasformarlo in un numero di tipo real?
ho provato con strtoint ma funziona solo con gli interi:(
vi prego aiutatemi!!



ciao:)

Credo esista una funzione StrToFloat o qualcosa del genere

alka
08-06-2002, 15:43
Usa la funzione FloatToStr che ti mette a disposizione la unit SysUtils. Ecco un esempio di utilizzo:


procedure TForm1.Button1Click(Sender: TObject);
var
r: Extended;
begin
try
r := StrToFloat(Edit1.Text);
except
r := 0;
end;
ShowMessage(FloatToStr(r));
end;

In questo esempio, il testo contenuto in una casella di testo Edit1 viene convertito in valore a virgola mobile e memorizzato in una variabile locale di tipo Extended. In caso di errore nella conversione (intercettato dal blocco try...except, la variabile reale viene impostata a 0. Una successiva conversione da reale a stringa è necessaria per poter mostrare il valore inserito in una casella di messaggio; la conversione viene questa volta implementata chiamando la FloatToStr.

Spero di esserti stato d'aiuto.
Ciao! :ciauz:

tia86
09-06-2002, 11:28
ora ci provo
grazie a tutti





ciao:)

Pknews
09-06-2002, 17:37
A proposito... come si fa a sapere se l'utente in un Tedit appunto inserisce un numero (int o float che sia), delle lettere + numeri, delle lettere oppure niente? thx

alka
09-06-2002, 17:47
Dal codice che ho suggerito a tia86 puoi facilmente dedurre che, nel caso in cui si verifichi l'eccezione, significa che è stato introdotto un testo non convertibile in numero, quindi contenente caratteri alfanumerici o simboli.
Penso che esista anche un'istruzione Val in grado di dirti qual è il primo carattere non valido individuato.
Per casi più complessi, consulta la Guida in linea di Delphi per scovare tutte le procedure messe a disposizione dall'ambiente per analizzare e manipolare le stringhe.

Se ti serve ulteriore aiuto, son qui.

Ciao! :ciauz:

tia86
09-06-2002, 20:35
ok funziona
però utilizza la virgola e nn il punto
non c'è un modo x utilizzare il punto al posto della virgola?


ciao:)

tia86
09-06-2002, 20:40
ho notato anke ke a volte mi da dei risultati abominevoli:eek:
esiste un modo (tipo in pascal col "variabile:0:4") x impostare un determinato numero di cifre dopo la virgola?

alka
09-06-2002, 20:50
Puoi forzare l'uso della virgola (o in generale, del separatore decimale) in questo modo:


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key = '.') or (Key = ',') then
Key := DecimalSeparator;
end;

Questo evento gestisce la pressione del tasto del controllo Edit e provvede a sostituire eventuali punti e virgole con il separatore decimale valido (rappresentato dalla variabile globale DecimalSeparator). Dovrebbe quindi adattarsi ad ogni occasione.
Per la formattazione del valore in virgola mobile, consulta la Guida in linea di Delphi per l'uso della funzione FormatFloat.

Ciao! :ciauz:

Loading