ListBox, CheckListBox, DBLookUp, Другие списки
После того, как поместите TListBox на форму, необходимо изменить свойство Style в TListBox на lbOwnerDrawFixed. Если не изменить свойство Style, то событие OnDrawItem никогда не вызовется. Теперь поместите следующий код в обработчик события OnDrawItem Вашего TListBox:
- Подробности
- Родительская категория: VCL
- Категория: ListBox, CheckListBox, DBLookUp, Другие списки
Следующая функция имеет один параметр в виде объекта TStrings и печатает каждую строку на принтер, установленный в системе по умолчанию. Так как эта функция использует TStrings, то она будет работать с различными компонентами, которые содержат свойство типа TStrings, такие как TDBMemo или TOutline:
- Подробности
- Родительская категория: VCL
- Категория: ListBox, CheckListBox, DBLookUp, Другие списки
Класс TListbox содержит свойство TabWith:
Code: |
ListBox1.TabWith := 50; ListBox1.Items.Add('Column1'^I'Column2'); // ^I это символ Tab |
- Подробности
- Родительская категория: VCL
- Категория: ListBox, CheckListBox, DBLookUp, Другие списки
Автор: Bjarne Winkler
Пример показывает как можно сохранять в файл содержимое TCheckListBox и соответственно восстанавливать из файла ранее сохранённые состояния Чекбоксов.
На самом деле всё просто. Метод SaveToFile просто напросто сохраняет в обычном текстовом виде значения чекбоксов. Но предварительно нам нужно преобразовать состояния чекбоксов в текстовый вид, соответственно "1" или "0".
Далее задача метода LoadFromFile считать эти значения и преобразовать сначало в числовой вид, а затем в логический (true или false).
- Подробности
- Родительская категория: VCL
- Категория: ListBox, CheckListBox, DBLookUp, Другие списки
Для этого необходимо установить в инспекторе объектов поле Style в lbOwnerDrawFixed, при фиксированной высоте строки, или в lbOwnerDrawVariable, при переменной, и установить собственный обработчик события для OnDrawItem. В этом обработчике и надо рисовать растровое изображение.
Пример:
Рисуются изображения размером 32*16 (размер стандартного глифа для Delphi). Очень полезно при поиске нужного изображения для кнопок!
Установить в инспекторе объектов для ListBox поле ItemHeight = 19, а поле Color = clBtnFace.
- Подробности
- Родительская категория: VCL
- Категория: ListBox, CheckListBox, DBLookUp, Другие списки
Автор: Maarten de Haan
Надеюсь, что любители Delphi уже не один раз приукрашивали всякие ЛистБоксы и тому подобное. Автор исходника предлагает создать этот компонент своими силами.
Впрочем, Вы сами можете увидеть как можно играться со шрифтами в ListBox.
- Подробности
- Родительская категория: VCL
- Категория: ListBox, CheckListBox, DBLookUp, Другие списки
Свойство "selected" компонента ТListBox может быть использованно только если свойство MultiSelect установленно в True.
Если Вы работаете с ListBox'ом у которого MultiSelect=false то используйте свойство ItemIndex.
Code: |
procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.Add('1'); ListBox1.Items.Add('2'); {This will fail on a single selection ListBox} // ListBox1.Selected[1] := true; ListBox1.ItemIndex := 1; {This is ok} end; |
- Подробности
- Родительская категория: VCL
- Категория: ListBox, CheckListBox, DBLookUp, Другие списки
В Delphi компонент TListBox автоматически включает в себя вертикальный scrollbar. Полоска прокрутки появляется в том случае, если все элементы списка не помещаются в видимую область списка. Однако, list box не показывает горизонтального скролбара, когда ширина элементов превышает ширину списка. Конечно же существует способ добавить горизонтальную полосу прокрутки.
- Подробности
- Родительская категория: VCL
- Категория: ListBox, CheckListBox, DBLookUp, Другие списки
Code: |
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin With ListBox1 do begin If odSelected in State then Canvas.Brush.Color:=clTeal { твой цвет } else Canvas.Brush.Color:=clWindow; Canvas.FillRect(Rect); Canvas.TextOut(Rect.Left+2,Rect.Top,Items[Index]); end; end; |
Hе забудьте установить свойство Style у своего ListBox в lbOwnerDrawFixed или в
lbOwnerDrawVariable.
- Подробности
- Родительская категория: VCL
- Категория: ListBox, CheckListBox, DBLookUp, Другие списки
После того, как поместите TListBox на форму, необходимо изменить свойство Style в TListBox на lbOwnerDrawFixed. Если не изменить свойство Style, то событие OnDrawItem никогда не вызовется. Теперь поместите следующий код в обработчик события OnDrawItem Вашего TListBox:
- Подробности
- Родительская категория: VCL
- Категория: ListBox, CheckListBox, DBLookUp, Другие списки
Вот пример с TListbox на форме:
Code: |
type TForm1 = class(TForm) ListBox1: TListBox; procedure FormCreate(Sender: TObject); protected procedure WMDROPFILES (var Msg: TMessage); message WM_DROPFILES; private public end;
var Form1: TForm1;
implementation uses shellapi;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles(Form1.Handle, true); end;
procedure TForm1.WMDROPFILES (var Msg: TMessage); var i, amount, size: integer; Filename: PChar; begin inherited; Amount := DragQueryFile(Msg.WParam, $FFFFFFFF, Filename, 255); for i := 0 to (Amount - 1) do begin size := DragQueryFile(Msg.WParam, i , nil, 0) + 1; Filename:= StrAlloc(size); DragQueryFile(Msg.WParam,i , Filename, size); listbox1.items.add(StrPas(Filename)); StrDispose(Filename); end; DragFinish(Msg.WParam); end; |
- Подробности
- Родительская категория: VCL
- Категория: ListBox, CheckListBox, DBLookUp, Другие списки
Страница 1 из 3