全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1737
推到 Plurk!
推到 Facebook!

一個 MonthCalendar BoldDays 的問題.

尚未結案
ysaiman
一般會員


發表:1
回覆:1
積分:0
註冊:2005-03-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-01 15:48:12 IP:210.184.xxx.xxx 未訂閱
我有個 database, 它有一個 day number fields(由 1 至 366), 一個 boolean field (用來記著那日是否 bold). 我想當我按 Button 時, database 所指著的那日會變 bold. 而個 Calendar 會自動更新. 我咁寫: var BoldDay : Array[1..31] of Cardinal; //儲存 bold 的日期 procedure TfrmMain.GetFavorite(Mon: Integer); var i, BeginDay, EndDay : integer; begin BeginDay := 1; for i := 0 to Mon - 2 do BeginDay := BeginDay DayOfMon[i 1]; //找那月由那日開始, 如 2月 由第32日至60日 EndDay := BeginDay DayOfMon[Mon] - 1; // 3月 由第61日至91日 QryStreamsFavorite.Close; QryStreamsFavorite.SQL.Clear; QryStreamsFavorite.SQL.Add('SELECT * FROM Streams WHERE Datenum BETWEEN ' IntToStr(BeginDay) ' AND ' IntToStr(EndDay) ';'); QryStreamsFavorite.Open; i := 1; QryStreamsFavorite.First; while not QryStreamsFavorite.Eof do begin if QryStreamsFavorite.FieldByName('Favorite').Value = True then //check 是否 bold BoldDay[i] := QryStreamsFavorite.FieldByName('Datenum').Value - (BeginDay - 1) else BoldDay[i] := 0; //如:[1,0,3,4,0,0,7.....,29,0,30,31] Inc(i); QryStreamsFavorite.Next; end; end; procedure TfrmMain.MonthCalendarGetMonthInfo(Sender: TObject; Month: Cardinal; var MonthBoldInfo: Cardinal); begin case Month of 1 : GetFavorite(1); //不同的月份 2 : GetFavorite(2); 3 : GetFavorite(3); 4 : GetFavorite(4); 5 : GetFavorite(5); 6 : GetFavorite(6); 7 : GetFavorite(7); 8 : GetFavorite(8); 9 : GetFavorite(9); end; MonthCalendar.BoldDays(BoldDay, MonthBoldInfo); end; procedure TfrmMain.JvTransparentButton2Click(Sender: TObject); var MonthBoldInfo: Cardinal; ST : TSystemTime; begin QryStreams.Edit; //更新那field的value. True->False, False->True. QryStreams.FieldByName('Favorite').Value := Not(QryStreams.FieldByName('Favorite').Value); QryStreams.Post; QryStreams.Requery; DateTimeToSystemTime(MonthCalendar.Date, ST); MonthBoldInfo := 0; //<--其實唔係好明, 但要咁先比我 compile MonthCalendarGetMonthInfo(Sender, ST.wMonth ,MonthBoldInfo); end; 但唔得, 個MonthCalendar 不會更新, 我要去第二個月再返轉頭才睇到之前的改變. 請各位多教導...
ysaiman
一般會員


發表:1
回覆:1
積分:0
註冊:2005-03-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-01 16:11:28 IP:210.184.xxx.xxx 未訂閱
用咗個好覺笑的方法. MonthCalendar.Visible := False; MonthCalendar.Date := IncMonth(MonthCalendar.Date,1); MonthCalendar.Date := IncMonth(MonthCalendar.Date,-1); MonthCalendar.Visible := True; 用這焦來 refresh 個MonthCalendar. 請問有冇好o的的方法呢?
系統時間:2024-11-28 0:53:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!