[ Voodoo @ 18.01.2005. 09:01 ] @
Skinuo sam jednu komponentu sa Torry-ja, ali ne znam kako da je instaliram posto ne dolazi sa PAS fajlom, vec samo DCR i DCU fajlovima. Znam da se komponente instaliraju tako sto se napravi paket, ubaci se PAS, kompajlira i instalira, ili preko Components > Install Component, ali kada ubacim DCU fajl, on pokusava da ga interpretira kao tekstualni PAS, pojave se kuke i motike, i od instalacije nema nista.
Pomoc!

PS. Konkretno mi treba TTrackBar koji ima MouseDown i MouseUp evente. Da li znate jos nesto osim TMouseBar-a sa Torry-ja?
[ Milos D @ 18.01.2005. 11:30 ] @
TTrackBar vec ima OnMouseUp/Down samo sto nisu vidljivi (protected) tako da je dovoljno da napises:

Code:

  TTrackBar2 = class (TTrackBar)
  public
    property OnMouseUp;
    property OnMouseDown;
  end;

i da instaliras to kao novu komponentu.

A onaj DCU mozda nece da radi jer nije iskompajliran pod verzijom Delfija koju ti imas?
[ Voodoo @ 18.01.2005. 14:12 ] @
Gde gresim? Evo cele forme, i mouse up/down ne radi.

Code:
type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TMyTrackBar = class (TTrackBar)
    procedure MyTrackBarMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure MyTrackBarMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  public
    property OnMouseUp;
    property OnMouseDown;
  end;

var
  Form1: TForm1;
  TrackBar1: TMyTrackBar;

implementation

{$R *.dfm}

procedure TMyTrackBar.MyTrackBarMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  Form1.Label1.Caption := IntToStr(TrackBar1.Position);
end;

procedure TMyTrackBar.MyTrackBarMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  Form1.Label1.Caption := IntToStr(TrackBar1.Position);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TrackBar1 := TMyTrackBar.Create(Form1);
  TrackBar1.Parent := Form1;
end;

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

end.
[ bancika @ 18.01.2005. 14:25 ] @
na OnCreate dodeli notifyEvent:
TrackBar1.OnMouseDown := MyTrackBarMouseDown
trebalo bi sad da radi
[ Voodoo @ 18.01.2005. 15:40 ] @
Nece. Prijavljuje mi "Undeclared identifier: MyTrackBarMouseUp".

A kad promenim u

Code:
TrackBar1.OnMouseDown := TMyTrackBar.MyTrackBarMouseDown;


kaze mi "Incompatible types: TMouseEvent and Procedure".
[ bancika @ 18.01.2005. 16:15 ] @
nemoj da deklarises te procedure u okviru klase TMyTrackBar, nego kod forme
[ Voodoo @ 18.01.2005. 16:34 ] @
Ma nista, napravio sam novu komponentu koju sam izveo iz TTrackBar, u published ubacio potrebne evente i registrovao je na Sample paletu. Sad sve radi.

Hvala na pomoci.