☆TToolButtonの実行時作成&削除

あまり使うことはないと思うのですが、ファイルにキャプション一覧を登録しておき、それを読み込んでToolButtonに設定する処理です。 ポイントは、ToolBarのAutoSizeとShowCaptionを一時的に無効にすることです。この処理により、キャプションの入れ替え時に一瞬ちらつきますが、この処理を入れないと、ボタンが設定されていく様子が見えるぐらい遅くなります。

procedure TForm1.Button1Click(Sender: TObject);
var
  SL: TStringList;
  S: String;
  I: Integer;
  TB: TToolButton;
begin
  ToolBar1.AutoSize := False;
  ToolBar1.ShowCaptions := False;
  try
    // 全てのボタンを削除します。
    for I := ToolBar1.ButtonCount -1 downto 0 do
      ToolBar1.Buttons[I].Free;

    SL := TStringList.Create;
    try
      // キャプション用リストを読み込みます。
      S := ExtractFilePath(Application.Exename) + 'List.txt';
      SL.LoadFromFile(S);
      for I := SL.Count - 1 downto 0 do
      begin
        // TToolButtonの生成
        TB := TToolButton.Create(Self);
        TB.Parent := ToolBar1;
        TB.Caption := SL[I];
        TB.OnClick := nil; // 必要なイベントを設定
      end;
    finally
      SL.Free;
    end;
  finally
    ToolBar1.ShowCaptions := True;
    ToolBar1.AutoSize :=  True;
  end;
end;

|

その他のカテゴリー

ADO | ADT | API | ArrayList | ASP.NET | BDE | BDP.NET | BdpConnection | Borland Developer Studio 2006 | CAPICOM | class | ClipBoard | CodeEditor | Convert.ToString | Custom component | DBExpress | Delphi 2005 | Delphi 2006 | Delphi 2007 | Delphi XE2 | Delphi7 | Delphi8 | Device Driver | Dialog | Docking | DocuWorks | Docuworks SDK | Drag&Drop | Evernote | EXCEL | Firebird | FireMonkey | Game | General | Generics | Google Earth COM API | Google Maps | Google SketchUp | Graphic | IDE | Imm | Indy | InstallAware Express6 | InterBase Admin | JWW | Microsoft SQL Server | MyBase | OnMouseDown | Oracle XE | Paradox | PreviewHandler | PrintDialog | PrintPreviewDialog | PropertyGrid | PSDファイル | Ribbon Controls | RichTextBox | Servers | SubClass | TAction | TActionList | TAnimate | TButton | TCategoryButtons | TClientDataSet | TComboBox | TComboBoxEx | TCustomEdit | TDBGrid | TDockTabSet | TDrawGrid | TEdit | TExcelApplication | TFont | TForm | third party | TImage | TLabel | TList | TListBox | TListView | TMemo | TOpenDialog | TOutlookApplication | TPageControl | TPanel | TRichEdit | TShellResources | TStringGrid | TTabControl | TToolBar | TToolButton | TTreeView | TWebBrowser | Update | VCL Styles | WinInet | XE2 | XPman | オープン配列パラメータ | グループ化 | トランスレーションマネージャー | ファイル処理 | ファイル名処理 | 動的配列 | 投票 | 文字列処理 | 日本語入力 | 暗号 | | 音声合成利用