Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 1
Всего онлайн: 1
Зарегистрировано юзеров: 6943
Комментариев на сайте: 654
Новый юзер: MatthewMat



Последние комментарии
c
Davidpab прокомментировал "Урок 24 - Изучаем компонент PaintBox":
&#1047;&#1072;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100; seo &#1087;&#1086;&#1080;&#1089;&#1082;&#1086;&#1074;&#1091;&#1102; &#1086;&#1087;&#1090;&#1080;&#1084;&#1080;&#1079;&#1072;&#1094;&#1080;&#1102; &#1089;&#1072;&#1081;&#1090;&#1072;, <a href=http://seoprofisional.ru/bazy>базы для xrumer</a> &#1047;&#1072;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100; &#1091;&#1089;&#1083;&#1091;&#1075;&#1080; &#1087;&#1086; &#1087;&#1088;&#1086;&#1076;&#1074;&#1080;&#1078;&#1077;&#1085;&#1080;&#1102; &#1089;&#1072;&#1081;&#1090;&#1072; &#1055;&#1086; &#1074;&#1089;&#1077;&#1084; &#1074;&#1086;&#1079;&#1085;&#1080;&#1082;&#1096;&#1080;&#1084; &#1074;&#1086;&#1087;&#1088;&#1086;&#1089;&#1072;&#1084; &#1042;&#1099; &#1084;&#1086;&#1078;&#1077;&#1090;&#1077; &#1086;&#1073;&#1088;&#1072;&#1090;&#1080;&#1090;&#1100;&#1089;&#1103; &#1074; &#1089;&#1082;&#1072;&#1081;&#1087; &#1083;&#1086;&#1075;&#1080;&#1085; [b]pokras7777[/b] &#1056;&#1072;&#1089;&#1082;&#1088;&#1091;&#1090;&#1082;&#1072; &#1089;&#1072;&#1081;&#1090;&#1072; &#1087;&#1086;&#1076; &#1082;&#1083;&#1102;&#1095; fhdxxxxxd
Everettrof прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Как быть не могу разобраться или тут хочу заказать металлоизделия Делается тут или в другом месте искать навесы из полекарбоната Такие фирмы это делают или я не правильно понимаю, нужно сделать а я вот выбираю и не могу понять,,, сварка металла это же они могут сделать??? https://steelcentury.ru пока на них смотрю

Урок 29 - Работа с DLL

   В этом уроке мы ознакомимся с динамическими библиотеками Windows. Научимся её использовать и создавать.

   Файл динамической библиотеки Windows имеет расширение .dll, вы наверняка сталкивались с такими файлами. Библиотеки имеют ряд плюсов в сравнении с обычным .exe файлом:

  1. Экономия системной памяти
  2. Можно хранить картинки, файлы и тд.
  3. Быстрое обновление программы


   Например наша программа работает и использует определённый алгоритм действий, этот алгоритм записан в dll и при обновлении этого алгоритма достаточно заменить библиотеку с этим алгоритмом на новую, а так бы пришлось заново скачивать все программу целиком.

   Создается библиотека очень просто, открываем Delphi и выбираем File->New->Other->DLL Wizard и вот у нас появилась область кода, сразу стоит заметить, что нельзя использовать формы и компоненты, только ресурсы, функции и процедуры. Мы будем делать калькулятор, но все действия будут записаны в dll. Итак определимся с видом нашей функции: function calc(a, b, index: integer): integer; a и b это наши числа с которыми необходимо произвести действие, про index я расскажу немножечко позже. Над begin и под {R *.res} напишем нашу функцию:
function calc(a, b, index: integer): integer;
begin
if index = 0 then //если index = 0 то сложим числа
	Result:= a + b;
if index = 1 then //если index = 1 то вычтем из 1 числа 2 число 
	Result:= a - b;	
end;
exports calc;  //Позволим другим программам использовать эту функцию
   Теперь скомпилируем библиотеку, но для начала нужно где-нибудь сохранить проект и назовём его "dll", сохраняем и компилируем... вылезла ошибка. Это говорит о том, что все готово, мы просто компилируем без параметра, в папке куда мы сохранили появилась библиотека "dll.dll". Все с библиотекой закончили, теперь надо создать сам калькулятор который будет использовать нашу библиотеку. Создаем новый проект и сохраняем в ту же папку где и dll. Создаем вот такую форму:

Форма


   Добавим элементы для ComboBox1, кликаем на свойство Items и делаем тоже самое:

Действия


   И сразу после implementation объявляем нашу функцию:
 
function calc(a, b, index: integer): integer; external 'dll.dll';  //Говорим компилятору что эта функция находится в dll.dll
   В событии Button1 OnClick пишем код:
 
label1.Caption:= IntToStr(calc(StrToInt(Edit1.Text), StrToInt(Edit2.Text), ComboBox1.ItemIndex));
   Все теперь запускаем программу, вводим числа, выбираем действие и нажимаем на кнопочку, в Label1 выводится результат:

Результат


Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 25 Апреля 2013
Просмотров:

Урок 28 - Создаем игру Ping-Pong - часть(3/3) Урок 30 - Знакомство с базами данных

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавила: Needle [Новичок] Дата: 2014-02-14
ой хороооош! спасииибочки!




аватар Добавил(а): Kopeheb [Новичок] Дата: 2015-01-31
но хотелось бы(я еще не все уроки просмотрел) найти как мне записать в dll формулу(ы), которые: одна: суммирует SUM(от Edit1 до Edit31) вторая: (результат_SUM+Edit32-Edit33-Edit34) / (либо ComboBox2(с двумя значениями) Edit35 * 100 кароч, замыслило программку написать которая считает: и желательно куда то записывает результаты в(.xls) с сохранением предыдущих записей. Конечно же, наверняка, такое лучше реализовать с таблицами, но пока понятного примера не нашел. и еще вопросы: созданная по уроку dll, после редакции нужно компилировать в новую dll или можно в эту же?




аватар Добавил(а): Kopeheb [Новичок] Дата: 2015-01-31
редакция строчки (либо ComboBox2(с двумя значениями) ЛИБО Edit35 * 100




аватар Добавил(а): nur7 [Новичок] Дата: 2015-09-08
Undeclared stream!




аватар Добавил: sashf1999 [Новичок] Дата: 2016-04-23
хммм, интересненький способ