動態產生的Form的問題? |
尚未結案
|
fj
一般會員 發表:20 回覆:12 積分:6 註冊:2004-11-23 發送簡訊給我 |
|
chris_shieh
高階會員 發表:46 回覆:308 積分:240 註冊:2004-04-26 發送簡訊給我 |
記得給Parent 才會顯示在Parent 上
procedure TForm1.FormCreate(Sender: TObject); var btn1, btn2: TButton; begin btn1 := TButton.Create(Self); with btn1 do begin Parent := Self; Top := 10; Left := 10; Caption := 'Btn1'; end; btn2 := TButton.Create(Self); with btn2 do begin Parent := Self; Top := 50; Left := 50; Caption := 'Btn2'; end; end; |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
fj
一般會員 發表:20 回覆:12 積分:6 註冊:2004-11-23 發送簡訊給我 |
多謝各位指教,我試過將其寫在onshow事件中,但還是不行,也有設parent。 程式碼如下: procedure TTrendLine.onshow(Sender: TObject);
var
FN: array[0..MAX_PATH- 1] of char;
CeXEpATH:String;
// label3 : Tlabel;
begin with Tlabel.Create(self) do
begin
parent := panel2;
caption := 'We are family';
height:= 21;
width := 100;
left := 1;
top := 1;
show;
end;
SetString(cExePath, FN, GetModuleFileName(hInstance, FN, SizeOf(FN)));//抓取現在正在執行的程式所在路徑包含完整路徑
exe_path:=ExtractFilePath(cExePath);//僅抓取路徑不包含檔名
showmessage(exe_path);
if FileExists(exe_path 'PropertyTagList.dfm') then //將dreamdesigner元件從檔案中取出載入
DreamDesigner1.LoadComponentFromFile(DreamDesigner1.LimitControl,exe_path 'PropertyTagList.dfm'); end; 但仍然沒看到label出現,其他動作行為好像也沒有作用。
能否幫我看一下,是有哪漏掉嗎?
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
fj
一般會員 發表:20 回覆:12 積分:6 註冊:2004-11-23 發送簡訊給我 |
當然方便,如下
----------------------------------------------------------------------
unit TrendTestLine; interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, TeeProcs, TeEngine, Chart, DBChart, dcfdes, dcddes, CheckLst,
ComCtrls, ExtCtrls; type
TTrendLine = class(TForm)
Panel1: TPanel;
PageControl1: TPageControl;
DBChart1: TDBChart;
Panel2: TPanel;
Label1: TLabel;
Edit1: TEdit;
GroupBox1: TGroupBox;
Button2: TButton;
Button1: TButton;
TagNoList: TCheckListBox;
Label2: TLabel;
DreamDesigner1: TDreamDesigner;
Button4: TButton;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure formcreate(Sender : TObject);
procedure onshow(Sender : TObject);
procedure Button3Click(Sender: TObject); private
exe_path:String;
{ Private declarations }
public
{ Public declarations }
end; var
TrendLine: TTrendLine; implementation {$R *.DFM} //將component儲存至檔案中
procedure TTrendLine.Button2Click(Sender: TObject);
var
FN: array[0..MAX_PATH- 1] of char;
CeXEpATH:String;
begin
SetString(cExePath, FN, GetModuleFileName(hInstance, FN, SizeOf(FN)));//抓取現在正在執行的程式所在路徑包含完整路徑
exe_path:=ExtractFilePath(cExePath);//僅抓取路徑不包含檔名
showmessage(exe_path); dreamdesigner1.SaveComponentToFile(DreamDesigner1.LimitControl,exe_path 'PropertyTagList.dfm.dfm');
end; //新增項目至CheckListBox
procedure TTrendLine.Button4Click(Sender: TObject);
var
i : integer;
begin
if edit1.text = '' then
begin
showmessage('請輸入Tag_No');
exit;
end; for i := 0 to tagnolist.Items.count-1 do
begin
if edit1.Text = TagNoList.Items[i] then
begin
showmessage('此Tag_No已存在,請從新輸入');
exit;
end;
end; tagnoList.Items.add(edit1.text);
end; procedure TTrendLine.formcreate(Sender: TObject);
{var
FN: array[0..MAX_PATH- 1] of char;
CeXEpATH:String;
}
begin
{
SetString(cExePath, FN, GetModuleFileName(hInstance, FN, SizeOf(FN)));//抓取現在正在執行的程式所在路徑包含完整路徑
exe_path:=ExtractFilePath(cExePath);//僅抓取路徑不包含檔名
showmessage(exe_path);
if FileExists(exe_path 'PropertyTagList.dfm') then //將dreamdesigner元件從檔案中取出載入
DreamDesigner1.LoadComponentFromFile(DreamDesigner1.LimitControl,exe_path 'PropertyTagList.dfm');
}
end; procedure TTrendLine.onshow(Sender: TObject);
{var
FN: array[0..MAX_PATH- 1] of char;
CeXEpATH:String;
// label3 : Tlabel;
}
begin
{
with Tlabel.Create(self) do
begin
parent := panel2;
caption := 'We are family';
height:= 21;
width := 100;
left := 1;
top := 1;
show;
end; SetString(cExePath, FN, GetModuleFileName(hInstance, FN, SizeOf(FN)));//抓取現在正在執行的程式所在路徑包含完整路徑
exe_path:=ExtractFilePath(cExePath);//僅抓取路徑不包含檔名
showmessage(exe_path); } end; //載入 component
procedure TTrendLine.Button3Click(Sender: TObject);
var
FN: array[0..MAX_PATH- 1] of char;
CeXEpATH:String; begin
if FileExists(exe_path 'PropertyTagList') then //將dreamdesigner元件從檔案中取出載入
showmessage('iiiiii');
DreamDesigner1.LoadComponentFromFile(DreamDesigner1.LimitControl,exe_path 'PropertyTagList'); end; end. -------------------------------------------------------------- 有些元件是外加的component --> DreamDesigner for your reference
|
fj
一般會員 發表:20 回覆:12 積分:6 註冊:2004-11-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |