Newsgroup: it.comp.lang.delphi
Titolo: Variabili visibili su più form

Salve,
Scusate la mia scarsa preparazione....
Sono agli inizi...
Se io devo usare una variabile che sia visibile in tutte le form del mio
progetto, in che punto della FORM principale la devo collocare?
Grazie, come sempre, sin da ora.
Massimo

progetto, in che punto della FORM principale la devo collocare?
Crea una proprieta' del form principale (che maschera una variabile
interna) (non usare variabili globali).
-- 
Andrea Laforgia (ICQ# 87230455) ---------------------------
Non scrivetemi in privato, se non richiesto espressamente.
No replies in private e-mail, unless explicitly requested.
----------------------------------------------------------

 interna) (non usare variabili globali).
La cosa non mi è chiara....
Abbi pazienza....
P.S. Già che ci sono ti faccio un'altra domandina (dato che sei sempre così
disponibile)
Uso ShellExecute per lanciare un programma.
Tutto Ok.
Dato che lancio un programma (WinZip) che non sono sicuro essere presente
sul pc volevo creare un controllo o un'eccezione se il programma non viene
trovato.
Dal file di HELP vedo :
"Return Values
If the function succeeds, the return value is the instance handle of the
application that was run, or the handle of a dynamic data exchange (DDE)
server application.
If the function fails, the return value is an error value that is less than
or equal to 32. The following table lists these error values:
Value Meaning
0 The operating system is out of memory or resources.
ERROR_FILE_NOT_FOUND The specified file was not found.
...
..
.." (Serie di errori)
Avevo provato a Usare una variabile MyHandle di tipo HWND da sostituire a
HANDLE di ShellExecute per leggere l'eccezione... ma mi sa che ho sbagliato.
Come faccio a vedere il ritorno del programma (errore o esecuzione
avvenuta)?
Grazie come sempre....
Massimo
max...@libero.it

avvenuta)?
Devi usare THandle (non e' altro che un LongWord).


Io ho usato la porzione di codice sotto descritta (associata ad un bottone
(ActionClick), e nella form Principale (MainForm) vi è un campo EDIT (Check)
in cui inserisco il risultato)
----------------------------------------------------------------------------
---
Procedure TMainForm.BtnActionClick(Sender: TObject);
Var MyHandle : THandle;
Begin
  ShellExecute(MyHandle, 'OPEN', 'WinZip32.Exe', nil, nil, SW_NORMAL);
  Check.Text:=IntToStr(MyHandle);
End;
----------------------------------------------------------------------------
----
Il risultato (che il file sia presente e parta o che non sia presente e non
parta) è sempre lo stesso a livello numerico. (mi dice in fase di
compilazione Variable 'MYHANDLE' might not have been inizializaed)
Scusami ancora, ma non capisco....
Massimo

>  type TStatoLampadina = (ACCESA, SPENTA) ;
correzione di stile ;) :
type TStatoLampadina = (slAccesa, slSpenta);
oppure un boolean
Ciao,
Alan Solo

>   ShellExecute(MyHandle, 'OPEN', 'WinZip32.Exe', nil, nil, SW_NORMAL);
penso sia meglio una cosa del tipo:
MyHandle := ShellExecute(0, 'OPEN', 'WinZip32.Exe', nil, nil, SW_NORMAL);
ps: io di solito passo 0, e corretto? E' meglio Application.Hande??
[non ho l'help sotto mano qundi potrei averla sparata grossa,
visti gli ultimi post ;)]
Ciao,
Alan Solo

 interna) (non usare variabili globali).
sto leggendo un po' di tutorial sul tanto acclamato python,
il quale mi ha incuriosito.
E... sorpresa, ho gia' trovato una cosa che non mi piace :(
"No methods or member variables are protected (or private or the like) in
Python. Encapsulation is pretty much a matter of programming style. (If
you really need it, there are naming-conventions that will allow some privacy
:))."
ma peeercheee', ma soppratutto peeeeercheeee'
:P
Ciao,
Alan Solo

 Alan Solo
Grazie del contributo.
Massimo.
max...@libero.it