Newsgroup: it.comp.lang.delphi
Titolo: Puntari, Classi, oggetti...

Ciao a tutto il NG,
Io sono un programmatore Pascal e questo si nota nei miei programmi.
Ora mi sono spostato in Window ma la mania di fare tutto da me non mi
č ancora passata. Ho provato a creare una finetra come si fa in C cioč
usando solo le API di windows (tra cui la WindowsCrateEx) tutto fila
liscio finche non devo (se volgio mantenere una programmazione OOP)
asociare un metodo a un poiter (o controlato non č un TProcedure o
cose strane č proprio un Pointer).
Se faccio NomePuntatore:= @procedura funziona se faccio
NomePuntatore:= @Metodo no... c'č un metodo per agirare il problema
(anche ricorendo al vecchio č caro ASM)?
Non mi va di avere una sola finestra (e un po' brutto) e dichiarare +
procedure uguali č schifoso non brutto.
grazie delle eventuali risposte,
che spero siano numerose
Il Razziatore,
The Only Good Windows in an uninstalled Windows
-----------------------------------------------
E-MAILs : IlRazziat...@NOSPAMnetscape.net
WEB     : 
http://www.razziatore.dns2go.com/
ICQ     : 67552596

procedure uguali č schifoso non brutto.
Semplicemente crei una procedura... e gli passi dei parametri es.:
procedure CreaFinestra(WTitle: PChar, X: Integer, Y: Integer...ecc
begin
	// qui all'interno ci metti la tua WindowCreateEx con i
parametri passati...
end;
cmq ti consiglio di leggere prima un buon libro di italiano ^_^
----
Lawrence "Rhymes" Oluyede
rhy...@myself.com


Tu la fai semplice... (lui la fa semplice...)
La procedura da mo che č creata... ti ho detto che se non uso OOP
funge tutto alla perfezione. Mi crea la finestra mi gestisce i messagi
(ci sono delle omisioni ma cmq me li gestisce).
L'unico problema quando volgio fare un bel ogetto tipo
Var
  A, B: TWindow;
Begin  
  A.Init;
  B.Init;
  A.Create;
  B.Create;
  A.Run;
  B.Run;
  A.Kill;
  B.Kill;  
End.
con questo codice genera due fineste indipendenti.
io ho creato tutto ma la WindowCreateEx vuole una funzione di ritono
dei messagi (una callback) chiamata wndproc che č definita come
pointer da delphi ora fare
WC.lpfnWndProc   := @WndProc;
ma con gli oggetti
WC.lpfnWndProc   := @WndProc;
Mi dice Non si puo' asociare un metodo (wndproc) a un puntatore...
TWindow dovrebbe risultare:
Type
  TWindow = Object
    I vari dati
    Procudre Init;
    Function Create;
    Function WndProc (...) : ...
    e altre cose...
    End;
mi spiego da schifo lo so....


 Mi dice Non si puo' asociare un metodo (wndproc) a un puntatore...
La risposta su icpw32 l'hai guardata?
(MakeObjectInstance, AllocateHWnd)
Saluti
Paolo Arosio

(MakeObjectInstance, AllocateHWnd)
Non l'ho guardata semplicemente perche non so cosa sia...



|NNTP-Posting-Host: 80.116.252.95
|X-Trace: 
fu-berlin.de
 1008027561 13348454 80.116.252.95 (16 [99656])
|X-Posting-Agent: Hamster/
1.3.22.0
|X-Newsreader: Forte Free Agent 1.21/32.243
|Xref: 
uni-berlin.de
 it.comp.programmare.win32:27274
|
|Stavo scrivendo il mio bel oggetto TWindow e mi sono acorto che non
|posso dichiarare l'interprete dei messagi come metodo percui la OOP se
|ne va a quel paese... io uso Delphi... e una sua limitazione VisualC++
|permette di usare un metodo come wndproc?
|
|il mio oggetto fungeva alla perfezione se non fosse stato per questo
|piccolo particolare... potrei usare ID della finestra come e poi
|smistare ma lo vedo complicato e brutto...


l'override).
non ci avevo capito un cavolo...
vediamo un po' ti faccio sapere (dove ho messo il progetto?)


Ho risolto (o almeno credo)... è stato una cavolta è bastato fare
  Type
    TMethod = Procedure of Object;
  Function MethodPointer(Method: TMethod): Pointer;
  Begin
    MethodPointer:= @Method;
  End;
l'unico problema era mettere quel "of object"... una cavolta...
Ora devo solo sodtituire Proceudre con il tipo di funzione che mi
interessa ed è fatta....
grazie a tutti.
