Newsgroup: it.comp.lang.delphi
Titolo: 'Create' differs from previous declaration

Dichiaro come segue:
 
TFrameVincoli = class(TFrame)
  ............................
public
  constructor Create(AOwner: TComponent; path: string); override;
   .......................
 
constructor TFrameVincoli.Create(AOwner: TComponent; path: string);
begin
   inherited;
   ...............
end;
 
Ricevo il seguente messaggio di errore in compilazione:
 
FrameVincoliU.pas(108): E2037 Declaration of 'Create' differs from previous 
declaration
 
Perch�? 
 
 
---
Questa e-mail � priva di virus e malware perch� � attiva la protezione avast! Antivirus.
http://www.avast.com
 
 

 declaration
 
Se metti "override" si suppone che stai definendo un metodo
virtuale presente nella classe da cui erediti. E devi mentenere
la stessa interfaccia. Prova a togliere override.
 
ciao
Giacomo
 
 

"Giacomo Degli Esposti"  ha scritto nel messaggio 
news:59c0a8ea-4430-490c...@googlegroups.com...
Se metti "override" si suppone che stai definendo un metodo
virtuale presente nella classe da cui erediti. E devi mentenere
la stessa interfaccia. Prova a togliere override.
ciao
Giacomo
 
Avevi proprio ragione! Grazie 
 
 
---
Questa e-mail è priva di virus e malware perché è attiva la protezione avast! Antivirus.
http://www.avast.com
 
 

Ma ho un'altra domanda.
Dal form, creo l'istanza della frame cosě:
FrameVincoli1:= TFrameVincoli.Create(nil,PathDB);
 
Nella FrameVincoliU.pas ho  aggiunto una var  FrameVincoli: TFrameVincoli, 
ma FrameVincoli resta sempre nil
Quindi per accedere al path che passo nel create non ho trovato altro modo 
che memorizzarla in una variabile globale in modo da renderla disponibile a 
diverse proc della FrameVincolU.pas.
 
Cos'č che sbaglio ancora ? 
 
 
---
Questa e-mail č priva di virus e malware perché č attiva la protezione avast! Antivirus.
http://www.avast.com
 
 

 che memorizzarla in una variabile globale in modo da renderla disponibile a 
 
In un contesto OO, usare una variable globale, è SBAGLIATO.
Ovviamente, ma non per tutti, ci vuole buon senso.
Si sa che le regole sono fatte per essere EVENTUALMENTE MA CONSAPEVOLMENTE violate...
 
A.

property, salvo ovviamente (ma non per >tutti) che la USI SOLO LUI.
- Qui ho aggiunto il CONST (e anche una var FPath: string nella sez private, 
è giusto?). Invece non capisco il commento sul fatto che spetti o meno al 
frame esporre questa property. In effetti il form, come tutti gli altri form 
dell'applicazione, usano estensivamente questa property che esprime il 
percorso per i dataset, e anche la frame esegue delle proc in cui ha bisogno 
di questo 'path' per accedere al giusto dataset. Quindi ho bisogno che ogni 
form, frame etc ne abbia conoscenza e glielo trasmetto in qualche modo. 
Sospetto che qui sto facendo qualcosa che potrebbe essere fatto più 
opportunamente in altro modo, ma non so come.
 
 
---
Questa e-mail è priva di virus e malware perché è attiva la protezione avast! Antivirus.
http://www.avast.com
 
 

 di questo 'path' per accedere al giusto dataset.
 
 
Dataset di che tipo?
Ancora: tu hai i "dataset" sui form/frame?
 
A.

"Alberto Salvati"  ha scritto nel messaggio 
news:504b2475-8bf6-4a39...@googlegroups.com...

Allora, l'applicazione ha tutti i suoi dataset in un DataModule, ma in 
questo caso la frame espone il result set di una TQuery, che ho messo 
direttamente sul frame, insieme al Datasource (anzi, ce ne sono tre, per tre 
query diverse che l'utente può scegliere con dei bottoni nel frame). E' 
sbagliato ?
Comunque il discorso del path si ripropone con altri parametri che molti 
form dell'applicazione usano: Ad esempio l'anno contabile, il conto (o i 
conti) sul quale si sta lavorando, etc. Questi sono dati di cui un pò tutte 
le funzionalità dell'applicazione abbisognano per sapere su quale set di 
dati devono lavorare. Non ho mai trovato un modo ideale perchè tutti i pezzi 
dell'applicazione possano conoscerli. Hai qualche suggerimento ?
PS: ho un pò di ritegno a dirtelo, ma lavoro con il BDE ... 
