PDA

View Full Version : [C++] MaskEdit con BorlandC++Builder 6


fulviettino
11-02-2005, 11:14
Ciao a tutti,
avrei bisogno di qualche delucidazione sull'uso delle MaskEdit con il BorlandC++Builder, nell'help non ho trovato molto a riguardo.
Il mio problema è questo:
in una edit devo inserire solo numeri da un valore MIN ad un valore MAX. Per non fare manualmente il metodo che controlla tutti i tasti digitati ho visto che ci sono queste "TMaskEdit" che permettono l'impostazione di determinati filtri.
Nella "proprietà" EditMask nel campo Input Mask ho inserito 99;0; che dovrebbe corrispondere (non ne sono sicuro) ad una regola che permette l'inserimento di max 2 cifre da 0 a 9.
In corrispondenza dell'evento KeyDown ho scritto il seguente codice:


char *appoggio;
int righe;

if (Key == 13)
{ //a seguito della pressione del tasto enter
if (TMASKEDIT->Text.Length()==NULL)
{ //se non c'è alcun numero scrittura di 1
TMASKEDIT->Text=" ";
TMASKEDIT->Text="1";
}

//acquisizione valore inserito nella edit
appoggio = TMASKEDIT->Text.c_str();//converte il valore inserito nella MaskEdit in stringa
sscanf(appoggio, "%d",&righe);


Il problema è sulla Text.c_str() a volte (random) capita che nella variabile appoggio non venga scritto il valore che in effetti è presente nella MASKEDIT bensì \x10:mc: :mc:
C'è qualche buon'anima che sappia dirmi qualcosa?:confused:

fulviettino
11-02-2005, 11:37
...cut...


AnsiString appoggio;
int righe;

//acquisizione valore inserito nella edit
appoggio = TMASKEDIT->Text;
sscanf(appoggio.c_str(), "%d",&righe);


...cut...


Ok, se servisse a qualcuno ho risolto con un AnsiString al posto del puntatore a char...si vede che non veniva inizializzato correttamente e puntava a capocchia :sofico: