Newsgroup: it.comp.lang.c++
Titolo: C++ Builder: visibilita` e mal di testa...

Salve a tutti, draghi del C(++) :-)
Ho un problema fesso che, proprio in quanto tale, mi sta facendo
andare al manicomio X-|
Il programma (un semplice gestionale) consta di un form e di un 'data
module' mediante il quale accede a un database; il data module e`
incluso nel form principale il quale 'vede' ogni variabile dichiarata
nel data module; il problema sorge quando del codice scritto nel data
module vuole accedere a una qualsivoglia variabile dichiarata nel form
principale : (... il problema sembra di semplice soluzione, ma dopo
aver controllato che il nome della variabile fosse scritto
correttamente, dopo aver controllato che la variabile del form
principale fosse stata dichiarata "extern" e dopo altri svariati
tentativi mi ritrovo senza soluzione a un problema apparentemente
semplice...
Qualcuno mi darebbe una mano per fare in modo che il data module
'veda' le variabili dichiarate nel form principale? 

Devi includere il form principale nel DataModule.
#include "FormPrincipale.h"
--
Byez.
Stefano Tempesta
s.tem...@usa.net
http://tempesta.freeweb.org
--------------------------------
<<< Think indipendent, cos' indipendent you can't be >>>

#include "FormPrincipale.h"
e` una delle prime cose che ho fatto ma quando parte la routine che
accede ai dati del form mi si pianta tutto; windows sopravvive ma da i
numeri e devo sorbirmi un reboot [:-(
Ti ringrazio x l'interessamente, ma non avresti un'altra idea?
Vale			Francesco

Dovresti postare un po' di codice, in particolare la routine che ti da
problemi
in modo da capire dove possono sorgere difetti...
Altro non so dirti.


problemi
Innanzi tutto, grazie per la risposta :)
ora, credo sia il caso di riassumere la situazione:
il mio applicativo consta di un form principale (MainForm) e di un
datamodule (DataFarmaci); il datamodule e` incluso nel MainForm
(il codice relativo al MainForm comincia cosi`:
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop
#include "Pharmacia.h"
#include "FarmaDati.h"
//---------------------------------------------------------------------------
#pragma link "Grids"
#pragma resource "*.dfm"
TMainForm *MainForm;
[..] )
. Il mio problema e` "far vedere" la variabile MaskData->Text
(dichiarata 'extern' in MainForm) al codice del datamodule che riporto
di seguito:
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop
#include "FarmaDati.h"
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TDataFarmaci *DataFarmaci;
TMainForm *MainForm;
//---------------------------------------------------------------------------
__fastcall TDataFarmaci::TDataFarmaci(TComponent* Owner)
	: TDataModule(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TDataFarmaci::MedicineFilterRecord(TDataSet *DataSet,
	bool &Accept)
{
//  ! ! ! la riga di codice seguente utilizza MaskData->Text...
Accept = (StrToDate(MainForm->MaskData->Text) >
DataSet->FieldByName("Scadenza")->AsDateTime);
}
//---------------------------------------------------------------------------
In pratica il mio scopo e` visualizzare gli elementi di un database
(farmaci) il cui campo "Scadenza" di tipo DateTime soddisfi una certa
condizione (voglio mostrare tutti quei farmaci la cui data di scadenza
e` 'antecedente' a quella immessa in un componente MaskEdit dichiarato
nel MainForm (MaskData->Text).
Per raggiungere lo scopo utilizzo l'evento OnFilterRecord.
Ti ringrazio gia da adesso per la risposta e, comunque, per il tempo
che mi hai dedicato
Vale			Francesco

 }
 
Roberto

tutto quì (come aveva suggerito Stefano)
E' quello che pensavo anche io... prima che mi si bloccasse tutto (si
blocca il prog, l'IDE del builder e windows ne esce con le ossa rotte
)
Per questo mi sono rivolto ai lettori del newsgroup X-|
Credo che il problema sia questo: il datamodule e' "incluso" (mi
perdonerai il linguaggio improprio, ma sono praticamente agli
inizi...) nel MainForm; ora, quando vado a "includere" il MainForm
(con l'istruzione #include "Pharmacia.h") nel DataModule mi trovo in
una situazione 'confusa' per il builder...
La cosa simpatica e' che il prog viene compilato ed eseguito
correttamente finche non arriva il momento di utilizzare l'evento
OnFilterRecord...
Grazie, cmq, per la risposta :)
Vale				Francesco