Delphi XE2のバージョンがないようで、一部のアセンブリを使用しているように見えるので、Toolbar2000を通常のツールバーに切り替えることを試みています。私がする必要がなければ本当にそれに対処したい。 (と私は本当にDelphiのツールバーでフェードインの効果が好きです)Delphiのツールボタン(TToolbutton)のストリップ効果
しかし、私は好きではないのは、ボタンの背景は、青いボタンの定期的な治療を取得することです。私は色を変更する方法を知っていますが、私はちょうど色の変更を行うことはできませんし、境界線をボタンの周りに塗っていない?
私は 'OnAdvancedCustomDrawButton'を実装しましたが、使用可能なフラグが正しく機能していないようで、グラデーションの色とホットトラックの色とどうやって相互作用するのか分かりません。奇妙な黒の背景。ここで
は、私はツールバー
ToolBar1 := TToolBar.Create(Self);
ToolBar1.DoubleBuffered := true;
ToolBar1.OnAdvancedCustomDrawButton := Toolbar1CustomDrawButton;
ToolBar1.Transparent := false;
ToolBar1.Parent := Self;
ToolBar1.GradientEndColor := $7ca0c2; //RGB(194, 160, 124);
ToolBar1.GradientStartColor := $edeeed; //RGB(237, 238, 124);
ToolBar1.Indent := 5;
ToolBar1.Images := Normal;
ToolBar1.DrawingStyle := dsGradient;
ToolBar1.HotImages := Over;
ToolBar1.AutoSize := True;
ToolBar1.Visible := False;
を作成しています方法ですと、ここで私は(ループ内)ボタンを作成しています方法は次のとおりです。私のAdvancedCustomDrawButton機能をここ
ToolButton := TToolButton.Create(ToolBar1);
ToolButton.Parent := ToolBar1;
ToolButton.ImageIndex := ToolButtonImages[Index].ImageIndex;
ToolButton.OnClick := ToolButtonClick;
としています
procedure TMyForm.Toolbar1CustomDrawButton(Sender: TToolBar; Button: TToolButton;
State: TCustomDrawState; Stage: TCustomDrawStage;
var Flags: TTBCustomDrawFlags; var DefaultDraw: Boolean);
begin
Flags := [tbNoEdges, tbNoOffset];
DefaultDraw := True;
end;
それはあなたが親オブジェクトから継承することができますDelphiのため、 initialize()の後でオブジェクトのデクレレーションのコードサンプルがあるか、オブジェクトをインスタンス化する方法が好きな場合は、そこをオーバーライドして値を設定できます。 – MethodMan
OK、自分のコードを追加しましたが、必ずしも役立つとは思わないが、何を上書きしますか?私は自分のTToolButtonを作ることは助けになるとは思わない。なぜなら、既存のペイント機能は、私が取り除こうとしているものがどこにあってもないからだ。たぶん私は 'defaultdraw:= false'を設定し、すべて自分で行う必要があります。 –
ここにToolBar1:= TToolBar.Create(Self);私はあなたがそのインスタンスを変えたいと思っています。また、私は所有者が誰であるかわかりません。親を参照してください。基本的に、オブジェクトを作成したい、親を割り当てる、所有者がコントロールまたはコントロールが存在するパネルになる、そのプロパティ/私はこのラップトップにデルファイを持っていません。それは私の他のものです。 – MethodMan