Home > Programowanie > Instalacja komponentów w Turbo Delphi Explorer

Instalacja komponentów w Turbo Delphi Explorer

Turbo Delphi Explorer to świetne środowisko dla obiektowego Pascala, niestety jako darmowa edycja ma zablokowaną możliwość instalowania dodatkowych komponentów. Postaram się pokazać jak mimo tego ograniczenia skorzystać z zewnętrznego kawałka kodu.

Metoda opiera się na dynamicznym tworzeniu instancji komponentu, zatem jest ona zgodna z licencją i nie narusza jej w żaden sposób. Oczywiście niesie to za sobą pewne niedogodności i nie zawsze może być stosowane, jednak w znakomitej większości przypadków tak.

Jako przykład, wykorzystam komponentem THTTPGet, służący do pobierania plików z internetu. Nie jest to komponent wizualny, tzn. udostępnia pewną funkcjonalność a nie element widoczny dla użytkownika końcowego.

W pierwszej kolejności, po umiejscowieniu plików na dysku, musimy dodać wybraną lokalizację do ścieżki przeszukiwania bibliotek. Robimy to w menu Tools > Options > Library – Win32 > Library path. Jeśli ten krok mamy już za sobą, dodajemy do sekcji uses nazwę komponentu:

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

Kolejno musimy stworzyć nową instancję komponentu, w zależności od tego czy wykorzystujemy go tylko w określonym fragmencie kodu, czy też globalnie, funkcje tworzenia i zwalnianie umieszczamy w stosownym miejscu. Ja postanowiłem utworzyć komponent zaraz po załadowaniu aplikacji oraz zwolnić go przy jej zamykaniu:

procedure TForm1.FormCreate(Sender: TObject);
begin
  HTTPGet := THTTPGet.Create(Self);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  HTTPGet.Free;
end;

HTTPGet to nazwa zmiennej zadeklarowanej w sekcji private klasy TForm1. W tym momencie możemy już korzystać z komponentu, odnosząc się do zmiennej HTTPGet.

To rozwiązanie pozwala nam na swobodę w doborze komponentów w Turbo Delphi Explorer, jednak niesie ze sobą pewne ograniczenia. W przypadku komponentów wizualnych, nie możemy w wygodny sposób umieścić ich na formie oraz manipulować ich wyglądem. Musimy tego dokonać po przez odnoszenie się do odpowiednich właściwości w samym kodzie, najlepiej tuż po jego stworzeniu.

Na koniec zamieszczam całościowy listing kodu wykorzystanego w tym wpisie, wraz z przykładowym zastosowaniem THTTPGet:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
    HTTPGet: THTTPGet;
    procedure FileDone(Sender: TObject; FileName: String; FileSize: Integer);
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  HTTPGet := THTTPGet.Create(Self);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  HTTPGet.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Enabled := False;
  with HTTPGet do
    begin
    BinaryData := True;
    URL := 'http://downloads.sourceforge.net/sevenzip/7z465.exe';
    FileName := '7z465.exe';
    OnDoneFile := FileDone;
    GetFile;
  end;
end;

procedure TForm1.FileDone(Sender: TObject; FileName: String; FileSize: Integer);
begin
  Button1.Enabled := True;
end;

end.
  1. Brak komentarzy
  1. Brak jeszcze trackbacków