Главная страница
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.016 c
14-74914
Step[B.M.]
2002-12-01 15:36
2002.12.23
снять защиту Print/Select c файла в формате pdf - не удается


7-75012
antonioxxx
2002-10-18 16:17
2002.12.23
SetFileTime


14-74977
Anatoly Podgoretsky
2002-12-02 07:36
2002.12.23
Именинники 2 декабря


3-74574
OlegLeontev
2002-12-03 17:07
2002.12.23
подсказать максимальное количество записей в Paradox 7


1-74769
GOD
2002-12-10 23:19
2002.12.23
Как создать свой компонент