![]() |
|
|||||||
| 論壇說明 |
|
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
![]() |
|
|
主題工具 | 顯示模式 |
|
|
#1 |
|
長老會員
![]() ![]() |
小弟是以C++ Builder 2006寫的 這兩天才研究出來,所以粗略的跟大家分享心得 參考資料http://dn.codegear.com/article/33446 首先開一個新專案 放入TDockTabSet(DockTabSet1)和TPanel(Panel1)元件 TDockTabSet(DockTabSet1)元件的屬性如下: 語法:
ShrinkToFit = True
Style = tsModernPopout
TabPosition = tpRight
DestinationDockSite = Panel1
語法:
Align = alLeft
DockSite = True
Width = 0
TMemo(Memo1)元件的屬性如下: 語法:
Align = alClient 語法:
BorderStyle = bsSizeToolWin DockSite = True DragKind = dkDock DragMode = dmAutomatic OldCreateOrder = False 加入Form1的Show事件,程式碼如下: 語法:
TForm2 *FD;
int iFormCount = Screen->FormCount;
// Clear existing forms (if they exist)
for (int i=0; i < iFormCount; i++) {
FD = dynamic_cast<TForm2 *>(Screen->Forms[i]);
if (FD != NULL) {
FD->Close(); // Forms are set to auto-free on close
}
}
// Create New Forms
// You can use either method; I just show both to show both. ;-)
// Static Method
FD = TForm2::CreateDockForm(clBlue);
FD->ManualDock(Panel1);
// Constructor Method
FD = new TForm2(this, clGreen);
FD->Show();
FD->ManualDock(Panel1, NULL, alTop);
// Constructor Method
FD = new TForm2(this, clRed);
FD->ManualDock(Panel1, NULL, alRight);
FD->Show();
// Static Method
FD = TForm2::CreateDockForm(clWhite);
FD->ManualDock(DockTabSet1);
語法:
if (Panel1->Width == 0) {
Panel1->Width = 150;
}
Splitter1->Visible = True;
Splitter1->Left = Panel1->Width;
語法:
if (Panel1->DockClientCount == 1) {
Panel1->Width = 0;
Splitter1->Visible = false;
}
語法:
DockTabSet1->Visible = true; 語法:
if (DockTabSet1->Tabs->Count > 0) {
DockTabSet1->Visible = true;
} else {
DockTabSet1->Visible = false;
}
語法:
TRect lRect;
TPoint lPoint;
TForm2 *TFD;
TFD = dynamic_cast<TForm2 *>(Source->Control);
if (TFD != NULL) {
Accept = true;
lPoint = Panel1->ClientToScreen(Point(0, 0));
lRect.Top = lPoint.y;
lRect.Left = lPoint.x;
lPoint = Panel1->ClientToScreen(Point(150, Panel1->Height));
lRect.Bottom = lPoint.y;
lRect.Right = lPoint.x;
Source->DockRect = lRect;
}
首先在Unit2.cpp檔案中TForm2 *Form2;下面加入 語法:
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner, const TColor aColor)
: TForm(Owner)
{
Color = aColor;
Caption = ColorToString(aColor);
}
再將Form2設為動態載入(將Project1.cpp檔案這行Application->CreateForm(__classid(TForm2), &Form2);刪除) 加入Form2的Close事件,程式碼如下: 語法:
ManualFloat(Rect(0,0,0,0)); Action = caFree; 語法:
DragObject = new TDragDockObjectEx(this); DragObject->Brush->Color = clAqua; 語法:
TForm2 *TForm2::CreateDockForm(const TColor aColor)
{
TForm2 *TCF;
TCF = new TForm2(Application);
TCF->Color = aColor;
TCF->Caption = ColorToString(aColor);
TCF->Show();
return (TCF);
}
//---------------------------------------------------------------------------
語法:
__fastcall TForm2(TComponent* Owner, const TColor aColor); static TForm2 *TForm2::CreateDockForm(const TColor aColor); |
|
__________________ 地獄變現記 [人身得來不易,願大家能尊重生命--勿傷胎命][好淫者請好自為之吧--割鳥] 南泉禪師道: 「道不屬知,不屬不知。知是妄覺,不知是無記。若真達不疑之道,猶如太虛,廓然蕩豁,豈可強是非邪?」 德山宣鑒禪師: 「如果明白無事,則勿妄求,妄求而得,亦非得也。汝但無事於心,無心於事,則虛而靈,空而妙。若毛端許,言之本末者,皆為自欺。何故?毫氂繫念,三塗業因。瞥爾情生,萬劫羈鎖。聖名凡號,盡是虛聲。殊相劣形,皆是幻色。汝欲求之,得無累乎?」 |
|
|
|
送花文章: 5469,
|
![]() |
|
|
相似的主題
|
||||
| 主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
| 敎學 - 公開金鑰與數位憑證 | Chin-Wei | 網路疑難應用技術研討區 | 6 | 2007-07-14 09:44 AM |
| 疑問 - 公司網站主機一直發生問題 | smallear | 網路疑難應用技術研討區 | 11 | 2006-12-08 01:11 PM |