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

Вниз

Точка входа в функцию   Найти похожие ветки 

 
MVova ©   (2002-04-15 13:57) [0]

Всем привет.
Есть функция:
function KK : Boolean;
begin
Result := True;
end;

есть другая ф-я:
function AA(K : Pointer) : Boolean;
begin
Result := K //?????
end;

далее
AA(@KK);

Ворос: как в AA имея точку входа KK выполнить KK и получить результат???


 
MBo ©   (2002-04-15 14:03) [1]

точка входа- очевидно адрес, указатель.
тогда
type boolfunc=function:boolean;

boolvar:=boolfunc(kkaddress);


 
Alx2 ©   (2002-04-15 14:05) [2]

Type TMyFunc : function:boolean;

function AA(Func : TMyFunc):Boolean;
Begin
Result := Func;
End;


 
Alx2 ©   (2002-04-15 14:07) [3]

Опять синхронизм, блин...
В следующий раз 10 мин. выжидать буду :)


 
MVova ©   (2002-04-15 14:23) [4]

Спасибо с эти мразобрался, но почему не работает такой код :-(
На форме 2 кнопки и одна лейба. (лейба так для видимости работы)

в GetK входит но приэтом Self = nil ???

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
AAA = function : Boolean;

TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
K : Boolean;
procedure KK(KKK : Pointer);
function GetK : Boolean;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
K := not K;
if K then
Button1.Caption := "True"
else
Button1.Caption := "False";
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
KK(@TForm1.GetK);
end;

function TForm1.GetK: Boolean;
begin
Result := K;
end;

procedure TForm1.KK(KKK: Pointer);
var
I : Integer;
begin
I := 0;
repeat
Inc(i);
Label1.Caption := IntToStr(i);
Application.ProcessMessages;
if AAA(KKK) then
Button2.Caption := "True"
else
Button2.Caption := "False"
until False;
end;

end.


 
Alx2 ©   (2002-04-15 14:29) [5]

В описании функционального типа добавить "of object"


 
MVova ©   (2002-04-15 14:44) [6]

работает если procedure TForm1.KK(KKK: AAA);
а так procedure TForm1.KK(KKK: Pointer);
кричит
if AAA(KKK) then - Invalid typecast



 
Alx2 ©   (2002-04-15 14:56) [7]

Pointer - 4 байта.
AAA - 8 байт.



Страницы: 1 вся ветка

Текущий архив: 2002.04.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
4-94638
alexey1
2002-02-26 23:19
2002.04.29
Вопрос на использование функции FindWindowEx


4-94627
alexey1
2002-02-21 03:34
2002.04.29
system menu


1-94425
GBF
2002-04-15 15:05
2002.04.29
Как несколько файлов упаковать в один внешний


3-94277
DANCHA
2002-04-06 09:57
2002.04.29
Компонент TADOTable и глюки в работе с ним


3-94304
dr_neo_rostov
2002-04-08 21:48
2002.04.29
Найти Самый ЛУЧШИЙ SQL