一段個性化stringgrid的代碼

需要注意的是 該段程序使用了 canvas。

procedure TW_CkbTaiZhang.KhLstDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
?? if ARow=khlst.Row then
?? with khlst.Canvas do //畫 cell 的邊框
??? begin
????? Pen.Color := $00ff0000; //定義畫筆顏色(藍色)
????? MoveTo(Rect.Left, Rect.Bottom); //畫筆定位
????? LineTo(Rect.Right, Rect.Bottom); //畫藍色的橫線
????? Brush.Color :=TColor(RGB(10,100,100));
????? fillrect(rect);
????? textout(rect.left+4,rect.top+4,khlst.cells[ACol,ARow]);?? //一定要使用textout輸出文字才能將效果輸出。
??? end;

?? //實現 將 其他控件 浮動在表格框里的效果。
??? if (gdFocused in state) then
??? begin
????? if KhLst.ItemCheck[4, ARow] then
????? begin
??????? if ACol in [5] then
??????? begin
????????? cmbYearMonth.Left := Rect.Left + KhLst.Left;
????????? cmbYearMonth.Top := rect.Top +KhLst.Top;
????????? cmbYearMonth.Width :=rect.Right-rect.Left;
????????? cmbYearMonth.Height :=rect.Bottom - rect.Top;
????????? cmbYearMonth.Text :=khlst.Cells[ACol,ARow];
????????? cmbYearMonth.Visible := true;
????????? cmbYearMonth.SetFocus;
??????? end else cmbyearmonth.Visible := false;
??????? if ACol in [6] then
??????? begin
????????? cmbbxh.Left := Rect.Left + KhLst.Left;
????????? cmbbxh.Top := rect.Top +KhLst.Top;
????????? cmbbxh.Width :=rect.Right-rect.Left;
????????? cmbbxh.Height :=rect.Bottom - rect.Top;
????????? cmbbxh.Text :=khlst.Cells[ACol,ARow];
????????? cmbbxh.Visible := true;
????????? cmbbxh.SetFocus;
??????? end else cmbbxh.Visible :=false;
??????? if ACol in [7] then
??????? begin
????????? cmbbrl.Left := Rect.Left + KhLst.Left;
????????? cmbbrl.Top := rect.Top +KhLst.Top;
????????? cmbbrl.Width :=rect.Right-rect.Left;
????????? cmbbrl.Height :=rect.Bottom - rect.Top;
????????? cmbbrl.Text :=khlst.Cells[ACol,ARow];
????????? cmbbrl.Visible := true;
????????? cmbbrl.SetFocus;
??????? end else cmbbrl.Visible :=false;
??????? if aCol in [8] then
??????? begin
????????? cmbmc.Left := Rect.Left + KhLst.Left;
????????? cmbmc.Top := rect.Top +KhLst.Top;
????????? cmbmc.Width :=rect.Right-rect.Left;
????????? cmbmc.Height :=rect.Bottom - rect.Top;
????????? cmbmc.Text :=khlst.Cells[aCol,aRow];
????????? cmbmc.Visible := true;
????????? cmbmc.SetFocus;
??????? end else cmbmc.Visible :=false;
??????? if acol in [9] then
??????? begin
????????? cmbbl.Left := Rect.Left + KhLst.Left;
????????? cmbbl.Top := rect.Top +KhLst.Top;
????????? cmbbl.Width :=rect.Right-rect.Left;
????????? cmbbl.Height :=rect.Bottom - rect.Top;
????????? cmbbl.Text :=khlst.Cells[aCol,aRow];
????????? cmbbl.Visible := true;
????????? cmbbl.SetFocus;
??????? end else cmbbl.Visible :=false;
????? end else
????? begin
??????? cmbYearMonth.Visible :=false;
??????? cmbbxh.visible :=false;
??????? cmbmc.Visible :=false;
??????? cmbbrl.Visible :=false;
??????? cmbbl.Visible :=false;
????? end;
??? end;
end;

轉載于:https://www.cnblogs.com/wmymtx/archive/2011/12/10/2283527.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/380040.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/380040.shtml
英文地址,請注明出處:http://en.pswp.cn/news/380040.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

dp 扔雞蛋_使用動態編程(DP)的雞蛋掉落問題

dp 扔雞蛋Problem statement: You are given N floor and K eggs. You have to minimize the number of times you have to drop the eggs to find the critical floor where critical floor means the floor beyond which eggs start to break. Assumptions of the problem: 問…

MOVSX和MOVZX

MOVSX 先符號擴展,再傳送 格式: MOVSX 操作數A ,操作數B //操作數B的空間小于A比如說我們使用命令: movsx eax,bxbx是16位,eax是32位,傳值過程: 先用bx的符號位把eax高16填滿,b…

統計學習以及支持向量機的國內外基本比較重要的書

1、支持向量機導論,此書乃是SVM方面的經典著作, 該書的作者也是近年來SVM、kernel methods學術圈內的活躍學者,對于這些領域均有過重要的貢獻。這本書從“線性機器、核方法、統計學習理論、凸優化”四個方面揭示了SVM的內在機理 --利用核…

Java——集合(TreeSet)

package com.wsq.set; //這里進行調用Person()方法,要進行導包 import java.util.TreeSet; import com.wsq.bean.Person; public class Demo3_TreeSet { /*** TreeSet集合是用來對元素進行排序的,同樣它也可以保證元素的唯一* 當compareTo()方法返…

setmonth_日期setMonth()方法以及JavaScript中的示例

setmonthJavaScript日期setMonth()方法 (JavaScript Date setMonth() method) setMonth() method is a Date class method, it is used to set the month to the Date object with a valid month value (between 0 to 11. 0 for January, 1 for February and so on). setMonth(…

LEA與XCHG

LEA 格式: LEA 通用寄存器 內存地址功能:取地址命令 將內存地址賦值給寄存器 lea eax,dword ptr ds:[ecx0x16]dword 雙字 就是四個字節ptr pointer縮寫 即指針ds 數據段版寄存器[]里的數據是一個地址值,這個地址指向一個雙字型數據 將dwo…

分域名優化的時候要考慮備選IP的問題

我們在需要下載很多內容的時候,很容易想到做分域名的并發下載,給原來的服務器多分幾個域名,因為分不同的域名可能可以在瀏覽器中分到更多的下載進程,提高下載速度。 但是在做網絡應用的時候,我們的一個域名下面有的時候…

面試題-ASP 與 ASP.Net的區別?

比較簡潔的回答: 1.開發語言不同,ASP局限于用腳本語言來開發,而ASP.Net可以使用C#,VB.C等來開發。 2.運行機制不同,ASP是解釋運行的,執行效率較低。ASP.Net是編譯性的編程框架。 3.開發方式不同,ASP里前臺H…

Java——集合(輸入5個學生的信息按總分高低排序)

題目要求: 鍵盤錄入5個學生信息(姓名,語文成績,數學成績,英語成績),按照總分從高到低輸出到控制臺 分析: 1,定義一個學生類 * 成員變量:姓名,…

日期setHours()方法以及JavaScript中的示例

JavaScript Date setHours()方法 (JavaScript Date setHours() method) setHours() method is a Date class method, it is used to set the hour to the Date object with a valid hour value (between 00 to 23). setHours()方法是Date類方法,用于將小時設置為具有…

Google SSL zz

// Google SSL// Modified from SSL Certificates Pro//z 2011-12-29 8:59 AM is2120csdn : reader,calendar// UserScript// name Google SSL// namespace http://raychow.info/// version 2.1.2// description 強制 Google 使用安全連接。//// include htt…

阿諾德.施瓦辛格 訓練方法

阿諾德.施瓦辛格 訓練方法七次“奧林匹亞先生”獲得者、著名影星阿諾德.施瓦辛格,是廣大健美愛好者崇拜的偶像。即使在今天,他那無與倫比的二頭肌和胸肌仍為人們津津樂道。本文是他通過親身體會,講述了怎樣鍛煉才能增長肌肉的觀點和方法&…

ADC和SBB命令

ADC 帶進位加法指令 用法: adc 操作數1,操作數2相當于: 操作數1操作數2進位標志CF->操作數1現在的eax是0,C1,用adc指令直接會是0x6 SBB 帶進位減法指令 用法: sbb 操作數1,操作數2相當…

Java——集合(輸入一串字符串,統計字符串中每個字符出現的次數)

A:案例演示 需求:輸入一串字符串,統計字符串中每個字符出現的次數** 分析:1,定義一個需要被統計字符的字符串2,將字符串轉化為字符數組,才能拿到每一個字符3,定義雙列集合存儲字符串…

entry數組_數組entry()方法以及JavaScript中的示例

entry數組JavaScript entry()方法 (JavaScript entries() method) entries() method is used to create an iterator object of an array to access the keys (index) and values. entry()方法用于創建數組的迭代器對象,以訪問鍵(索引)和值。 Syntax: 句法&#xf…

mul和div指令(8位,16位,32位)

MUL 無符號乘法指令,默認操作數與eax相乘(這里只說32位,其他與下面的div類似) 格式: mul 操作數 //操作數只有一個操作數與eax相乘,結果共有16位(這里的16位是16進制數)&#xff…

2011年年終盤點

不知不覺又到了年底,我坐在電腦前,竭力的回憶,卻發現回憶中一片空白,能記起也就那么幾件事。 一、在暑假做了一個多月的電子商務 在這個過程中,我了解到電子商務的基本流程,以及一些銷售技巧,還…

ASP.NET Application,Session,Cookie和ViewState等對象用法和區別

ASP.NET Application,Session,Cookie和ViewState等對象用法和區別 在ASP.NET中,有很多種保存信息的內置對象,如:Application,Session,Cookie,ViewState和Cache等。下面分別介紹它們的用法和區別。 方法 信息量大小 作用域和保存時間 應用…

Java——集合(HashMap與Hashtable的區別)

* HashMap和Hashtable的區別* 共同點:* 底層都是哈希算法,都是雙列集合* 區別:* 1,HashMap是線程不安全的,效率高* Hashtable是線程安全的,效率低 * 2,HashMap可以存儲null鍵和null值* Has…

判斷字符串是否構成回文_構成字符串回文的最小刪除數

判斷字符串是否構成回文Problem statement: 問題陳述: Given string str find the minimum number of deletions such that the resultant string is a palindrome. 給定的字符串str找到最小的刪除數,以使最終的字符串成為回文。 Input:Each input con…