Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
ВнизТочка входа в функцию Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c