Главная страница
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.017 c
14-74967
начинающий програмер
2002-12-03 11:19
2002.12.23
Надеюсь на вашу помощь


3-74603
-=Sergeante=-
2002-12-04 10:56
2002.12.23
TpFIBDataSet + master-detail


1-74835
Fantom
2002-12-12 08:54
2002.12.23
RichEdit как установить позицию курсора?


14-74906
IronHawk
2002-11-13 00:56
2002.12.23
UBPFD - бесплатная база готовых решений для Delphi!


1-74837
Groove_
2002-12-12 10:45
2002.12.23
tcp/ip