unit untFunction;
interface
uses
........................;
function SelectForm(ss:TStrings=nil;bMul:boolean=False):string;
type
TEvent = class(TObject)
public
procedure MyBtnClick(Sender:TObject);
end;
implementation
uses
..............;
procedure TEvent.MyBtnClick(Sender:TObject);
var
i:integer;
sss:string;
AObject:TObject;
AForm:TForm;
Ardg:TradioGroup;
Achklist:TCheckListbox;
Abtn:TButton;
begin
if Sender is TButton then
begin
Abtn := Sender as TButton;
if Abtn.Parent is TForm then
begin
AForm := Abtn.Parent as TForm;
AObject := AForm.FindComponent('chkselect');
if AObject is TCheckListbox then
begin
Achklist := AObject as TCheckListbox;
for i := 0 to Achklist.Items.Count - 1 do
if Achklist.Checked[i] then
begin
if (Length(sss)>0) then sss := sss + ',';
sss := sss + IntToStr(i);
end;
MessageBox(Application.Handle,PAnsiChar(sss),'',MB_OK+MB_ICONINFORMATION);
end
else
begin
AObject := AForm.FindComponent('rdgselect');
if AObject is TradioGroup then
begin
Ardg := AObject as TradioGroup;
sss := IntToStr(Ardg.ItemIndex);
MessageBox(Application.Handle,PAnsiChar(sss),'',MB_OK+MB_ICONINFORMATION);
end;
end;
end;
end;
end;
function SelectForm(ss:TStrings=nil;bMul:boolean=False):string;
var
i:integer;
sss:string;
AEvent:TEvent;
AForm:TForm;
Ardg:TradioGroup;
Achklist:TCheckListbox;
Abtn:TButton;
begin
sss := '';
AForm := TForm.Create(nil);
AForm.Name := 'frmPublicSelect';
try
AForm.Width := 400;
AForm.Height := 320;
AForm.Position := poMainFormCenter;
Abtn := TButton.Create(AForm);
Abtn.Parent := AForm;
Abtn.Top := 250;
Abtn.Left := 60;
Abtn.Name := 'btnOK';
Abtn.Caption := 'OK';
Abtn.ModalResult := mrOK;
Abtn := TButton.Create(AForm);
Abtn.Parent := AForm;
Abtn.Top := 250;
Abtn.Left := 260;
Abtn.Name := 'btnCancel';
Abtn.Caption := 'Cancel';
Abtn.ModalResult := mrCancel;
Abtn := TButton.Create(AForm);
Abtn.Parent := AForm;
Abtn.Top := 250;
Abtn.Left := 160;
Abtn.Name := 'btnClick';
Abtn.Caption := 'Click';
Abtn.OnClick := AEvent.MyBtnClick;
if bMul then
begin
Achklist := TCheckListbox.Create(AForm);
Achklist.Parent := AForm;
Achklist.Align := alTop;
Achklist.Height := 240;
Achklist.Name := 'chkselect';
//Achklist.Items := ss;
Achklist.Items.Add('0');
Achklist.Items.Add('1');
Achklist.Items.Add('2');
Achklist.Items.Add('3');
if (AForm.ShowModal=mrOK)then
begin
for i := 0 to Achklist.Items.Count - 1 do
if Achklist.Checked[i] then
begin
if (Length(sss)>0) then sss := sss + ',';
sss := sss + IntToStr(i);
end;
MessageBox(Application.Handle,PAnsiChar(sss),'',MB_OK+MB_ICONINFORMATION);
end;
end
else
begin
Ardg := TradioGroup.Create(AForm);
Ardg.Parent := AForm;
Ardg.Align := alTop;
Ardg.Height := 240;
Ardg.Name := 'rdgselect';
Ardg.Caption := '';
//Ardg.Items := ss;
Ardg.Items.Add('0');
Ardg.Items.Add('1');
Ardg.Items.Add('2');
Ardg.Items.Add('3');
if (AForm.ShowModal=mrOK)then
begin
sss := IntToStr(Ardg.ItemIndex);
MessageBox(Application.Handle,PAnsiChar(sss),'',MB_OK+MB_ICONINFORMATION);
end;
end;
finally
AForm.Free;
end;
Result := sss;
end;
end.