亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? stringgrid.txt

?? 大量Delphi開發(fā)資料
?? TXT
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
//d.Canvas.Font.style:=d.Canvas.Font.style+[fsBold];
end;
if gdfocused in state then
begin
d.canvas.Brush.color:=$00ff00;
end;
if fixed then
begin
d.Canvas.Pen.color:=$0;
d.canvas.Rectangle(r);

d.Canvas.Pen.color:=$f0f0f0;
d.Canvas.Pen.Width:=2;
d.canvas.Moveto(r.left+1,r.top+2);
d.canvas.Lineto(r.left+r.right,r.top+2);

d.Canvas.Pen.color:=$808080;
d.Canvas.Pen.Width:=1;
d.canvas.Moveto(r.Left+1,r.bottom-1);
d.canvas.Lineto(r.left+r.right,r.bottom-1);

end else
begin
d.Canvas.Pen.color:=$0;
d.Canvas.Pen.Width:=1;
d.canvas.Rectangle(r);
end;
n:=r.top+4;
ts:=TStringList.Create;
ts.CommaText:=s;
for i:=0 to ts.Count-1 do
begin
d.canvas.Textout(r.left+4,n,ts[i]);
inc(n,d.RowHeights[ARow]);
end;
end;

//重載 OnTopLeftChange事件,特別是行的合并
procedure TForm1.SGTopLeftChanged(Sender: TObject);
var
d:TStringGrid;
begin
d:=TStringGrid(Sender);
d.Cells[0,1]:=d.Cells[0,1];
d.Cells[0,2]:=d.Cells[0,2];
end;

end. 


2003-11-24 9:42:21    TstringGrid 的行列合并研究【這段代碼來(lái)自wangxian11】 
  正好在帖子上看到了,功能能夠?qū)崿F(xiàn)。(wangxian11大哥可真是厲害~~)可惜的是,效果還不是很好,如果將來(lái)有更好的希望大家提供吧。

unit Unit1;

//建立一工程,
//粘貼本單元代碼即可看 STringGrid 行列合并效果
//但發(fā)現(xiàn)非固定行非固定列的合并效果不好
interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, ADODB, DBTables, Grids;//注意這里要引用

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure SGDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
procedure SGTopLeftChanged(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

// 以下 StringGrid 為固定行,固定列的合并所必須進(jìn)行的處理
// 非固定行,非固定列的合并效果不好
var
sg:TStringGrid;
procedure TForm1.FormCreate(Sender: TObject);
var
i,j:integer ;
begin
Sg:=TStringGrid.Create(self);

with SG do
begin
parent:=self;
align:=alclient;
DefaultDrawing:=false;
FixedColor:=clYellow;
RowCount:=30;
ColCount:=20;
FixedCols:=1;
FixedRows:=1;
GridLineWidth:=0;
Options:=Options+[goEditing]-[goVertLine,goHorzLine,goRangeSelect];
OnDrawCell:=SGDrawCell;
OnTopLeftChanged:=SGTopLeftChanged;
Canvas.Font.name:='宋體';
Canvas.Font.Size:=10;

for i:=0 to colCount-1 do
for j:=0 to RowCount-1 do
  cells[i,j]:=Format('%d行%d列',[j,i]);

for i:=0 to colCount-1 do
  cells[i,0]:=Format('第%d列',[i]);
for i:=0 to RowCount-1 do
  cells[0,i]:=Format('第%d行',[i]);

Cells[0,0]:='   左上角';
Cells[1,0]:='AA這是列合并BB';
Cells[0,1]:='A這是行'#10'合并BB';
Cells[1,1]:='1111111';
Cells[1,2]:='1111222';
Cells[2,1]:='2222111';
Cells[2,2]:='2222222';
end;
end;

//重載 OnDrawCell 事件
procedure TForm1.SGDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
r:TRect;
d:TStringGrid;
s:string;
ts:TStrings;
i,n:integer;
fixed:Boolean;
begin
d:=TStringGrid(sender);
if (Acol=2) and (ARow=0) then
begin
r.left:=Rect.left-1-d.colwidths[ACol-1];
r.top:=rect.top-1;
r.right:=rect.right;
r.bottom:=rect.bottom;
s:=d.cells[ACol-1,ARow];
end else
if (Acol=1) and (ARow=0) then
begin
r.left:=Rect.left-1;
r.top:=rect.top-1;
r.right:=rect.right+d.colwidths[ACol+1];
r.bottom:=rect.bottom;
s:=d.cells[ACol,ARow];
end   //////////以上列合并
else
if (Acol=0) and (ARow=2) then
begin
r.left:=Rect.left-1;
r.top:=rect.top-1-d.RowHeights[ARow-1];
r.right:=rect.right;
r.bottom:=rect.bottom;
s:=d.cells[ACol,ARow-1];
end else
if (Acol=1) and (ARow=0) then
begin
r.left:=Rect.left-1;
r.top:=rect.top-1;
r.right:=rect.right;
r.bottom:=rect.bottom+d.RowHeights[ARow+1];
s:=d.cells[ACol,ARow];
end  ////////以上為行合并
else
begin
r.left:=Rect.left-1;
r.top:=rect.top-1;
r.right:=rect.right;
r.bottom:=rect.bottom;
s:=d.cells[ACol,ARow];
end;

d.Canvas.brush.color:=d.color;
d.canvas.Font.color:=$ff0000;

Fixed:=false;
if (Arow<d.FixedRows) or (ACol<d.Fixedcols) then
begin
d.Canvas.brush.color:=d.FixedColor;
d.Canvas.Font.color:=$ff00ff;
Fixed:=True;
//d.Canvas.Font.style:=d.Canvas.Font.style+[fsBold];
end;
if gdfocused in state then
begin
d.canvas.Brush.color:=$00ff00;
end;
if fixed then
begin
d.Canvas.Pen.color:=$0;
d.canvas.Rectangle(r);

d.Canvas.Pen.color:=$f0f0f0;
d.Canvas.Pen.Width:=2;
d.canvas.Moveto(r.left+1,r.top+2);
d.canvas.Lineto(r.left+r.right,r.top+2);

d.Canvas.Pen.color:=$808080;
d.Canvas.Pen.Width:=1;
d.canvas.Moveto(r.Left+1,r.bottom-1);
d.canvas.Lineto(r.left+r.right,r.bottom-1);

end else
begin
d.Canvas.Pen.color:=$0;
d.Canvas.Pen.Width:=1;
d.canvas.Rectangle(r);
end;
n:=r.top+4;
ts:=TStringList.Create;
ts.CommaText:=s;
for i:=0 to ts.Count-1 do
begin
d.canvas.Textout(r.left+4,n,ts[i]);
inc(n,d.RowHeights[ARow]);
end;
end;

//重載 OnTopLeftChange事件,特別是行的合并
procedure TForm1.SGTopLeftChanged(Sender: TObject);
var
d:TStringGrid;
begin
d:=TStringGrid(Sender);
d.Cells[0,1]:=d.Cells[0,1];
d.Cells[0,2]:=d.Cells[0,2];
end;

end. 


2003-11-28 11:58:31    刪除選定行【來(lái)自wyb_star】 

Procedure DeleteRow(AGrid : TStringGrid);
var i, cr : integer;
begin
If assigned(AGrid) then
begin
 cr := AGrid.Selection.Top;
 for i := cr + 1 to AGrid.RowCount - 1 do
   AGrid.Rows[i-1].Assign(AGrid.Rows[i]);
 AGrid.RowCount := AGrid.RowCount - 1;
end;
end;  


2003-11-28 11:59:58    保存StringGrid到html文件【來(lái)自wyb_star】 

procedure SaveToHtml(StringGrid:TStringGrid;const FileName : string;const Title : string);
var
Txt : TextFile;
i,ii: integer;
Value:string;
BgColor:TColor;
function GetColor(Color: TColor): String;
var s: String;
begin
 if Color = clNone then
   s := '000000'
 else
   s := IntToHex(ColorToRGB(Color), 6);
 Result := Copy(s, 5, 2) + Copy(s, 3, 2) + Copy(s, 1, 2);
end;
begin
BgColor := clWhite;
AssignFile(Txt,FileName);
Rewrite(Txt);
WriteLn(Txt,'<Title>' + Title + '</Title>');
WriteLn(Txt,'<TABLE WIDTH=100% border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">');

for i := 0 to StringGrid.RowCount - 1 do
begin
 WriteLn(Txt,'<TR>');
 for ii := 0 to StringGrid.ColCount - 1 do
 begin
   Value := StringGrid.Cells[ii,i];
   if Value = '' then Value := '&nbsp;';
   if (ii < StringGrid.FixedCols) or (i < StringGrid.FixedRows) then
     BgColor := StringGrid.FixedColor
   else
     BgColor := StringGrid.Color;
   WriteLn(Txt,'<TD BGCOLOR="#' + GetColor(BgColor) + '"><font color="#' +
     GetColor(StringGrid.Font.Color) + '">' + Value + '</font></TD>')
 end;
 WriteLn(Txt,'</TR>');
end;
WriteLn(Txt,'</TABLE>');
CloseFile(Txt);
end;

使用示例:
SaveToHtml(StringGrid1,'c:\1.html','標(biāo)題');  


2003-11-28 17:19:35    高速排序函數(shù)(在StringGrid里加上5000行試試就知道它的效率了)【來(lái)自wyb_star】 
【這個(gè)東西很強(qiáng)勁的,感謝 wyb_Star 提供】

高速排序函數(shù)(在StringGrid里加上5000行試試就知道它的效率了) 
procedure Quicksort(Grid:TStringGrid; var List:array of integer;
 min, max,sortcol,datatype: Integer);
{List is a list of rownumbers in the grid being sorted}
var
med_value : integer;
hi, lo, i : Integer;

function compare(val1,val2:string):integer;
var
 int1,int2:integer;
 float1,float2:extended;
 errcode:integer;
begin
 case datatype of
   0: result:=ANSIComparetext(val1,val2);
   1: begin
        int1:=strtointdef(val1,0);
        int2:=strtointdef(val2,0);
        if int1>int2 then result:=1
        else if int1<int2 then result:=-1
        else result:=0;
      end;

   2: begin
        val(val1,float1,errcode);
        if errcode<>0 then float1:=0;
        val(val2,float2,errcode);
        if errcode<>0 then float2:=0;
        if float1>float2 then result:=1
        else if float1<float2 then result:=-1
        else result:=0;
      end;
    else result:=0;
 end;
end;

begin
{If the list has <= 1 element, it's sorted}
if (min >= max) then Exit;
{Pick a dividing item randomly}
i := min + Trunc(Random(max - min + 1));
med_value := List[i];
List[i] := List[min]; { Swap it to the front so we can find it easily}
{Move the items smaller than this into the left
half of the list. Move the others into the right}
lo := min;
hi := max;
while (True) do
begin
 // Look down from hi for a value < med_value.
 while compare(Grid.cells[sortcol,List[hi]]
                      ,grid.cells[sortcol,med_value])>=0 do
 (*ANSIComparetext(Grid.cells[sortcol,List[hi]]
                      ,grid.cells[sortcol,med_value])>=0 do*)
 begin
     hi := hi - 1;
     if (hi <= lo) then Break;
 end;
 if (hi <= lo) then
 begin {We're done separating the items}
   List[lo] := med_value;
   Break;
 end;

 // Swap the lo and hi values.
 List[lo] := List[hi];
 inc(lo); {Look up from lo for a value >= med_value}
 while Compare(grid.cells[sortcol,List[lo]],
          grid.cells[sortcol,med_value])<0 do
 begin
     inc(lo);
     if (lo >= hi) then break;
 end;
 if (lo >= hi) then
 begin  {We're done separating the items}
   lo := hi;
   List[hi] := med_value;
   break;
 end;
 List[hi] := List[lo];
end;
{Sort the two sublists}
Quicksort(Grid,List, min, lo - 1,sortcol,datatype);
Quicksort(Grid,List, lo + 1, max,sortcol,datatype);
end;

//datatype 0:按字符排序  1:按整型排序  2:按浮點(diǎn)型排序
procedure Sortgrid(Grid : TStringGrid; sortcol,datatype:integer);
var
i : integer;
tempgrid:tstringGrid;
list:array of integer;
begin
screen.cursor:=crhourglass;
tempgrid:=TStringgrid.create(nil);
with tempgrid do
begin
 rowcount:=grid.rowcount;
 colcount:=grid.colcount;
 fixedrows:=grid.fixedrows;
end;
with Grid do
begin
 setlength(list,rowcount-fixedrows);
 for i:= fixedrows to rowcount-1 do
 begin
   list[i-fixedrows]:=i;
   tempgrid.rows[i].assign(grid.rows[i]);
 end;
 quicksort(Grid, list,0,rowcount-fixedrows-1,sortcol,datatype);
 for i:=0 to rowcount-fixedrows-1 do
 begin
   rows[i+fixedrows].assign(tempgrid.rows[list[i]])
 end;
 row:=fixedrows;
end;
tempgrid.free;
setlength(list,0);
screen.cursor:=crdefault;
end;

使用方法:
procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
c:integer;
w:integer;
Grid:TStringGrid;
begin
Grid := Sender as TStringGrid;
with Grid do
if y<=rowheights[0] then
begin
 c:=0;
 w:=colwidths[0];
 while (c<colcount) and (w<=x) do
 begin
   inc(c);
   w:=w+colwidths[c]+gridlinewidth;
 end;
 sortgrid(Grid,c,0);
end;

end; 




2003-11-28 17:21:51    將TStringGrid的3D界面改成Flat樣式【來(lái)自wyb_star】 
將TStringGrid的3D界面改成Flat樣式
修改grids中TCustomGrid的paint函數(shù)
主要是下面兩句
DrawEdge(Canvas.Handle, TempRect, BDR_RAISEDINNER, FrameFlags1);
DrawEdge(Canvas.Handle, TempRect, BDR_RAISEDINNER, FrameFlags2);
具體的說(shuō)明可以查msdn
修改如下:
DrawEdge(Canvas.Handle, Ctl3DRect, BDR_RAISEDINNER, BF_FLAT);
DrawEdge(Canvas.Handle, Ctl3DRect, BDR_RAISEDINNER, BF_FLAT);  


2003-12-1 17:34:36    如何在寫表格時(shí)改變STRINGGRID.cells[i,j]的顏色【dcsdcs編寫】 
我是通過繼承下來(lái),修改的
procedure WMPaint(var Message: TWMPaint); message wm_Paint;


procedure TdcsStringGrid.WMPaint(var Message: TWMPaint);
var
rt:TRect;
tmpc:DWORD;
begin
PaintHandler(Message);
if not(focused) then
begin
  tmpc:=Canvas.font.Color;
  rt:=CellRect(selection.Left,selection.Top);
  canvas.Lock;
  canvas.FillRect(rt);
  Canvas.font.Color:=font.Color;
  Canvas.TextRect(rt,rt.Left+2,rt.top+2,Cells[selection.Left,selection.Top]);
  //canvas.TextOut(rt.Left+2,rt.top+2,Cells[selection.Left,selection.Top]);
  Canvas.font.Color:=tmpc;
  canvas.UnLock;
end;
end;    


?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线不卡一区| 成人网在线免费视频| 精品88久久久久88久久久| 成人免费毛片app| 亚洲第一激情av| 日韩欧美久久久| 91香蕉国产在线观看软件| 男人的天堂久久精品| 一区二区三区在线视频免费| 久久久久久电影| 日韩一卡二卡三卡四卡| 在线免费观看不卡av| 99re热视频精品| 国产麻豆精品theporn| 日本欧美一区二区在线观看| 亚洲精品大片www| 国产精品久久久久永久免费观看| 日韩精品中文字幕一区| 欧美精品成人一区二区三区四区| 国产精品1区2区| 亚洲裸体在线观看| 一本久久a久久精品亚洲| 国产精品一区在线观看乱码 | 欧美在线制服丝袜| 成人午夜视频福利| 精品一区二区三区免费| 国产精品综合网| 久久99蜜桃精品| 男女男精品视频网| 日韩高清中文字幕一区| 亚洲成人中文在线| 亚洲成年人网站在线观看| 一区二区三区免费网站| 一区二区三区在线看| 亚洲精品成a人| 亚洲男同性恋视频| 亚洲精品菠萝久久久久久久| 一区二区在线免费| 亚洲一区二区三区中文字幕| 一区二区成人在线| 亚洲一区二区三区美女| 亚洲福中文字幕伊人影院| 亚洲一区二区精品3399| 亚洲第一在线综合网站| 天涯成人国产亚洲精品一区av| 无吗不卡中文字幕| 日韩高清不卡一区| 韩国av一区二区三区在线观看| 精品一区二区免费看| 国产麻豆成人传媒免费观看| 国产成人精品亚洲777人妖 | 色婷婷亚洲精品| 一本到一区二区三区| 91精品91久久久中77777| 色哟哟国产精品| 欧美高清精品3d| 欧美精品一区二区三区蜜桃视频| 国产视频一区二区三区在线观看| 国产精品网站导航| 亚洲日本护士毛茸茸| 日韩精品一级二级| 国产高清不卡二三区| 99久久精品一区二区| 欧美视频中文字幕| 欧美大片在线观看一区| 中文字幕不卡在线| 亚洲mv在线观看| 国产一区二区三区蝌蚪| 91视频国产观看| 日韩视频在线你懂得| 中文文精品字幕一区二区| 亚洲亚洲精品在线观看| 九一九一国产精品| 99久久婷婷国产综合精品| 欧美人与性动xxxx| 久久精品人人做人人爽97| 亚洲最大成人综合| 精品影院一区二区久久久| 91污片在线观看| 日韩精品一区二区三区四区| 国产精品美女www爽爽爽| 日韩精品国产精品| 懂色av中文字幕一区二区三区 | 成人一级黄色片| 精品久久久久久久久久久久久久久| 国产日本欧美一区二区| 亚洲一区视频在线| 国模少妇一区二区三区| 91豆麻精品91久久久久久| 精品国产制服丝袜高跟| 亚洲黄色尤物视频| 国产精品白丝av| 欧美裸体一区二区三区| 国产精品超碰97尤物18| 免费久久99精品国产| 91一区一区三区| 26uuu色噜噜精品一区二区| 亚洲午夜久久久久| 不卡欧美aaaaa| 日韩欧美亚洲国产另类| 亚洲综合在线观看视频| 国产乱码精品一区二区三区忘忧草| 欧美体内she精视频| 日本一区二区高清| 久久99精品国产麻豆婷婷| 欧美日韩卡一卡二| 中文字幕在线播放不卡一区| 黄色日韩网站视频| 5566中文字幕一区二区电影| 亚洲免费观看高清完整| 成人一级片网址| 久久一夜天堂av一区二区三区 | 久久精品国产精品亚洲红杏 | 精品日韩成人av| 天天操天天干天天综合网| 一本一本久久a久久精品综合麻豆| 国产欧美精品一区| 紧缚奴在线一区二区三区| 欧美精品在线一区二区| 亚洲国产成人va在线观看天堂| av不卡一区二区三区| 欧美极品美女视频| 国产不卡免费视频| 精品国产成人在线影院| 久久99久久99| 久久综合久久99| 国产精品系列在线观看| 久久久久高清精品| 国产精品伊人色| 国产日韩欧美综合在线| 国产精品99久久久久久有的能看| 久久亚洲一级片| 国产精品一区免费视频| 欧美激情一区二区| 成人av午夜影院| 亚洲欧洲日韩女同| 色婷婷精品久久二区二区蜜臀av| 亚洲欧洲日产国产综合网| 91网上在线视频| 一区二区三区欧美日| 91成人网在线| 亚洲3atv精品一区二区三区| 9191精品国产综合久久久久久| 日韩中文欧美在线| 精品日韩欧美在线| 岛国av在线一区| 亚洲视频一二区| 欧美性受xxxx| 青青草国产精品97视觉盛宴 | 久久综合av免费| 成人国产在线观看| 亚洲免费观看高清完整版在线观看熊 | 成人欧美一区二区三区黑人麻豆| 99久久99久久精品免费观看| 一区二区免费在线| 欧美一区午夜视频在线观看| 美女视频网站久久| 国产精品天美传媒| 欧美影院精品一区| 久久电影网电视剧免费观看| 国产欧美日本一区二区三区| 一本大道av一区二区在线播放| 香蕉久久夜色精品国产使用方法 | 日韩一区二区精品| 成人午夜视频在线| 无码av免费一区二区三区试看 | 91精品婷婷国产综合久久竹菊| 免费亚洲电影在线| 国产人久久人人人人爽| 在线中文字幕不卡| 麻豆91小视频| 亚洲欧洲精品一区二区三区 | 在线观看视频欧美| 国产视频视频一区| 91日韩一区二区三区| 日本欧美大码aⅴ在线播放| 久久久综合九色合综国产精品| 一本色道久久综合狠狠躁的推荐| 日韩精品一二区| 一区二区中文视频| 日韩午夜小视频| 色婷婷综合五月| 国产精品一二三区| 舔着乳尖日韩一区| 中文字幕在线观看一区| 欧美一级搡bbbb搡bbbb| 99re热视频这里只精品| 狠狠色综合播放一区二区| 一区二区三区四区高清精品免费观看 | 亚洲一区在线播放| 国产日韩精品久久久| 717成人午夜免费福利电影| 成人精品国产一区二区4080 | 91国偷自产一区二区三区成为亚洲经典 | 一区二区三区av电影| 久久夜色精品国产欧美乱极品| 色悠悠久久综合| 国产激情91久久精品导航| 五月天视频一区| 亚洲精品中文在线|