Instalacja komponentów
Adam Boduch
Ostatnio dostałem list, z pytaniem dotyczącym komponentów. Rzecz była następująca. Chodziło o Image i o to, aby po wejściu kursora w obszar komponentu zmienił się obrazek, a po wyjściu powrócił do poprzedniego stanu. Ten list zmobilizował mnie do napisania tego artykułu. Tematem niniejszego artykułu będzie pisanie prostego komponentu, który obsługiwałby funkcje wchodzenia i wychodzenia kursora w obszar komponentu. Następnie opiszę jak taki komponent dodać do palety komponentów, aby można było z niego korzystać w każdej chwili.
Najpierw opiszę jak takowy komponent zainstalować, a dopiero później przedstawię jego kod źródłowy.
Delphi 2
Tu sprawa jest bardzo prosta. Wybierasz menu "Component", "Install". Naciskasz przycisk "Add" i lokalizujesz plik *.pas rozpakowanego komponentu. Następnie naciskasz "OK" i komponent powinien się znaleźć na palecie komponentów "Samples".
Delphi 4, 5
Instalowanie komponentu w Delphi 5 też nie jest trudne. Wybierz: "Component", "Install Component". W polu "Unit file name" wpisz ścieżkę gdzie masz zainstalowany komponent. W polu "Package file name" powinna się znaleźć nazwa: "DCLUSR50.DPK". Jeżeli tak nie jest zlokalizuj go ( naciśnij "Browse") - powinien się znaleźć w katalogu Delphi4Lib
Delphi 7 i prawdopodobnie 6
Tak samo jak w 4 i 5 tylko że nazwa paczki to dclusr.dpk.
To wszystko na temat instalacji komponentów. Być może już niedługo w tym dziale znajdzie się artykuł o pisaniu komponentów? A oto kod tego komponentu:
unit TMyImage;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type
TMImage = class(TImage)
protected
Over, Out : TNotifyEvent;
//Komunikat, ktory obsluguje wejscie i wyjscie myszy
procedure MouseEnter(var Message:TMessage);message cm_MouseEnter;
procedure MouseLeave(var Message:TMessage);message cm_MouseLeave;
published
//W tej sekcji sa procedure, ktore widoczne bda w inspektorze
//obiektow ( Object Inspektor )
property OnMouseEnter: TNotifyEvent read Over write Over;
property OnMouseLeave: TNotifyEvent read Out write Out;
end;
procedure Register;
implementation
procedure TMImage.MouseEnter(var Message:TMessage);
begin
(* Jezeli kursor jest na przycisku wykonywana zostaje
procedura OnMouseEnter *)
if Assigned(Over) then OnMouseEnter(Self);
Message.Result:=1;
end;
procedure TMImage.MouseLeave(var Message:TMessage);
begin
(* Tak j/w *)
if Assigned(Out)then OnMouseLeave(Self);
Message.Result:=1;
end;
procedure Register;
begin //Rejestrowanie komponentu
RegisterComponents('Samples', [TMImage]);
end;
end.
Stwórz nową paczkę, dodaj do niej pliki PAS, prawym i Install!
Tak jak w 4 i 5 tylko ze plik to nie dclusr50.dpk tylko dclusr70.dpk albo dclusr.dpk. Zresztą dodam to do artykułu jako moje pięć groszy dla strony.
A jak instalować komponenty w Delphi 7?