请问: C++ Buider 如何解决这个难题,试了好久! |
尚未結案
|
samba
一般會員 發表:10 回覆:14 積分:9 註冊:2003-04-10 發送簡訊給我 |
請問一個有關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 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
ckc8088
一般會員 發表:3 回覆:7 積分:2 註冊:2002-07-11 發送簡訊給我 |
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.
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |