Главная страница
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.042 c
2-1143788951
Ega23
2006-03-31 11:09
2006.04.16
Поиск параметров командной строки


1-1142333176
Priest
2006-03-14 13:46
2006.04.16
Приведение класса к интерфейсу


2-1143796237
creative
2006-03-31 13:10
2006.04.16
не назначена картинка в TImage


15-1143208588
Ketmar
2006-03-24 16:56
2006.04.16
промеждупрочим о "падокавскам" языке


15-1143209827
oldman
2006-03-24 17:17
2006.04.16
Хорошее дело не остается безнаказанныи...