Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi SpeedButton Alignment beibringen? (https://www.delphipraxis.net/138802-speedbutton-alignment-beibringen.html)

Grolle 17. Aug 2009 21:54


SpeedButton Alignment beibringen?
 
Hallo,

ich versuche gerade einem Speedbutton ein Alignment beizubringen. Allerdings ist CreateParams nicht in der Basisklasse verhanden. Was nehme ich denn da?:
Delphi-Quellcode:
unit AlignSpeedButton;

interface

uses
  Windows, Classes, Controls, StdCtrls, Buttons;

type
  TAlignSpeedButton = class(TSpeedButton)
  private
    FAlignment: TAlignment;
    procedure SetAlignment (Value: TAlignment);
  protected
    procedure CreateParams(var Params: TCreateParams);override;
  public
    { Public-Deklarationen }
  published
    property Alignment: TAlignment read FAlignment write SetAlignment;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('TEST', [TAlignSpeedButton]);
end;

procedure TAlignSpeedButton.SetAlignment(const Value: TAlignment);
begin
  if FAlignment <> Value then
    begin
      FAlignment := Value;
      Invalidate;
    end;
end;

end.
Viele Grüße ...

[edit=mkinzler]Thread-Titel konkretisiert Mfg, mkinzler[/edit]

DeddyH 17. Aug 2009 22:05

Re: SpeedButton Align beibringen?
 
Wenn ich nicht komplett daneben liege, steht CreateParams nur bei Nachfahren von TWinControl zur Verfügung. TSpeedButton ist aber von TGraphicControl abgeleitet, so dass sich die Methode hier nicht nutzen lässt (es gibt ja kein Fensterhandle). Daher fürchte ich fast, Du musst die Paint-Methode neu implementieren.

Garfield 17. Aug 2009 22:58

Re: SpeedButton Align beibringen?
 
Zitat:

Zitat von Grolle
ich versuche gerade einem Speedbutton ein Alignment beizubringen.

Dann musst Du die procedure TSpeedButton.Paint in der Unit Buttons und ggfs noch mehr erweitern.

alzaimar 18. Aug 2009 06:43

Re: SpeedButton Align beibringen?
 
Verwende ein ToolBar und schmeiss die TSpeedbuttons da rauf. Dann sind sie automatisch linksbündig. Speedbuttons sind nicht dafür gedacht, irgendwo ausgerichtet zu sein.

Alternativ könntest Du die Ausrichtung im Resize-Events des Containers programmieren, in dem sich die Speedbuttons befinden.

Hawkeye219 18. Aug 2009 07:57

Re: SpeedButton Align beibringen?
 
Moin alzaimar,

der Threadtitel ist irreführend, zumal ein TSpeedButton (zumindest in D2006) die Eigenschaft Align bereits veröffentlicht. Aus dem ersten Beitrag geht allerdings hervor, dass es hier um die Ausrichtung des Textes (Alignment) geht. Vielleicht sollte man den Titel für spätere Suchanfragen ändern.

Gruß Hawkeye

mkinzler 18. Aug 2009 07:59

Re: SpeedButton Alignment beibringen?
 
Zitat:

Vielleicht sollte man den Titel für spätere Suchanfragen ändern.
Habe ich erledigt

alzaimar 18. Aug 2009 08:01

Re: SpeedButton Align beibringen?
 
Hi Hawkeye219,

SelfOwned :oops:

Danke für die Aufklärung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz