討論區快速選單
知識庫快速選單
65折快速開發芒果Apps 全方位資訊人才入門基礎必修 最新微軟MSDN研討會行事曆
[ 回上頁 ] [ 討論區發言規則 ]
有關一個form1傳遞參數到form2然後在回傳參數回去form
更改我的閱讀文章字型大小
作者 : roger5089(roger) 人氣指數超過30000點
[ 貼文 189 | 人氣 32947 | 評價 70 | 評價/貼文 0.37 | 送出評價 12 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/3/27 下午 06:43:40
以下是我用timer 所做的一個測試不知大家是否有更好的方法
1. 將 form1 的變數傳遞到form2 裡當 form2 click button 後改變form1->Edit 的 內容
form1
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include "Unit1.h"

#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString a = "abc";
AnsiString b = "this is roger";
int change = 0;

__fastcall TForm1::TForm1(TComponent* Owner)
     : TForm(Owner)
{
}

void __fastcall TForm1::FormShow(TObject *Sender)
{
Edit1->Text = a;
Edit2->Text = b;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Form2->Show();
}

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{

    int i = Form2->getchange();
    if(i == 1){
    Timer1->Enabled = false;
    Edit2->Text = change;
    }

}

form2
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString a = "abc";
AnsiString b = "this is roger";
int change = 0;

__fastcall TForm1::TForm1(TComponent* Owner)
     : TForm(Owner)
{
}

void __fastcall TForm1::FormShow(TObject *Sender)
{
Edit1->Text = a;
Edit2->Text = b;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Form2->Show();
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{

    int i = Form2->getchange();
    if(i == 1){
    Timer1->Enabled = false;
    Edit2->Text = change;
    }

}
作者 : ggl2005(GGL)
[ 貼文 173 | 人氣 9058 | 評價 300 | 評價/貼文 1.73 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/3/27 下午 07:02:27
我不懂為什麼你還要用一個Timer1
你的問題是" 將 form1 的變數傳遞到form2 裡當 form2 click button 後改變form1->Edit 的 內容"

你應該可以在Form2 Click Button的時候直接改變Form1->Edit2->Text=a
作者 : roger5089(roger) 人氣指數超過30000點
[ 貼文 189 | 人氣 32947 | 評價 70 | 評價/貼文 0.37 | 送出評價 12 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/3/27 下午 07:28:07
好像不可以
AnsiString a = "abc";
AnsiString b = "this is roger";
AnsiString e = "abc";
int change = 0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
     : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
Edit1->Text = a;
Edit2->Text = b;
Edit3->Text = e;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Form2->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    int i = Form2->getchange();
    if(i == 1){
    Timer1->Enabled = false;
     Edit1->Text = Form2->getc();
     Edit2->Text = Form2->getd();
    }//end i
}
TForm2 *Form2;
extern AnsiString a,b,e;
extern int change;
AnsiString c,d,f;

int schange;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
     : TForm(Owner)
{
}
//---------------------------------------------------------------------------
int TForm2::getchange(){
   return change;
}

AnsiString TForm2::getc(){
   c = Edit1->Text;
   return c;
}

AnsiString TForm2::getd(){
   d = Edit2->Text;
   return d;
}


void __fastcall TForm2::FormShow(TObject *Sender)
{
Edit1->Text = a;
Edit2->Text = b;
Edit3->Text = e;
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Button1Click(TObject *Sender)
{
getchange();
change = 1;
getc();
getd();
Form1->Edit3->Text = e;
Form2->Visible = false;
}


作者 : roger5089(roger) 人氣指數超過30000點
[ 貼文 189 | 人氣 32947 | 評價 70 | 評價/貼文 0.37 | 送出評價 12 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/3/27 下午 07:30:41
但是要是放在timer 裡就可以
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    int i = Form2->getchange();
    if(i == 1){
    Timer1->Enabled = false;
     Edit1->Text = Form2->getc();
     Edit2->Text = Form2->getd();
     Edit3->Text = Form2->Edit3->Text;
    }//end i
}
 板主 : 徵求中
 > C++ Builder - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - C++ Builder - 知識庫
  ■ 月熱門主題
  ■ 季熱門主題
  ■ 熱門主題Top 20
  ■ 本區Post排行榜
  ■ 本區評價排行榜
  ■ 全站專家名人榜
  ■ 全站Post排行榜
  ■ 全站評價排行榜
  ■ 全站人氣排行榜
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 文章收藏排行榜
  ■ 我最愛的作者
  ■ 最愛作者排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
C++ Builder
1 windblown 5410 
2 Raynor 3120 
3 阿泰 2870 
4 workman 1650 
5 Linkin 1360 
6 CrazyStar 1260 
7 青衫 1160 
8 jonay 1060 
9 charlie 900 
10 小呆 750 
C++ Builder
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2012 程式設計俱樂部 http://www.programmer-club.com.tw/
0.203125