Delphi: TCoolBar + TToolBar + TEdit + TCheckBox - PullRequest
1 голос
/ 01 июля 2011

Как разместить панель инструментов слева от CoolBar, Edit - по центру, CheckBox - справа?

Я пытаюсь сделать это в течение 2 часов, и я не могу :( Элементы управления отстают от других или имеют ширину как CoolBar.

enter image description here

Спасибо!

Ответы [ 2 ]

4 голосов
/ 01 июля 2011

Скриншот того, как должен выглядеть ваш дизайн, может помочь, но размещение их на отдельном TPanels дает вам больше свободы в выборе.

.pas File

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, ToolWin, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    CoolBar1: TCoolBar;
    Panel2: TPanel;
    tlb1: TToolBar;
    Edit1: TEdit;
    CheckBox1: TCheckBox;
    btnToolbar: TToolButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.

.dfm Файл

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 348
  ClientWidth = 643
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Panel1: TPanel
    Left = 0
    Top = 0
    Width = 348
    Height = 348
    Align = alLeft
    Caption = 'Panel1'
    TabOrder = 0
    ExplicitLeft = 458
    ExplicitHeight = 185
    object CoolBar1: TCoolBar
      Left = 1
      Top = 1
      Width = 346
      Height = 75
      Bands = <>
      ExplicitLeft = 96
      ExplicitTop = 136
      ExplicitWidth = 150
    end
  end
  object Panel2: TPanel
    Left = 348
    Top = 0
    Width = 295
    Height = 348
    Align = alClient
    Caption = 'Panel2'
    TabOrder = 1
    ExplicitLeft = 432
    ExplicitTop = 128
    ExplicitWidth = 185
    ExplicitHeight = 41
    object tlb1: TToolBar
      Left = 1
      Top = 1
      Width = 293
      Height = 29
      Caption = 'tlb1'
      TabOrder = 0
      ExplicitLeft = 72
      ExplicitTop = 160
      ExplicitWidth = 150
      object btnToolbar: TToolButton
        Left = 0
        Top = 0
        Caption = 'btnToolbar'
        ImageIndex = 0
      end
    end
    object CheckBox1: TCheckBox
      Left = 80
      Top = 166
      Width = 97
      Height = 17
      Caption = 'CheckBox1'
      TabOrder = 1
    end
  end
  object Edit1: TEdit
    Left = 280
    Top = 164
    Width = 121
    Height = 21
    TabOrder = 2
    Text = 'Edit1'
  end
end
2 голосов
/ 01 июля 2011

Я думаю, что вы ищете Break свойство CoolBand:

Свойство Break (TCoolBand) заставляет диапазон начинаться с новой строки. Если Break равен true (по умолчанию), группа начинает новую строку в левой части элемента управления TCoolBar. Если Break равен false, полоса продолжается на той же линии, что и ее предшественник.

Итак, шаги, чтобы получить макет вашего изображения:

  • Поместите CoolBar в форму (по умолчанию выровненный по верху) и добавьте ему дополнительную высоту,
  • Установите для FixedOrder значение True, Добавить панель инструментов, Edit и CheckBox на CoolBar,
  • Открыть редактор коллекции полос,
  • Набор каждого элемента коллекции CoolBand, свойство Break которого имеет значение False,
  • Перетащите ширину независимых CoolBands (или установите свойство width каждого),
  • Установите для CoolBar.AutoSize значение True.

enter image description here

...