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

Вниз

CheckListBox с Columns = 2 без Horizontal Scroll   Найти похожие ветки 

 
Дмитрий   (2009-03-16 15:38) [0]

Доброго времени суток, уважаемые.
Имею на панели
object CheckListBox1: TCheckListBox
           Left = 8
           Top = 24
           Width = 417
           Height = 102
           BorderStyle = bsNone
           Columns = 2
           Flat = False
           ItemHeight = 17
           Items.Strings = (
             "Аааааааааааааааааа"
             "Бббббббббббббббббб"
             "Вввввввввввввввввв"
             "Гггггггггггггггггггггггг"
             "Дддддддддддддддддд"
             "Ееееееееееееееееее"
             "Жжжжжжжжжжжжж"
             "Зззззззззззззззззззз"
             "Ииииииииииииииииии"
             "Кккккккккккккккккк"
             "Лллллллллллллллллл")
           ParentColor = True
           Style = lbOwnerDrawFixed
           TabOrder = 0
Собственно, не хочется видеть Horizontal Scroll, а "сблизить" колонки. Есть конечно варианты : сделать строки короче, увеличить With, использовать несколько CheckBox... Не подходят, по некоторым причинам.


 
немо2   (2009-03-16 16:06) [1]

А в runtime тоже есть скрол?
в D7 только в дизайне, в рантайме без скрола показывает


 
Дмитрий   (2009-03-16 19:53) [2]

Height увеличиваю, Scroll исчезает. Но все равно между колонками  расстояние (навскидку) 10-12 символов. И строки из второй колонки обрезаются. Не есть хорошо. Согласен на OwnerDraw. Но как ? Сам ручками ни разу не делал...


 
Дмитрий   (2009-03-17 10:16) [3]

Нашел в FAQ для StringGrid. Не то ?

Можно ли сделать так чтобы TStringGrid автоматически изменял ширину колонок, чтобы вместить самую длинную строчку в колонке?

procedure AutoSizeGridColumn(Grid : TStringGrid; column : integer);var    i : integer;    temp : integer;    max : integer;begin    max := 0;    for i := 0 to (Grid.RowCount - 1) do    begin        temp := Grid.Canvas.TextWidth(grid.cells[column, i]);        if temp > max then max := temp;    end;    Grid.ColWidths[column] := Max + Grid.GridLineWidth + 3;end;procedure TForm1.Button1Click(Sender: TObject);begin    AutoSizeGridColumn(StringGrid1, 1);end;


Комментарий от Сергея (right_wrist@mail.ru)
Автосайз колонок и высоты рядов проще сделать так, наверное:


procedure WriteToCell(Sender :TStringGrid; ACol, ARow :integer; Value :variant);var  Len: TSize;begin with Sender do begin Cells[ACol, ARow] := value; Win32Check(GetTextExtentPoint32(Canvas.Handle, Pchar(Cells[ACol, ARow]),                Length(Cells[ACol, ARow]), Len)); if Len.cx > ColWidths[ACol] then ColWidths[ACol] := Len.cx+6; if Len.cy > RowHeights[ARow] then RowHeights[ARow] := Len.cy+2; end;end;


 
Дмитрий   (2009-03-17 10:17) [4]

Уп-с... Вроде бы CODE вставлял при ответе... Видимо что-то у кого-то с генами не то...


 
Дмитрий   (2009-03-18 07:37) [5]

Up.


 
Дмитрий   (2009-03-20 19:24) [6]

Всем спасибо за ответы, видимо очень сложный вопрос задал. Надо было про внедрение в чужие процессы или взаимодействие нескольких потоков задать...
Кинул на панель 11 CheckBox. Тема закрыта.



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

Форум: "Начинающим";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
15-1236147118
Dennis I. Komarov
2009-03-04 09:11
2009.05.03
из avi -> vaw(mp3,...)


15-1236073702
Юрий
2009-03-03 12:48
2009.05.03
С днем рождения ! 29 февраля 2009


2-1237739173
dron9999
2009-03-22 19:26
2009.05.03
Как в мемо удалять текст по 1-й букве с концa


4-1208939351
Дмитрий С
2008-04-23 12:29
2009.05.03
Как получить Handle?


15-1234853071
24ruswebmaster
2009-02-17 09:44
2009.05.03
This is a multi-part message in MIME format





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский