Вторник, 03.12.2024, 17:26 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: xXxSh@dowxXx, Anton93, Волк-1024  
Проблема с массивами.
Волк-1024Дата: Вторник, 15.05.2012, 14:52 | Сообщение # 1
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
Всем привет. Может вопрос и глупый, но ответ на него я не смог найти.

Есть, допустим, массив:
Code
FunctionsAddress: array [1..100] of Pointer;

в который будут забиваться адреса функций.
И есть переменные такого вида:

Code

var
MessageBox: function (hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): integer; stdcall;
CopyFile: function (lpExistingFileName, lpNewFileName: PAnsiChar; bFailIfExists: Bool): Bool; stdcall;
...
...

В которые эти адреса будут записаны.

Проблема в том, что потом нужно будет к переменным присваивать значения из массива:
Code

MessageBox:=FunctionsAddress[0];
CopyFile:=FunctionsAddress[1];
...
...


Но т.к функций будет очень много это очень не удобно, да и не красиво... И я подумал сделать что-то вроде массива из переменных:
Code
Functions array [0..1] of Pointer = (@MessageBox, @CopyFile);
и в цикле его заполнить значениями из другого массива, но я не знаю как. biggrin Подскажите пожалуйста как это сделать или что-то похожее. smile
 
XSPYДата: Вторник, 15.05.2012, 18:41 | Сообщение # 2
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
непонял что вы хотите сделать ...о_О
Как ты вот к примеру привяжешь к мессаге адрес значения из массива???
опиши ясней что ты хочешь сделать...
 
Волк-1024Дата: Вторник, 15.05.2012, 19:33 | Сообщение # 3
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
Quote
непонял что вы хотите сделать ...о_О


Каким либо образом избавиться от таких присвоений:

Code

MessageBox:=FunctionsAddress[0];    
CopyFile:=FunctionsAddress[1];    
...    
...  


Quote
Как ты вот к примеру привяжешь к мессаге адрес значения из массива???

В связи не шибко великими познаниями я не знаю biggrin . И в качестве примера привел, что можно переменные как-нибудь запихнуть в массив и в цикле их заполнить. Возможно есть и другие более быстрые и красивые методы о которых я не знаю... biggrin
 
C@TДата: Среда, 16.05.2012, 12:25 | Сообщение # 4
Авторитетный
Зарегистрирован: 06.03.2010
Группа: Модераторы
Сообщений: 265
Статус: Offline
можешь объявить структурку из Pointer-ов и скопировать в нее массив через функцию Copy smile
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz