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

月曆的寫法

尚未結案
lena
一般會員


發表:12
回覆:13
積分:5
註冊:2004-04-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-21 21:10:06 IP:218.162.xxx.xxx 未訂閱
雖然BCB有提供月曆的元件 但是我想要自己寫出月曆的程式 請問大家,有寫有寫過嗎? 可以提供一下...謝謝了
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-21 22:45:10 IP:221.169.xxx.xxx 未訂閱
lena:已經有那麼多好用的月曆元件,妳要自己寫的目的何在? 我有以TCCalendar改寫過一個程式(非元件),是要處理中華民國年 及西元的顯示問題而已,而且這隻程式只用到一個地方過而已。 台灣的飯店。 Andy Chang
------
Andy Chang
lena
一般會員


發表:12
回覆:13
積分:5
註冊:2004-04-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-21 22:48:59 IP:218.171.xxx.xxx 未訂閱
因為元件裡面沒辦法把資料庫有資料的日期顯示出來,沒資料的日期反白.... 所以想說自己寫程式
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-22 10:03:15 IP:221.169.xxx.xxx 未訂閱
lena:那妳可以自己試試,TCCalendar原始程式位置 BCB->Examples->Controls->Source->CCalendar.cpp 這就是元件盤上TCCalendar的元件Source。 請參考! Andy Chang
------
Andy Chang
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-22 17:48:47 IP:221.169.xxx.xxx 未訂閱
lena:我找到早期我寫過飯店預約訂房程式跟妳的要求有點像,
我只說明當時我的作法,給妳參考一下:
我拉TEdit及TUpDown年月的選項當然輸入資料要限制像月只能1至12月。
一個Panel做底,.h檔宣告
const int DateCOUNT=42;   // 一月的顯示總數
const int DateROW=7;      // 一行個數
const int DateCOL=6;      // 一頁行數
const int POSDOT=6;      // 間隔點數
struct MyDate
{
  public:
    TPanel *ODate1;
    TLabel *ODay1;
    TComboBox *OLevel1;
    int Count;       // 計錄房間序號陣列
    void __fastcall ODateClick(TObject *Sender);
};
public:                // User declarations
  MyDate DateArr[DateCOUNT];  // 宣告
--------------------------------------------------------------
畫面上是從星期日起至星期六止,所以每月最多只有六列,所以
DateCOUNT=42 是6x7
.Cpp
這是動態產生月曆
    for (int i=0;iDateArr[i].ODateClick;
        DateArr[i].ODate1->BevelInner=bvRaised; //bvLowered;
        DateArr[i].ODate1->BevelOuter=bvRaised;
        DateArr[i].ODate1->BevelWidth=1;
        DateArr[i].ODate1->Color=clYellow;
        DateArr[i].ODate1->BorderStyle=bsSingle;
        DateArr[i].ODate1->Visible=false;
        DateArr[i].ODate1->Width=70;
        DateArr[i].ODate1->Height=50;
        DateArr[i].ODate1->Left=0 72*(nRowÚteROW) POSDOT;
        DateArr[i].ODate1->Top=52 50*(nColÚteCOL) 1; // POSDOT;            DateArr[i].ODate1->Parent=this;
        DateArr[i].ODay1->Parent=DateArr[i].ODate1;
        DateArr[i].OLevel1->Parent=DateArr[i].ODate1;            DateArr[i].ODay1->Left=Label9->Left;
        DateArr[i].ODay1->Height=Label9->Height;
        DateArr[i].ODay1->Width=Label9->Width;
        DateArr[i].ODay1->Top=Label9->Top;
        DateArr[i].ODay1->Font=Label9->Font;
        DateArr[i].ODay1->Alignment=Label9->Alignment;
        DateArr[i].ODay1->DateArr[i].ODateClick;            DateArr[i].OLevel1->Left=ComboBox1->Left;
        DateArr[i].OLevel1->Height=ComboBox1->Height;
        DateArr[i].OLevel1->Width=ComboBox1->Width;
        DateArr[i].OLevel1->Top=ComboBox1->Top;
        DateArr[i].OLevel1->Color=ComboBox1->Color;
        DateArr[i].OLevel1->Font=ComboBox1->Font;
        DateArr[i].OLevel1->Items->Clear();
        nRow  ;
        if (nRow>=DateROW)
        {
            nRow=0;
            nCol  ;
        }
    }
接著我讀入資料將上面設定顯示加一加設一設就OK了!
TComboBox是我必須將該日訂房的房間等級數量做一簡明Show出,
使用者也可以按該日Show明細,因為我有ODateClick(TObject *Sender);
導引!
請參考!
Andy Chang
------
Andy Chang
lena
一般會員


發表:12
回覆:13
積分:5
註冊:2004-04-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-23 19:04:31 IP:218.162.xxx.xxx 未訂閱
Andy Chang 你好 謝謝你提供程式碼給我,但是我對於你介面的設計方式 還有些不懂,可以貼圖片給我嗎? 不好意思哦!!
系統時間:2024-05-05 22:15:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!