Newsgroup: it.comp.lang.delphi
Titolo: Usare il Completition Class di Delphi 7

Ciao a tutti , ho un problema , (o più probabilmente è la mia ignoranza , sono un sotto-aspirante-principiante ) col Completition Class di D7 (SHIF+CTRL+C).
Se il Coding Style non è il massimo , mi scuso, vorrei però concentrarmi sul problema che non riesco a risolvere.
Cercando di capire qualcosa sulle PROPERTY , ho creato questa classe : 
type Computer = class
     Name : string;
     Acceso : boolean;
     procedure Accendi;
     procedure Spegni;
   end;
Lo scopo è di trasformare Name in una property , e far scrivere all'IDE il codice mancante:
type Computer = class
     property Name : string;
     Acceso : boolean;
     procedure Accendi;
     procedure Spegni;
   end;
Il codice proposto dall'IDE  con il Completition Class è questo : 
type Computer = class
  published
     property Name : string read FName write(*) SetName(**);
     Acceso : boolean;
     procedure Accendi;
     procedure Spegni;
  private
    FName: string;
    procedure SetName(const Value: string);
  end;
ERROR : Field or method identifier expected (*) (**)
ma compilando vengono rilevati 2 errori uguali e posti nei punti che indico.
In un pdf che ho stampato , tratto da un sito che non ricordo, ho letto che le proprietà è meglio dichiararle per ultime quindi riscrivo la classe cosi' :
type Computer = class
     Acceso : boolean;
     procedure Accendi;
     procedure Spegni;
     property Name : string;
   end;
di nuovo Completition Class e questo il risultato : 
type Computer = class
  published
     Acceso : boolean;(*)
     procedure Accendi;
     procedure Spegni;
     property Name : string read FName write(**) SetName(***);
  private
    FName: string;
    procedure SetName(const Value: string);
   end;
Compilo , ed ecco altri errori  :
ERROR : Published field 'Acceso' not a class nor interface type(*)
ERROR : Field or method identifier expected(**)(***)
 
Per tagliare corto ho rimaneggiato la classe proposta dall'IDE , cosi' :
type Computer = class
   public
     Acceso : boolean;
     procedure Accendi;
     procedure Spegni;
   private
    FName: string;
    procedure SetName(const Value: string);
   published
     property Name : string read FName write SetName;
   end; 
e funziona.
Volevo , quindi domandarvi :
[1]
perchè il compilatore mi propone una classe che poi da' degli errori? è   possibile che ci sia qualcosa da settare nelle opzioni TOOLS|ENVIROMENT OPTIONS?
[2]
perchè le property vengono dichiarate dall'automatismo dell'IDE , sotto il livello di visibilità PUBLISHED? E' necessario? (io credo di no)
Grazie e ciao
Daniele
PS Non mi aspetto risposte , ... ma se qualcuno risponde vi pregherei di astenervi , nel dirmi di :
1 - vai su Google  --> gia' fatto, e anche in inglese (senza molto successo)
2 - laureati in informatica ----> sono vecchio, non mi vogliono :-);
3 - studia tutti i libri di Cantù ---> Ho le versioni 4,5,7 dei suoi libri e su questi ci sono due o tre paginette molto generali ma poco utili ;
4 - pagati una lezione su Delphi ... quello posso farlo :-)

 PS Non mi aspetto risposte , ... ma se qualcuno risponde vi pregherei di astenervi , nel dirmi di :
 
Sbagli senz'altro ad invocare il comando, perché ripetendo il tuo stesso 
scenario a me non viene riscontrato alcun errore, e questo posso 
garantirlo per qualsiasi versione di Delphi utilizzata, dato che è il 
comando utilizzato più spesso da anni.
 
Senz'altro c'è qualcos'altro che hai scritto o hai aggiunto che 
impedisce all'automatismo di portare a termine correttamente il proprio 
lavoro.
 
Ciao,
   Marco.
 
-- 
Marco Breveglieri
   (
http://www.marco.breveglieri.name
)

Potrei magari , rifare una reinstallazione pulita di D7 su un'altro pc , e riprovare .... magari va'....  
 
be' ... grazie 
 
ciao
Daniele