Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#7

Re: Komponente in Komponente D2006

  Alt 4. Okt 2006, 21:21
Zitat von Florian Bernd:
Achso ... du hast die Komponente registriert und danach die Klasse im Nachhinein verändert. In diesem Falle sollte es reichen, wenn du nur die Komponenten Unit neu compilierst.

Das Package musst du glaube ich nicht neu installieren. Wenn doch, dann musst du das Package nochmal deinstallieren und nach der Änderung der Unit neu installieren.

Florian
Sorry wir reden aneinander vorbei !
Oder ich drücke mich schlecht aus.

Es ist wie folgt.

Es gibt eine Package XiControls
In dieser sind 4 Units enthalten.

XiButton.pas, XiPanel.pas, XiProgressBar.pas, XiTrackBar.pas.
Die Registrations Unit ist XiControls.pas

In der steht!

Delphi-Quellcode:
unit XiControls;

interface

uses
  Classes, XiButton, XiProgressBar, XiPanel, XiTrackBar;

implementation

{$R XiControls.res}

procedure Register;
begin
  RegisterComponents('XiControls', [TXiPanel, TXiTrackBar, TXiProgressBar, TXiButton]);
end;

end.
dann gibt es die Package DSPack
Hier ist eigentlich nur die DSPack.pas interessant diese wurde geändert und zwar wie schon erwähnt
TDSTrackBar = class(TTrackBar ... in TDSTrackBar = class(TXiTrackBar ...

Das ist alles.
Das Pack wird über den DSEditors.pas Registriert
Dort steht, das wichtigste!

Delphi-Quellcode:
  procedure Register;
  begin
    RegisterComponents('DSPack', [TFilterGraph, TVideoWindow, TSampleGrabber,
      TFilter, TASFWriter, TDSTrackBar, TDSVideoWindowEx2]);
    RegisterPropertyEditor(TypeInfo(TMediaType), nil, '', TMediaTypePropertyClass);
    RegisterPropertyEditor(TypeInfo(TBaseFilter), nil, '', TBaseFilterPropertyClass);
  end;

Hier wird die TDSTrackBar Registriert.
Wenn ich nun das DSPack installiere funktioniert das auch.

Lasse ich aber die Anwendung laufen kommt die Fehlermeldung das die Komponente TXiTrackBar schon registriert
ist und sich im Pack XiControls befindet.

Seltsamer weise funktioniert das in d7 in d2006 funktioniert es nicht.

gruß

EDIT: Der User hat einen Skin.
Standardmäßig wird die TTrackbar position vom DSPack ausgegeben wenn ein Video spielt.
Er will aber die TrackBar vom XI Pack verwenden wegen seinen Skin.
Deshalb hat er das ganze Teil umgestrickt damit die position der TTrackBar nun auf der vom XI Pack
umgeleitet wird.
  Mit Zitat antworten Zitat