Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Внизпередача параметра Найти похожие ветки
← →
Цукор5 (2006-03-29 19:07) [0]Есть приватный метод,который мне необходимо передать параметром. Не получается :( Приходиться создавать некую процедуру(Dure),в которой и вызывается приватный метод. Все в коде :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure Hello;
public
procedure Do_(AddrProc:Pointer);
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Do_(AddrProc: Pointer);
type _Proc=procedure;
var Proc:_Proc;
begin
@Proc:=AddrProc;
if Assigned(Proc) then Proc;
end;
procedure TForm1.Hello;
begin
Caption:="Preved medved";
end;
procedure Dure;
begin
Form1.Hello;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Do_(@Dure); // ТУТ! а хотелось сразу @Form1.Hello
end;
end.
Как вызывать Do_(@приватный метод формы)? Т.е. без процедуры Dure
← →
Rial © (2006-03-29 19:18) [1]
_Proc=procedure of object;
Do_(@Hello);
← →
Цукор5 (2006-03-29 19:38) [2]2 Rial © (29.03.06 19:18) [1]
Нет, не работает :(
← →
Rial © (2006-03-29 19:49) [3]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
Type
TProc=procedure of object;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure Hello;
public
procedure Do_(Const Proc:TProc);
{ Public declarations }
end;
Var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Do_(Const Proc:TProc);
begin
If (Assigned(Proc)) then Proc;
end;
procedure TForm1.Hello;
begin
Caption:="Preved medved";
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Do_(Hello);
end;
end.
У тебя много кривостей было.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c