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

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 4
Всего онлайн: 4
Зарегистрировано юзеров: 6536
Комментариев на сайте: 647
Новый юзер: FelhagraDral



Последние комментарии
c
Cmertb06 прокомментировал "Урок 1 - Инициализация OpenGL":
Возможно ли рисовать на экране? Например у Screen.Monitors[0] есть свойство Handle?
Aqel прокомментировал "Урок 71 - Работа с сжатыми файлами":
uses ...sevenzip, ... function ProgressCallback(sender: Pointer; total: boolean; value: int64): HRESULT; stdcall; begin if total then Form1.sprgrsbr1.Max:= value else Form1.sprgrsbr1.Position:= value; Result:= S_OK; end; function Decompress(FileName, DestDir, ArcFname: String; ArcDir: Boolean ): Boolean; var i: Integer; ItP: string; items: array[1..11] of Cardinal; sprgrsbr1: TsProgressBar; begin Result:= False; Application.ProcessMessages; try with CreateInArchive(CLSID_CFormat7z) do begin OpenFile(FileName); SetProgressCallback(sprgrsbr1, ProgressCallback); for i:= 1 to NumberOfItems - 1 do if not ItemIsFolder[i] then //ExtractItem(items[i], Steam, False); - как ей пользоваться в душе не понимаю... ExtractTo(DestDir); end; finally Result:= True; end; end;



Мы в соцсетях
c
Delphi
Урок 70 - Динамические библиотеки DLL

  Приветствую! Сейчас расскажу о библиотеках DLL и о том, как их создавать в Delphi.

  В таких языках как C++ библиотеку DLL создать и подключить довольно сложно. Для создания приходится прибегать к WinAPI, а для подключения - к классам.

В Delphi все куда легче. Создается библиотека DLL буквально двумя кликами мыши. Для этого в меню File -> New -> Other выберите DLL Wizard:



File -> New ->


  Теперь посмотрите на картинку:



Результат


  И пропишите такой код (кстати говоря, мы напишем программу, которая проверяет вымышленный пароль):

function checkPassword(password: string): string;
begin
  if password = 'admin' then
  begin
    result:= 'correct'
  end
  else
  begin
    result:= 'incorrect'
  end;
end;
exports checkPassword;

  Теперь сохраните и скомпилируйте. Вы увидите такую ошибку:



Ошибка


  Это вполне нормально. Создайте новый формовый проект и киньте на форму 1 Edit, 1 Label и 1 Button. Сохраните проект в той же папке, куда сохраняли DLL.

  Потом скопируйте нижеследующий листинг вместо всего вашего кода формовой программы:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function checkPassword(password: string): string;
external 'dll.dll';

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption:= checkPassword(Edit1.Text);
end;

end.

  Теперь объясняю:

  Здесь мы командой EXTERNAL читаем функцию checkPassword из библиотеки 'dll.dll'. Потом смотрим в Label возвращаемое этой функцией значение (correct или incorrect). Надеюсь, что здесь все понятно.



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


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

Урок 69 - Реестр Windows, (часть 2/2) Урок 71 - Работа с сжатыми файлами

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