Newsgroup: it.comp.programmare.win32
Titolo: Problema con TProgressBar in Borland C++ Builder

Salve a tutti, dunque vado ad esporre il mio problema come da oggetto:
(faccio un esempio semplice che si rifà al problema reale)
ho una form (barland c++ builder) nella quale c'e' una barra di
progresso (TProgressBar)
mettiamo caso che nella form ci sia un bottone e che una volta cliccato,
esso debba chiamare una funzione
che operi sulla barra: di conseguenza vado ad attivare l'evento onlick
del bottone e metto una chimata ad una funzione:
-------------------
{
   opera_sulla_barra();
}
void opera_sulla_barra(void)
{
  ProgressBar1->Min=100;
  ProgressBar1->Max=1000;
  fai_questo( questo ); /* altre funzioni ....*/
 ProgressBar1->State=200;
 fai_altro( altro  );       /* altre funzioni ....*/
 // etc etc ......
}
------------------
Il problema è che quando vado a compilare il linker mi da un errore di
Undefined Symbol to Progressbar1
nel file include della form cmq ho controllato e ProgressBar1 è
correttamente definita:
TProgressbar *ProgressBar1;
Quale puo' essere il problema ?
Grazie.
--
+ 
g.gab...@europe.com
 ---------------+
|                               Linux  |
+---------------- the free philosophy -+

Quale puo' essere il problema ?
La proprietà che ti serve è Position, non State.
TobiX
-- 
TobiX, ovvero più virtualmente:
to...@iname.com
  -  
www.icq.com/12392232
Super fan di Gen13, Lene Marlin e altri personaggi più o meno reali.

TobiX wrote:

Ops si mio errore nel codice ho messo Position (ho sbagliato a scrivere
nel post)
cmq il problema sembra essere dovuto al fatto che se io in altre funzioni
(tipo void funzione (void) )
i componenti VCL non vengono trovati dal linker.
Quindi ex in una funzione:
void cancella_files (void)
{
   remove(file);
   ProgressBar1->Position=100;
   remove(file);
   ProgressBar2->Position=200;
    ......
}
nel momento del linking ProgressBar1 non viene trovata dal linker
(Undefined reference..)
questo vale per qualsiasi altro tipo di operazione sui componenti come ad
esempio:
Edit1->Caption="SE MESSO IN UNA FUNZIONE IL COMPONENTE NON VIENE LINKATO";
etc etc...
Grazie


 }
Il fatto è che ProgressBar1 [che è un oggetto --> un puntatore (se funziona
tutto come in Delphi) ] è membro di TForm1...
Per cui hai due soluzioni:
- accedi a ProgressBar1 tramite Form1->ProgressBar1->Position=100;
- fai diventare la tua funzione un metodo di TForm1 [dichiarandola fra le
private direi, visto il caso]
Non sono molto esperto di C++, io programmo sostanzialmente in Delphi, spero
di non aver scritto cose sbagliate...
Ciao :-)
--
(¯`·.¸¸.·´¯`·.¸¸.-> Andrea <-.¸¸.·´¯`·.¸¸.·´¯)
AntiSpam: rimuovere il trattino basso dall'indirizzo per rispondere
AntiSpam: remove the underscore from the e-mail address to reply

di non aver scritto cose sbagliate...
No, giustissimo!
Mi era talmente saltato all'occhio che usava State anziché Position
che non mi ero accorto che la funzione non apparteneva a Form1!
TobiX
-- 
TobiX, ovvero piů virtualmente:
to...@iname.com
  -  
www.icq.com/12392232
Super fan di Gen13, Lene Marlin e altri personaggi piů o meno reali.


Esatto avete centrato il problema, anche io avevo un tale presentimento,
visto che i componenti funzionano solo se sono in funzione dichiarate cosi :
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm (Owner)
{
}
e non :
void miafunzione (void)
{
