Советы по Delphi

         

Создание ListBox во время выполнения программы


Установка выравнивания ListBox на alLeft вызывает изменение размеров ListBox при любом изменении размеров формы. Установка ширины происходит очень легко (помните о том, что ширина Width, которую вы видите в правой части строки, является свойством Width формы).

Количество элементов, хранимых ListBox, ограничено только доступной памятью.



    procedure TForm1.CreateListBox;
var
LB : TListBox; begin
LB := TListBox.Create; LB.Align := alLeft; LB.Width := Width div 2; end;

Вот логика динамического создания ListBox и изменения его размера при изменения размеров формы. Я надеюсь, что помог вам. Также я подозреваю, что данные ListBox ограничены 32 килобайтами.

    unit Unit1;

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls  { вам нужно это для ListBox }  ;
type
TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormResize(Sender: TObject); private { Private declarations } public { Public declarations } end;
var
Form1: TForm1; listbox: TListBox ;
implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
listbox := TListBox.Create(self) ; listbox.Parent := self ; listbox.Top := 0 ; listbox.Left := 0 ; listbox.Width := self.Width div 2 ; listbox.Height := self.Height div 2 ; listbox.items.add('тест 1') ; listbox.items.add('тест 2') ; { и т.д, и т.п. ... } end;

procedure TForm1.FormResize(Sender: TObject);
begin
listbox.Width := self.Width div 2 ; listbox.Height := self.Height div 2 ; end;
end.

[001492]



Содержание раздела