動能form 和其用到指標 |
答題得分者是:ENIX007
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
請問各位大大: 我可以動態開了二個以上的form, 但其有一送資料的地方,由tclientsoket送出,
但我用要送form1的東西同時帶有form的id, 但送出卻是form2的內容.. 反正就是 動態form內的宣告指標(私用), 但動態開了二個,結果指標是同一個
#pragma resource "*.dfm" TClientForm *ClientForm; GDT_Style *GT; // <-------------問題點 TClientSocket *NSocket; AnsiString DName,SocketName; int SendCount; extern GDT_Style *GHead; extern Pclient_Style *PHead; extern unsigned short MonitorCount,SocketFlag[MAX_Pclient]; //--------------------------------------------------------------------------- __fastcall TClientForm::TClientForm(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TClientForm::FormClose(TObject *Sender, TCloseAction &Action) { SocketFlag[(unsigned char)GT->PclientID] = SocketFlag[(unsigned char)GT->PclientID]-1; if(SocketFlag[(unsigned char)GT->PclientID] == 0) NSocket->Active = false; MonitorCount--; MainForm->HostViewClick(Sender); Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TClientForm::FormCreate(TObject *Sender) { //initial Value DName = MainForm->ProbeView->Selected->Caption; GT = (GDT_Style *)malloc(sizeof(GDT_Style)); memset(GT,0x00,sizeof(GDT_Style)); Pclient_Style *Ptr; GDT_Style *GDT = GHead; while(GDT != NULL) { if(strncmp(GDT->Description,DName.c_str(),MAX_Alias) == 0 || strncmp(GDT->ID,DName.c_str(),MAX_ID) == 0) { memmove(GT,GDT,sizeof(GDT_Style)); Ptr = PHead; while(Ptr != NULL) { if(Ptr->ID == GDT->PclientID) break; Ptr = Ptr->Next; } break; } GDT = GDT->Next; } if(GDT == NULL) return; SocketName = "NProbeHostSocket" IntToStr((unsigned char)GT->PclientID); for(int i=0;i發表人 - kenbcb 於 2004/05/28 13:43:37 |
ENIX007
高階會員 發表:28 回覆:274 積分:185 註冊:2003-11-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |