Zitat von
NamenLozer:
das problem liegt jetzt aber irgendwo hier:
TMultiTrackBar = class(TCustomControl)
...Zugriffsverletzung bei Adresse 4002701E im Modul rtl90.bpl.Lesen von Adresse 00000001 kann nicht erweitert werden.
Siehe hier :
Delphi-Quellcode:
TCustomControl =
class(TWinControl)
private
FCanvas: TCanvas;
procedure WMPaint(
var Message: TWMPaint);
message WM_PAINT;
protected
procedure Paint;
virtual;
procedure PaintWindow(
DC: HDC);
override;
property Canvas: TCanvas
read FCanvas;
public
constructor Create(AOwner: TComponent);
override;
destructor Destroy;
override;
end;
Was ist mit den override ? Sind die richtig definiert ? Denn das kommt von hier :
Delphi-Quellcode:
TTrackBar = class(TWinControl)
private
FOrientation: TTrackBarOrientation;
FTickMarks: TTickMark;
FTickStyle: TTickStyle;
FLineSize: Integer;
FPageSize: Integer;
FThumbLength: Integer;
FSliderVisible: Boolean;
FMin: Integer;
FMax: Integer;
FFrequency: Integer;
FPosition: Integer;
FSelStart: Integer;
FSelEnd: Integer;
FOnChange: TNotifyEvent;
function GetThumbLength: Integer;
procedure SetOrientation(Value: TTrackBarOrientation);
procedure SetParams(APosition, AMin, AMax: Integer);
procedure SetPosition(Value: Integer);
procedure SetMin(Value: Integer);
procedure SetMax(Value: Integer);
procedure SetFrequency(Value: Integer);
procedure SetTickStyle(Value: TTickStyle);
procedure SetTickMarks(Value: TTickMark);
procedure SetLineSize(Value: Integer);
procedure SetPageSize(Value: Integer);
procedure SetThumbLength(Value: Integer);
procedure SetSliderVisible(Value: Boolean);
procedure SetSelStart(Value: Integer);
procedure SetSelEnd(Value: Integer);
procedure UpdateSelection;
procedure CNHScroll(var Message: TWMHScroll); message CN_HSCROLL;
procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
procedure CNVScroll(var Message: TWMVScroll); message CN_VSCROLL;
procedure WMEraseBkGnd(var Message: TWMEraseBkGnd); message WM_ERASEBKGND;
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure CreateWnd; override;
procedure DestroyWnd; override;
procedure Changed; dynamic;
public
constructor Create(AOwner: TComponent); override;
procedure SetTick(Value: Integer);
published
property Align;
property Anchors;
property BorderWidth;
property Ctl3D;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property Constraints;
property LineSize: Integer read FLineSize write SetLineSize default 1;
property Max: Integer read FMax write SetMax default 10;
property Min: Integer read FMin write SetMin default 0;
property Orientation: TTrackBarOrientation read FOrientation write SetOrientation default trHorizontal;
property ParentCtl3D;
property ParentShowHint;
property PageSize: Integer read FPageSize write SetPageSize default 2;
property PopupMenu;
property Frequency: Integer read FFrequency write SetFrequency default 1;
property Position: Integer read FPosition write SetPosition default 0;
property SliderVisible: Boolean read FSliderVisible write SetSliderVisible default True;
property SelEnd: Integer read FSelEnd write SetSelEnd default 0;
property SelStart: Integer read FSelStart write SetSelStart default 0;
property ShowHint;
property TabOrder;
property TabStop default True;
property ThumbLength: Integer read GetThumbLength write SetThumbLength default 20;
property TickMarks: TTickMark read FTickMarks write SetTickMarks default tmBottomRight;
property TickStyle: TTickStyle read FTickStyle write SetTickStyle default tsAuto;
property Visible;
property OnContextPopup;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnStartDock;
property OnStartDrag;
end;
Dürfte schwierig werden, aus so abstraktem Zeug etwas zusammenzubauen und dazu zwei verschiedene Komponenten zu verwenden. 8)