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

Вниз

Как лучше на форме ввести матрицу логических значений?   Найти похожие ветки 

 
oddboy ©   (2002-12-11 08:02) [0]

Задача такая:

На форме находятся поле ввода размера квадратной матрицы и кнопка, при нажатии на которую необходимо сгенерировать на форме матрицу полей ввода (Edit, а лучше CheckBox, поскольку значения логические)заданного размера.

Можно ли создать динамический массив с элементами CheckBox?


 
Юрий Зотов ©   (2002-12-11 09:37) [1]

var
CheckBoxArray: array of array of TCheckBox;
M: array of array of boolean; // Сама матрица

procedure TForm1.Button1Click(Sender: TObject);
var
i, j: integer;
begin
FormDestroy(nil);
SetLength(CheckBoxArray, N, N); // N - размер матрицы
for i := 0 to N - 1 do
for j := 0 to N - 1 do
begin
CheckBoxArray[i, j] := TCheckBox.Create(Self);
with CheckBoxArray[i, j] do
begin
Parent := Self;
Caption := "";
SetBounds(j * Height, i * Height, Height, Height);
Checked := M[i, j];
OnClick := CheckBoxClick
end
end
end;

procedure TForm1.FormDestroy(Sender: TObject); // OnDestroy
var
i, j: integer;
begin
if CheckBoxArray <> nil then
begin
for i := 0 to High(CheckBoxArray) do
for j := 0 to High(CheckBoxArray[i]) do
CheckBoxArray[i, j].Free;
CheckBoxArray := nil
end
end;

procedure TForm1.CheckBoxClick(Sender: TObject);
var
i, j: integer;
begin
if CheckBoxArray <> nil then
for i := 0 to High(CheckBoxArray) do
for j := 0 to High(CheckBoxArray[i]) do
if CheckBoxArray[i, j] = TCheckBox(Sender) then
begin
M[i, j] := CheckBoxArray[i, j].Checked;
Exit
end
end;


 
Anatoly Podgoretsky ©   (2002-12-11 09:41) [2]

Млжно еще взглянуть в сторону TSpeedButton это если нужна красота



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
3-74557
ton2
2002-12-04 12:00
2002.12.23
Запись Null-значения в поле boolean


14-74955
trotski
2002-12-03 06:22
2002.12.23
Это у меня или все рухнуло?


14-74996
DrFaust
2002-12-04 12:08
2002.12.23
Multi-Edit


1-74702
Жорик
2002-12-13 17:33
2002.12.23
интерфейс ХР в своей программе под 98/2000-м Windows


3-74627
cher_gvf
2002-12-03 14:35
2002.12.23
Как в Oracle записать/прочитать BLOB-поле?