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

请问: C++ Buider 如何解决这个难题,试了好久!

尚未結案
samba
一般會員


發表:10
回覆:14
積分:9
註冊:2003-04-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-15 15:16:25 IP:219.130.xxx.xxx 未訂閱
請問一個有關TreeView的問題~ 因為要將資料庫的內容轉為TTreeView物件的節點資料, 所以我是用TTreeView物件的Data屬性來記錄資料的, 也就是先宣告一個自訂的指標資料型態,如下: type PMyRecord = ^TMyRecord; TMyRecord = record parent_node_id : string; //父節點 node_id : string; //節點代碼 caption : string; //節點標題文字 frm : string; //form的名字 end; uses Student_fromU, Teacher_frmU, Class_frmU; 可是在TreeView物件的onClick中的程式碼在動態產生Form的部分不知道該如何寫呢?? 也就是當user點選node時,即以這個node中的Data所存的form名字create form... 我知道抓取node中Data的form名字是:PMyRecord(TreeView1.Selected.Data)^.frm; 可是抓取出來的是string,要怎麼轉為form型態呢?? 而且要怎麼讓它乖乖地create出來呢?? procedure TForm1.TreeView1Click(Sender:TObject); begin with TStudent_frm.Create(application) do ^^^^^^^^^^^==>"TStudent_frm"能依資料庫所存的值而動態改變為TTeacher_frm或TClass_frm begin showmodal; end; end; 我試過component之類,可是一直試不出來.. 不知是否有哪位大大能為小的解惑一下... 感激呀~... 發表人 - Gemi0305 於 2003/11/15 17:55:13
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-17 23:47:37 IP:61.224.xxx.xxx 未訂閱
Hi~你好, 因為我覺得這篇好像和delphi比較類似, 所以我就轉到delphi去了~ 如果不小心轉錯,請告知一聲~ 謝謝
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-18 07:53:07 IP:218.163.xxx.xxx 未訂閱
這完全是Delphi的程式碼, 問題卻寫了C++ Builder, 到底你要Delphi還是BCB? 還是分不清楚呢?    由Form的ClassName找到Form Class來create Form的方法, 本站上有很多討論,可以找一找(string是無法為Form的,必須用findclas或GetClass,先決條件須所有form均有RegisterClass)
ckc8088
一般會員


發表:3
回覆:7
積分:2
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-20 17:11:11 IP:202.52.xxx.xxx 未訂閱
Child Form 設定為 Available Form TreeView 加兩個Item form1,form2 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin,Unit2,Unit3, ExtCtrls; type TfrmMain = class(TForm) Panel1: TPanel; TreeView1: TTreeView; Splitter1: TSplitter; procedure TreeView1Click(Sender: TObject); procedure FormShow(Sender: TObject); private Function SearchForm(sform: string):TForm; Procedure Init; { Private declarations } public { Public declarations } end; var frmMain: TfrmMain; aForm:TForm; implementation {$R *.dfm} procedure TfrmMain.Init; Var form1,form2:TForm; begin //Create Child Form //Don't Show form1:=TForm1.Create(Self); form1.Visible:=False; form2:=TForm2.Create(Self); form2.Visible:=False;; end; function TfrmMain.SearchForm(sform: string):TForm; Var iIndex:integer; begin Result:=nil; For iIndex:=0 To Self.ComponentCount-1 Do Begin If Components[iIndex] is TForm Then If Self.Components[iIndex].Name=sform Then Begin Result:=TForm(Self.Components[iIndex]); Break; End; End; end; procedure TfrmMain.TreeView1Click(Sender: TObject); Var sFormName:String; begin If ((TreeView1.Selected=nil) or (TreeView1.Items.Count=0)) Then Exit; sFormName:=TreeView1.Selected.Text; aForm:=SearchForm(sFormName); if Assigned(aForm) then begin aForm.Visible:=True; aForm.Parent:=Panel1; aForm.WindowState:=wsMaximized; aForm.BringToFront; end else Exit; end; procedure TfrmMain.FormShow(Sender: TObject); begin Init; end; end.
系統時間:2024-05-15 13:03:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!