AdaWu888
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:11 回覆:6 積分:3 註冊:2002-11-21
發送簡訊給我
|
各位大大
我在這篇文章裡面看到了[...]的問題
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25442
但是好像都沒有提供程式碼說明
我真的很想知道那個小button該怎麼做?
有人願意提供簡單的程式碼說明嗎?
|
chih
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:48 回覆:1186 積分:639 註冊:2002-04-02
發送簡訊給我
|
所有的Button都可以做..在Button.caption面設定為[...]
至於開啟檔案..放一個OpenDialog叫做OpenDialog1..
beginprocedure TForm1.Button1Click(Sender: TObject);
begin
try
if OpenDialog1.Execute then
Edit1.Text:=OpenDialog1.FileName;
else
SHOWEMSSAGE('開檔失敗!!!');
end;
PS:我是用Delphi語法..BCB你可能要自己轉一下..
Edit1.Text:=OpenDialog1.FileName;
好像改這樣
Edit1.Text->OpenDialog1.FileName;
不知道對不對..
TRY TYR SEE..
發表人 - chih 於 2003/01/29 08:32:33
|
johnny_1121
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:12 回覆:58 積分:24 註冊:2002-04-15
發送簡訊給我
|
//BCB
Edit1->Text = OpenDialog1->FileName;
|
zenjohn
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:5 回覆:16 積分:4 註冊:2002-12-10
發送簡訊給我
|
Dear AdaWu888, 我把樓上chih兄的翻譯如下: if (OpenDialog1->Execute())
Edit1->Text = OpenDialog1->FileName;
else
ShowMessage("開檔失敗!!");
另外, 你可以看一下Help裡, OpenDialog, FileName, Back, Next example
應該對你會有幫助。
|
RaynorPao
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](http://delphi.ktop.com.tw/download.php?download=upload/48c9d66ac5033_KTOP-%E5%8C%85%E5%AD%90%28%E7%9C%BC%E9%8F%A1%29-Q-100x100.jpg) 發表:139 回覆:3622 積分:7025 註冊:2002-08-12
發送簡訊給我
|
引言:
各位大大
我在這篇文章裡面看到了[...]的問題
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25442
但是好像都沒有提供程式碼說明
我真的很想知道那個小button該怎麼做?
有人願意提供簡單的程式碼說明嗎?
>>< face="Verdana, Arial, Helvetica"> AdaWu888 你好:
假設現在有一個 TMyPanel 元件,繼承於 TPanel 元件
而我們為 TMyPanel 元件新增了一個 property "FileName"
"FileName" 是一個在 design time 就可以被設定的 property
因此會顯示在 Ojbect Inspector 中,而且旁邊會有 [...] 的小 button
以下是 TMyPanel 元件的範例程式碼
< class="code">
//---------------------------------------------------------------------------
// MyPanel.h
#ifndef MyPanelH
#define MyPanelH #include "SysUtils.hpp"
#include "Classes.hpp"
#include "Controls.hpp"
#include "ExtCtrls.hpp"
#include "DesignEditors.hpp"
#include "TypInfo.hpp"
#include "Dialogs.hpp" class TMyPanelFileNameProperty : public TStringProperty
{
public:
TPropertyAttributes __fastcall GetAttributes()
{
return TPropertyAttributes()Execute())
{
Value=dlg->FileName;
}
delete dlg;
}
}; class PACKAGE TMyPanel : public TPanel
{
private:
String FFileName;
void __fastcall SetFileName(String value);
protected:
public:
__fastcall TMyPanel(TComponent* Owner);
__published:
__property String FileName={read=FFileName, write=SetFileName};
};
#endif
//---------------------------------------------------------------------------
// MyPanel.cpp
#include #pragma hdrstop #include "MyPanel.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
// static inline void ValidCtrCheck(TMyPanel *)
{
new TMyPanel(NULL);
}
__fastcall TMyPanel::TMyPanel(TComponent* Owner)
: TPanel(Owner)
{
}
void __fastcall TMyPanel::SetFileName(String value)
{
FFileName=value;
}
namespace Mypanel
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TMyPanel)};
RegisterComponents("Samples", classes, 0);
PPropInfo PropInfo=GetPropInfo(__typeinfo(TMyPanel), "FileName");
RegisterPropertyEditor(*(PropInfo->PropType), __classid(TMyPanel),
"FileName", __classid(TMyPanelFileNameProperty));
}
}
-- Enjoy Researching & Developing --
------ -- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
|
jessechan
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:109 回覆:394 積分:254 註冊:2002-04-05
發送簡訊給我
|
我想要知道一件事, 根據 William 兄的說法, 在 Delphi 中只要把 FileName 的 type 設為 TFileName 就可以使用內建的 property editor 得到一樣的效果, 可是我在 BCB6 中試不出來, 請問有人試出來嗎. Jesse Chan
------ Jesse Chan
|
AdaWu888
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:11 回覆:6 積分:3 註冊:2002-11-21
發送簡訊給我
|
謝謝各位大大的相助 ![]()
>
|