Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
1-74775
Влад2
2002-12-10 16:28
2002.12.23
Команда DOS (<B>copy</B>, <B>del</B>, ...) без окна?


3-74564
_BasiL_
2002-12-04 13:21
2002.12.23
Переиндексация DBF


1-74772
danilka
2002-12-11 10:09
2002.12.23
SimpleXML - как пользоваться :))


3-74582
Сантёр
2002-12-04 18:10
2002.12.23
RxDBGrid


8-74855
lexusU
2002-09-06 09:55
2002.12.23
Где взять исходник DirectSound ?




   Наверх