![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
var Proc: procedure а дальше что?! [D7, WinXP]
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;