Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

Как написать у 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.036 c
1-1089310072
Shc
2004-07-08 22:07
2004.07.25
Работа с XML (и Schema)


14-1089207209
Алхимик
2004-07-07 17:33
2004.07.25
Опрос :)


4-1082826122
OSokin
2004-04-24 21:02
2004.07.25
JournalRecord


3-1088935800
white
2004-07-04 14:10
2004.07.25
Как создать БД с другим именем пользователя и паролем?


14-1088782505
Baron
2004-07-02 19:35
2004.07.25
Губернатор - клоун





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский