Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

var Proc: procedure а дальше что?! [D7, WinXP]


Страницы:   1 2

Grief ©   (2005-05-15 10:18:00) 

Помогите, пожалуйста, мне необходимо сделать переменную, которая сможет хранить указатели на процедуры с разным количеством параметров.
То есть, например, когда я делаю
var P: procedure;
А затем присваиваю:
P := GetNewLink(1, 1, I);
У меня, понятное дело, вываливается ошибка. Как этого избежать?


Grief   (2005-05-19 14:21:00) [21]

как сделать ссылку переменной на ЛЮБУЮ процедуру, не обращая внимания на количество и тип параметров?


Reindeer Moss Eater   (2005-05-19 14:20:00) [22]

Сникерсни!

... := @this_pascal_module.DestroyWindow([Main.Wnd]);


Grief   (2005-05-19 14:19:00) [23]

ну уж не совсем тупой, это обращение...
Но как же правильно?


Reindeer Moss Eater   (2005-05-19 14:18:00) [24]

я ведь использую обычный DestroyWindow из Windows  Почему же неработает?

Потому что [15]


Grief   (2005-05-19 14:18:00) [25]

а... имеется ввиду, что то вроде ... := Unit1.DestroyWindow([Main.Wnd]); ?
Нет, неправильно, я ведь использую обычный DestroyWindow из Windows  Почему же неработает?
Eraser - а как правильно?


Reindeer Moss Eater   (2005-05-19 14:16:00) [26]

unit Windows;

.....
function DestroyWindow(hWnd: HWND): BOOL; stdcall;
.....


Reindeer Moss Eater   (2005-05-19 14:15:00) [27]

Reindeer Moss Eater - это ник.


Grief   (2005-05-19 14:15:00) [28]

Reindeer Moss Eater - это не шутка?


Eraser   (2005-05-19 14:11:00) [29]

Eraser ©   (19.05.05 14:01) [10]

Каюсь. Соврал.


Reindeer Moss Eater   (2005-05-19 14:08:00) [30]

... := @this_pascal_module.DestroyWindow([Main.Wnd]);


Eraser   (2005-05-19 14:01:00) [31]

Grief ©   (19.05.05 13:59) [9]
 Proc: procedure(Parameters: array of const);


Ошибка.


Grief   (2005-05-19 13:59:00) [32]

М-дя, я конечно тормоз, но

 Main.Button[4].Proc := @DestroyWindow([Main.Wnd]);

Выдает ошибку Incompatible types 'HWND' and 'Set'
при

TButton = object
   Name: string;
   Position: TRectangle;
   Proc: procedure(Parameters: array of const);
   ...

Что не так?


GrayFace   (2005-05-16 15:42:00) [33]

угу


Grief   (2005-05-16 13:59:00) [34]

угу, вроде ясно, то есть Proc([]); так что ли?


Marser   (2005-05-15 23:29:00) [35]

Согласно инструкции. Как обычную подпрограмму.


Grief   (2005-05-15 22:36:00) [36]

А если их нет?


Ozone   (2005-05-15 11:41:00) [37]

Proc([<список параметров>])


Grief   (2005-05-15 11:23:00) [38]

А не подскажите, а как теперь эту процедуру запустить? Я и так, и сяк: Dialog[CurrentDialog].Button[I].Proc;
А он говорит, что не хватает параметров. Дело в том, что у переменной процедуры вообще не может быть параметров!


Grief   (2005-05-15 10:39:00) [39]

угу, пасибки.... огромное спаибки!!!!


Юрий Зотов   (2005-05-15 10:28:00) [40]

type
 TProc = procedure(Params: array of const);
var
 P: TProc;
begin
 P := @GetNewLink;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо