Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2015, 12:38   #1
zdus2757
vk.com/replog
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 87
Радость DLL + Перегрузка/Ваши варианты

Всем привет, дело такое, написал в DLL функцию "поиска" как я её назвал,
но не могу сделать её более компактной, или хотябы с перегрузкой
Выглядит она примерно так:

function Search(OpenNumber,Number1....,Numbe r10:Integer): String;
var
...
begin
...
тут перевожу OpenNumber
тут плюсую переведенный OpenNumber + Number1
result:=того что плюсовал
end;

примерно так, но вы заметили Number10
а проблема в том что в использовании функции мне нужно использовать Number1,2,3,4,5,6,7,8,9,10 не всегда, т.е. иногда мне нужно
использовать только Number1 и Number2 а остальные 8 мне не нужны, а иногда наоборот нужны все 10, и вот что я пытался
1) я пытался поставить необязательные параметры т.е. ставил =0 к каждому кроме первого, первый всегда должен быть
2)я пытался сделать массив, к сожалению похоже я плохо пишу и он не посчитал мои строки массивом но после я понял что при приравнивании к 0 т.е. как делал в первом пункте, результат отличается от того который должен быть т.е. мне не поможет массив
3) я пытался сделать перегрузкой, написал каждую функцию отдельно от Number1 до Number10 и возникли проблемы с экспортом возможно, но программа всеравно давала не тот результат
и сейчас у меня вариант в виде отдельных функций т.е. SearchNumb1,SearchNumb2,SearchNumb3 и т.д.
это не очень удобно, есть у кого какие идеи как можно сделать все в одной функции?
так же пытался сделать проверку сколько введено параметров, но тоже не вышло результат был близок к тому что нужно, но всетаки отличался от него

не обязательно писать за меня код, дайте совет как можно сделать, возможно я не так написал цикл или не додумался попробовать другие циклы, использовал for

пример второй функции:
function Search(OpenNumber,Number1....,Numbe r10:Integer): String;
var
...
begin
...
тут перевожу OpenNumber
тут плюсую переведенный OpenNumber + Number1
тут перевожу плюсованное
тут плюсую переведенное с Number2
result:=того что плюсовал
end;

Последний раз редактировалось zdus2757; 01.12.2015 в 12:41. Причина: вторая функция :)
zdus2757 вне форума Ответить с цитированием
Старый 01.12.2015, 12:55   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
я пытался сделать массив
динамический массив передавай
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.12.2015, 02:09   #3
zdus2757
vk.com/replog
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 87
Радость

Цитата:
Сообщение от Аватар Посмотреть сообщение
динамический массив передавай
спасибо :D чето затупил немног
zdus2757 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инструкция для сборки приложений на Qt в один exe без зависимостей от libstdc++-6.dll, libgcc_s_dw2-1.dll, Qt5Core.dll и т.д. 8Observer8 Qt и кроссплатформенное программирование С/С++ 12 25.06.2015 03:18
Варианты в делфи Deoxes Помощь студентам 21 21.11.2013 05:10
C# & DLL: как указать, что загружать DLL нужно из ЗАДАННОЙ папки "D:\My\Path\a.dll" ? AntyDES C# (си шарп) 11 10.10.2012 20:00
ВАРИАНТЫ ПАРСИНГА Vova777 Общие вопросы Delphi 2 04.09.2010 23:51