Delphi练习二

unit Unit1;

interface

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

type
  TfrmVoter = class(TForm)
    edtSelectedCities: TEdit;
    grpCandidateCities: TGroupBox;
    rgSelectedCitiesCount: TRadioGroup;
    btnSubmit: TButton;
    btnExit: TButton;
    chkBeijing: TCheckBox;
    chkShanghai: TCheckBox;
    chkShenzhen: TCheckBox;
    chkGuangzhou: TCheckBox;
    chkWuhan: TCheckBox;
    chknanjing: TCheckBox;
    btnReset: TButton;
    btnInverse: TButton;
    procedure btnExitClick(Sender: TObject);
    procedure btnSubmitClick(Sender: TObject);
    procedure frmVoterShow(Sender: TObject);
    procedure rgSelectedCitiesCountClick(Sender: TObject);
    procedure btnResetClick(Sender: TObject);
    procedure btnInverseClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmVoter: TfrmVoter;

implementation

{$R *.dfm}
//退出按钮点击事件处理过程

procedure TfrmVoter.btnExitClick(Sender: TObject);
begin
  if MessageBox(Handle, '确定退出吗?', '提示信息',MB_OKCANCEL) = 1 then
  begin
    Close;
  end;
end;
//提交按钮点击事件处理过程

procedure TfrmVoter.btnSubmitClick(Sender: TObject);
var
  i,count: Integer;
  //选择的所有城市名称
  SelectedCities: string;
  //候选城市
  chkCity: TCheckBox;
begin
  if rgSelectedCitiesCount.ItemIndex = -1 then
  begin
    //   MessageBox(Handle, '请选择城市数目', '提示信息', MB_OK);
    ShowMessage('请选择城市数目');
    Exit;
  end
  else
  begin
    grpCandidateCities.Enabled := True;
  end;
  count := 0;
  for i := 0 to grpCandidateCities.ControlCount - 1 do
  begin
    chkCity := TCheckBox(grpCandidateCities.Controls[i]);
    if chkCity.Checked then
    begin
      count := count + 1;
      if count <=
        StrToInt(rgSelectedCitiesCount.Items.Strings[rgSelectedCitiesCount.ItemIndex]) then
      begin
        SelectedCities := SelectedCities + chkCity.Caption + ' ';
      end
      else
      begin
        SelectedCities := '您选择的城市个数太多了';
        break;
      end;
    end;
  end;
  if count = 0 then
  begin
    //    MessageBox(Handle, '请选择候选城市', '提示信息', MB_OK);
    ShowMessage('请选择候选城市');
  end;
  edtSelectedCities.Text := SelectedCities;
end;

procedure TfrmVoter.frmVoterShow(Sender: TObject);
begin
  //rgSelectedCitiesCount.ItemIndex := 0;
end;
//选择城市个数点击事件处理过程

procedure TfrmVoter.rgSelectedCitiesCountClick(Sender: TObject);
begin
  grpCandidateCities.Enabled := True;
end;
//重置按钮点击事件处理过程

procedure TfrmVoter.btnResetClick(Sender: TObject);
var
  i: Integer;
begin
  rgSelectedCitiesCount.ItemIndex := 0;
  for i := 0 to grpCandidateCities.ControlCount - 1 do
  begin
    TCheckBox(grpCandidateCities.Controls[i]).Checked := False;
  end;
end;
//反选按钮点击事件处理过程

procedure TfrmVoter.btnInverseClick(Sender: TObject);
var
  i: Integer;
  chk: TCheckBox;
begin
  for i := 0 to grpCandidateCities.ControlCount - 1 do
  begin
    chk := TCheckBox(grpCandidateCities.Controls[i]);
    chk.Checked := not chk.Checked;
  end;
end;

end.
 


运行结果截图:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值