Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

передача параметра   Найти похожие ветки 

 
Цукор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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
2-1143995705
Bruce
2006-04-02 20:35
2006.04.16
PChar утечка памяти


1-1141910536
kyn66
2006-03-09 16:22
2006.04.16
Как у меню проверить наличие подменю?


15-1143094094
__DATA__
2006-03-23 09:08
2006.04.16
Очистить Desktop после рисования на нем


3-1140436744
PSZ
2006-02-20 14:59
2006.04.16
Сделать мониторинг таблицы, с которой работает другое приложение


15-1143186521
Ega23
2006-03-24 10:48
2006.04.16
С Днём рождения! 24 марта