Einzelnen Beitrag anzeigen

RaSoWa1

Registriert seit: 1. Jun 2006
Ort: Halle/Saale
140 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Sonderbares verhalten von Align in eigener Komponente

  Alt 30. Mär 2011, 09:41
Hallo Frank,

Danke für deine Hilfe.

Hi Klaus,

ich kann deinen Code auf Grund fehlender Unit' s nicht kompilieren und testen.
Ich habe deshalb in einem geänderten Code, statt der von TStringGrid abgeleiteten Komponente TFilterGrid, TStringGrid verwendet. Und es hat eigenartigerweise plötzlich funktioniert. Also muß irgendwas bei TFilterGrid nicht stimmen. Aber was? Warum verhält sich TFilterGrid zur Entwurfszeit anders als TStringGrid?
TFilterGrid ist folgendermaßen deklariert:
Delphi-Quellcode:
  TFilterGrid = class(TStringGrid)
  private
.....
    procedure Change; dynamic;
  public
    constructor Create(aOwner: TComponent); override;
    destructor Destroy; override;

    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
    procedure DrawCell(ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); override;
    function SelectCell(ACol, ARow: LongInt): boolean; override;
    function GetEditText(ACol, ARow: Longint): string; override;
    procedure SetEditText(ACol, ARow: Longint; const Value: string); override;
......


constructor TFilterGrid.Create(aOwner: TComponent);
begin
  inherited Create(aOwner);
..... // es werden nur Variable initiert.

end;
Ich würde die Komponenten im Constructor nur erzeugen und eine Methode PositionControls einführen.
Diese könnte man in der überschriebenen Methode CreateWnd nach dem Inherited aufrufen.
Dann sollte das Fensterhandle verfügbar sein.
Ich habe es dann so gemacht und es funktioniert.

Gruß Klaus.
Klaus
  Mit Zitat antworten Zitat