線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2671
推到 Plurk!
推到 Facebook!

[bcb]我有兩個form表單請問要如何在form1知道我是點了那一個button

 
dragonhippop
一般會員


發表:5
回覆:0
積分:1
註冊:2004-12-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-11-22 00:51:42 IP:218.175.xxx.xxx 未訂閱
各位大大好:
目前小弟我有兩個form表單form1跟form2請問要如何在form1知道我是點了form2上那一個button
假設我在form2上有button1跟button2~請問在form1要怎麼知道我在form2是壓了那一個button呢

請各位大大教我一下
謝謝
jorping
一般會員


發表:3
回覆:5
積分:1
註冊:2006-11-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-11-23 12:48:40 IP:220.112.xxx.xxx 未訂閱
FORM2的BUTTON CLICK EVENT中传递回一个参数给FORM1告诉它你是按的哪个
这样应该可以吧..
------
Jordan.Jeng
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-11-23 15:16:19 IP:219.87.xxx.xxx 未訂閱
Form1 程式
[code]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
if Form2.Button1.Enabled=False then
Memo1.Lines.Add('Button1 is clicked !');
if Form2.Button2.Enabled=False then
Memo1.Lines.Add('Button2 is clicked !');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
Button1.Caption := 'Button Status Check';
end;
end.

[/code]
Form2 程式
[code]
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
Button1.Enabled:=False;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Button2.Enabled:=False;
end;
end.

[/code]


------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
CoffeeX
中階會員


發表:18
回覆:121
積分:72
註冊:2005-02-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-11-25 10:07:15 IP:140.125.xxx.xxx 未訂閱
如果只是要僅一個按下去的作法應該有兩種比較簡單的,
其一可以利用BCB元件SpeedButton去測試看看
另外也可以自己寫,
這是實現2樓大大的作法:
Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int UsedButton;
UsedButton = Form2->ButtonFlagCheck();
if(UsedButton >=0 )
{
ShowMessage("Form2's Button" IntToStr(UsedButton));
}else{
ShowMessage("None");
}
}
//---------------------------------------------------------------------------
Unit2.h & .cpp
class TForm2 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TButton *Button2;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
private: // User declarations
bool ButtonFlag[2];
int ButtonCount;
void ButtonFlagInitial();
public: // User declarations
__fastcall TForm2(TComponent* Owner);
int ButtonFlagCheck();
};
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
ButtonCount = 2;
ButtonFlagInitial();
}
//---------------------------------------------------------------------------
void TForm2::ButtonFlagInitial()
{
for(int i=0;i<ButtonCount;i )<br /> {
ButtonFlag[i] = false;
}
}
//---------------------------------------------------------------------------
int TForm2::ButtonFlagCheck()
{
int Index = -1;//if None
for(int i=0;i<ButtonCount;i )<br /> {
if(ButtonFlag[i])
{
Index = i 1;//0:Button1,1:Button2
}
}
return Index;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
ButtonFlagInitial();
ButtonFlag[0] = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button2Click(TObject *Sender)
{
ButtonFlagInitial();
ButtonFlag[1] = true;
}
------
=.=???
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-11-29 11:24:45 IP:220.130.xxx.xxx 未訂閱
procedure TForm1.FormClick(Sender: TObject);
begin
if (Sender is TComponent) then
Caption:=(Sender as Tcomponent).Name 'is clicked';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
frm2 : TForm2;
begin
frm2:=TForm2.Create(self);
frm2.Button1.On Click:=self.FormClick;
frm2.Button2.On Click:=self.FormClick;
frm2.ShowModal;
end;

//這樣如何
//把self改成this指標,Instance Property operator改成->,as的typecast改用TComponent(Sender)就好..
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-11-29 11:30:17 IP:219.87.xxx.xxx 未訂閱
frm2 : TForm2; => [Error] Unit1.pas(35): Undeclared identifier: 'TForm2'
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2006-11-29 11:40:50 IP:220.130.xxx.xxx 未訂閱
Build form2 urself

===================引 用 文 章===================
frm2 : TForm2; => [Error] Unit1.pas(35): Undeclared identifier: 'TForm2'
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
系統時間:2024-11-25 2:57:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!