Procedure jako property
Wyświetlono wersję archiwalną tematu "Procedure jako property" z forum pl.comp.lang.delphi
Dariusz Drzemicki
Czy można zdefiniować property o typie procedure?
Prówałem w następujący sposób:
MyType = class
private
  Fproc: procedure(o: TObject);
published
  Proc: procedure read FProc write FProc;  // tutaj kompilator zgłasza błąd
(oczekuje typu, a nie procedury)
end;
Grzegorz Arkit
Sprobuj najpierw zadeklarowac typ  (np. MyProc = procedure(o:TObject) ) a
potem pole klasy zrobic tego wlasnie typu (FProc:MyProc).
Niestety nie moge tego sprawdzic, bo nie mam w pracy zainstalowanego Delphi.
                                                    Grzesiek

Czy można zdefiniować property o typie procedure?
Prówałem w następujący sposób:
MyType = class
private
 Fproc: procedure(o: TObject);
published
 Proc: procedure read FProc write FProc;  // tutaj kompilator zgłasza błąd
(oczekuje typu, a nie procedury)
end;


Lodek
Sprobuj najpierw zadeklarowac typ  (np. MyProc = procedure(o:TObject) ) a
potem pole klasy zrobic tego wlasnie typu (FProc:MyProc).
Niestety nie moge tego sprawdzic, bo nie mam w pracy zainstalowanego


Delphi.

To się właśnie tak robi tylko AFAIK procedura musi być klasowa czyli:

type TMyProcedure = procedure (cotam: costam) of object;

Pozdrawiam,

Lodek

Dariusz Drzemicki

Sprobuj najpierw zadeklarowac typ  (np. MyProc = procedure(o:TObject) ) a
potem pole klasy zrobic tego wlasnie typu (FProc:MyProc).
Niestety nie moge tego sprawdzic, bo nie mam w pracy zainstalowanego
Delphi.
                                                    Grzesiek


Niestety, próba oszukania kompilatora nie powiodła. Zmienił się tylko
komunikat błędu:
-Published propety nie może być typu procedure.
Podejrzewam, że problem trzeba rozwiązać innym sposobem. Moja property ma
byc podobna do Eventu, lecz nie zwiazana z żadnym zdarzeniem.
Marcin Wieczorek

-Published propety nie może być typu procedure.


Musi to być metoda czyli procedura będąca składową obiektu.

type TProc=procedure(Par:TParametr) of object;

Oczywiście wszystko dla published dla public i reszty powinno być bez
problemów.

Incompatible types 'method pointer and regular procedure'
Destrukcja parenta obiektu w procedurze wywolywanej podczas jego zdarzenia onclik
uzycie procedury obslugi zdarzenia komponentu z ktorego dziedzicze
Jaki jest odpowiednik pascalowskiej procedury Sound(500) w delphi?
  • add lpr port
  • zazdrosnice czyli rozprawka na temat zespolu 45
  • eksperymentalna chemia fizyczna rapidshare
  • repsol oleje do zawieszen 5w i 10w
  • chorzelF3w
  • sofa meble
  • jaki telefon
  • czasem zapala sie kontrolka o co chodzi
  • wyszukiwarka spolszczen gry
  • Zestaw wątków z for dyskusyjnych ; Start