Newsgroup: it.comp.lang.delphi
Titolo: Componenete non riconosciuta

Salve a tutti, ho il seguente problema ho un applicazione costituita da
3 form, il mio problema è questo perchè non sempre le variabili di un
form vengono viste negli altri form?
Vi faccio un esempio se nelle variabili globali della unit dichiaro un
oggetto per esempio:
VideoWindow: TVideoWindow;
poi vado nell'altro form se faccio unit2. mi apre il menu e tra le
variabili c'è VideoWindow, mentre se deve essere richiamato come
parametro di una funzione non viene riconosciuto?
Qualcuno sa dirmi qualcosa?
Grazie
Cekko

Normalmente postare un pochino di codice aiuta a capire ed
eventualmente a spiegare.
Cosa intendi per "se deve essere richiamato come
parametro di una funzione non viene riconosciuto" ?
Come e' dichiarata la tua funzione?
Che units includi?
Come la chiami?
ciao
S

Ok effettivamente hai ragione allora ti spiego l'arcano mistero, sto
cercando di creare un applicazione che sia in grado di catturare video
e audio.
Per tale scopo sto usando la DSPack, non so poi per quale motivo (come
puoi verificare dai vari post sparsi sull'argomento) se io riscrivo una
stessa demo non mi funziona mentre se ne carico una sua si,ma questo nn
è il problema perchè a questo punto ho deciso di modificare la demo e
lavorare su quella.
Ora riesco a catturare immagine audio e video appena avvio
l'applicazione premendo un opportuno tasto; il problema sta nel fatto
che ho creato un form apposta per il settaggio della webcam.
Cosi come loro (il cliente) vogliono appena l'applicazione parte faccio
prendere di default il primo dispositivo video e audio che trova, ma in
opzione l'utente puo scegliere il settaggio.
Nella parte di codice in cui i nuovi filtri dovrebbero essere acquisiti
nel form della web introduco le seguenti righe
 with WebCam.CaptureGraph as IcaptureGraphBuilder2 do
  begin
    // set the output filename
    SetOutputFileName(MEDIASUBTYPE_Avi, PWideChar(CapFile),
multiplexer, Writer);
    // Connect Video preview (VideoWindow)
    if FilterVideo.BaseFilter.DataLength > 0 then
      RenderStream(@PIN_CATEGORY_PREVIEW, nil, FilterVideo as
IBaseFilter,
        nil , WebCam.VideoWindow as IBaseFilter);
il problema sta qui che VideoWindow non viene riconosciuto come
variabile!!!
    // Connect Video capture streams
    if FilterAudio.FilterGraph <> nil then
      RenderStream(@PIN_CATEGORY_CAPTURE, nil, FilterAudio as
IBaseFilter,
        nil, multiplexer as IBaseFilter);
    // Connect Audio capture streams
    if FilterAudio.FilterGraph <> nil then
    begin
      RenderStream(nil, nil, FilterAudio as IBaseFilter,
        nil, multiplexer as IBaseFilter);
    end;
  end;
Se lascio semplicemente VideoWindow me lo complila ma in fase di
esecuzione mi lancia l'eccezione
EDirectShowException with message L'operazione non puo essere eseguita
poiche i due pin non sono connessi

 oggetto per esempio:
mi chiedo, xche farsi del male con le variabili globali? brrrr..
Il semplice sentire la frase mi mette i brividi addosso.
Nel ns lavoro non abbiamo necessità di ausilii per introdurre bug nelle 
applicazioni: siamo gia abbastanza bravi nel farlo da soli.
E quindi, nuovamente, mi chiedo: xche usare variabili globali?
Perchè non usare property, interfacce e tutte quelle belle cose tipiche 
della OOP?
Perchè usare un rad OOP come se fosse un interprete gwbasic?
-- 
Alberto Salvati
A NEAPOLITAN Delphi Developer who is studying c# and .net
"Dicette 'o pappece 'nfaccia 'a noce dammi 'o tiempo che pure te spertoso"