Помощь - Поиск - Пользователи - Календарь
Полная версия: checkbox
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
manhunt
Здрастуйте. Вопрос у меня. Мне нужно заполнить массив с помощю checkbox'ов(только 2 значения 1 0). Как зделать так чтоб было перепресваивание числа в масив тойсть: нажали примером на 1 а потом передумали и нажали на 0 как зделать чтоб 1 переприсвоилась на 0, и на оборот......
P.S массив на 16 значений.
volvo
На форме - кнопка и TMemo (желательно - в правой части формы, слева будут чекбоксы). Код - вот такой:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Test: TButton;
procedure TestClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure MyClick(Sender : TObject);
end;

var
Form1: TForm1;

const Size = 16;
var
Arr : array[1 .. Size] of 0 .. 1;

implementation

{$R *.dfm}

// Это просто тест, проверка, правильно ли работает
procedure TForm1.TestClick(Sender: TObject);
var i : Integer;
begin
Memo1.Clear;
for i := 1 to Size do
begin
Memo1.Lines.Add(IntToStr(Arr[i]));
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i : Integer;
begin
for i := 1 to Size do
begin
with TCheckBox.Create(Form1) do
begin
Parent := Form1;
Caption := IntToStr(i);
Left := 20;
Top := 20 + Pred(i) * 20;
Tag := i;
OnClick := MyClick;
end;
end;
end;

procedure TForm1.MyClick(Sender : TObject);
var Index : Integer;
begin
Index := (Sender as TCheckBox).Tag;
Arr[Index] := 1 - Arr[Index];
end;

end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.