Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

Как написать у CheckBox текст в две строки?   Найти похожие ветки 

 
Buster ©   (2004-07-06 19:16) [0]

Из-за нехватки места на форме необходимо написать текст в CheckBox.Caption в две строки. Использование #13#10 не помогает - на форме отображается просто две толстых палки. Хотя в свойстве Hint такой фокус проходит.
Как это можно сделать?

Спасибо.


 
GuAV ©   (2004-07-06 23:34) [1]

ИМХО, стандартных многострочных кнопок нет

так что юзай:
DrawFrameControl
DrawFocusRect
TextOut

А ваще забей, кинь под него лабел...


 
GuAV ©   (2004-07-06 23:36) [2]

Как еще вариант - чекбокс без подписи и лабел рядом и DrawFocusRect по необходимости. Можно например сделать TFocusLabel...


 
bulanov   (2004-07-07 02:54) [3]

Удалено модератором
Примечание: Выбирайте выражения


 
Agent13 ©   (2004-07-07 10:30) [4]


> bulanov   (07.07.04 02:54) [3]

Во-первых, хамить не надо, а во-вторых, какой WordWrap у чекбокса?


 
ssk ©   (2004-07-07 11:34) [5]

есть у чекбокса WordWrap, так же как и у радиокнопки, но начиная с версии 7


 
wisekaa ©   (2004-07-07 11:43) [6]


> [4] Agent13 ©   (07.07.04 10:30)


Ты не указал версию Delphi в 7 точно есть WordWrap.


 
ssk ©   (2004-07-07 11:47) [7]

для тех, кто сомневается. скриншот 240 килобайт

http://ucad.pisem.net/CheckBox_set_multi_line.bmp


 
Buster ©   (2004-07-07 13:38) [8]

ясно, у меня 5-я версия пока.


 
clickmaker ©   (2004-07-07 17:48) [9]

type
 TMultiCheckBox = class(TCheckBox)
 private
   fMultiLine: Boolean;
   procedure SetMultiLine(Value: Boolean);
 protected
   procedure CreateParams(var Params: TCreateParams); override;
 public
   constructor Create(AOwner: TComponent); override;
 published
   property MultiLine: Boolean read fMultiLine write SetMultiLine default True;
 end;

constructor TMultiCheckBox.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 fMultiLine:=true;
end;

procedure TMultiCheckBox.SetMultiLine(Value: Boolean);
begin
 if fMultiLine<>Value then
 begin
   fMultiLine:=Value;
   RecreateWnd;
 end;
end;

procedure TMultiCheckBox.CreateParams(var Params: TCreateParams);
begin
    inherited CreateParams(Params);
    if MultiLine then Params.Style:=Params.Style or BS_MULTILINE or BS_TOP
                 else Params.Style:=Params.Style and not BS_MULTILINE and not BS_TOP;
end;


 
TUser ©   (2004-07-07 18:15) [10]


> в 7 точно есть WordWrap

Выглядит там чекбокс просто ужасно. Если строчек 5 текста, например. Лучше Label кинуть.


 
OSokin   (2004-07-08 20:02) [11]

Сделай TMemo, но ограничь количество строк двумя (или одной)



Страницы: 1 вся ветка

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.068 c
14-1089013165
Александр Иванов
2004-07-05 11:39
2004.07.25
Свершилось :).


3-1088746612
TchertenOk
2004-07-02 09:36
2004.07.25
Как сохранить данные


14-1088954531
Knight
2004-07-04 19:22
2004.07.25
Кто чем солнечные ожоги лечит?


4-1087207977
bon
2004-06-14 14:12
2004.07.25
Свойство папки


6-1084312860
BiBle
2004-05-12 02:01
2004.07.25
HTTP- запрос в Delphi, его проведение и обработка !