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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stringgrid.txt

?? 大量Delphi開發資料
?? TXT
?? 第 1 頁 / 共 3 頁
字號:
type
TExCell = class(TStringGrid)

public
procedure DeleteRow(ARow: Longint);
procedure DeleteColumn(ACol: Longint);
procedure InsertRow(ARow: LongInt);
procedure InsertColumn(ACol: LongInt);
end;

procedure TExCell.InsertColumn(ACol: Integer);
begin
ColCount :=ColCount +1;
MoveColumn(ColCount-1, ACol);
end;

procedure TExCell.InsertRow(ARow: Integer);
begin
RowCount :=RowCount +1;
MoveRow(RowCount-1, ARow);
end;

procedure TExCell.DeleteColumn(ACol: Longint);
begin
MoveColumn(ACol, ColCount -1);
ColCount := ColCount - 1;
end;

procedure TExCell.DeleteRow(ARow: Longint);
begin
MoveRow(ARow, RowCount - 1);
RowCount := RowCount - 1;
end; 



2003-11-17 16:21:00    
發表評語»»»     

2003-11-17 16:22:50    如何編寫使StringGrid中的一列具有Check功能,和CheckBox效果一樣 unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids;

type
TForm1 = class(TForm)
grid: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure gridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure gridClick(Sender: TObject);

private
{ Private declarations }

public
{ Public declarations }

end;

var
Form1: TForm1;
fcheck,fnocheck:tbitmap;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
i:SmallInt;
bmp:TBitmap;
begin
FCheck:= TBitmap.Create;
FNoCheck:= TBitmap.Create;
bmp:= TBitmap.create;
try
  bmp.handle := LoadBitmap( 0, PChar(OBM_CHECKBOXES ));
  With FNoCheck Do Begin
    width := bmp.width div 4;
    height := bmp.height div 3;
    canvas.copyrect( canvas.cliprect, bmp.canvas, canvas.cliprect );
  End;
With FCheck Do Begin
  width := bmp.width div 4;
  height := bmp.height div 3;
  canvas.copyrect(canvas.cliprect, bmp.canvas, rect( width, 0, 2*width, height ));
End;
finally
  bmp.free
end;
end;

procedure TForm1.gridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if not (gdFixed in State) then
  with TStringGrid(Sender).Canvas do
begin
  brush.Color:=clWindow;
  FillRect(Rect);
  if Grid.Cells[ACol,ARow]='yes' then
    Draw( (rect.right + rect.left - FCheck.width) div 2, (rect.bottom + rect.top - FCheck.height) div 2, FCheck )
  else
    Draw( (rect.right + rect.left - FCheck.width) div 2, (rect.bottom + rect.top - FCheck.height) div 2, FNoCheck );
end;
end;

procedure TForm1.gridClick(Sender: TObject);
begin
if grid.Cells[grid.col,grid.row]='yes' then
  grid.Cells[grid.col,grid.row]:='no'
else
  grid.Cells[grid.col,grid.row]:='yes';
end;

end. 


2003-11-17 16:23:23    StringGrid組件Cells內容分行顯示 
在Tstringgrid.ondrawcell事件中:

DrawText(StringGrid1.Canvas.Handle,pchar(StringGrid1.Cells[Acol,Arow]),Length(StringGrid1.Cells[Acol,Arow]),Rect,DT_WORDBREAK or DT_LEFT);

可以實現文字換行! 


2003-11-17 16:24:04    在StringGrid怎樣制作只讀的列 
在 OnSelectCell事件處理程序中,加入: (所有的列均設成可修改的)

if Col mod 2 = 0 then
  grd.Options := grd.Options + [goEditing]
else
  grd.Options := grd.Options - [goEditing]; 


2003-11-17 16:25:07    stringgrid從文本讀入的問題(Save/Load a TStringGrid to/from a file?) 
stringgrid從文本讀入的問題(Save/Load a TStringGrid to/from a file?)

// Save a TStringGrid to a file
procedure SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
f: TextFile;
i, k: Integer;
begin
AssignFile(f, FileName);
Rewrite(f);
with StringGrid do
begin
  // Write number of Columns/Rows
  Writeln(f, ColCount);
  Writeln(f, RowCount);
  // loop through cells
  for i := 0 to ColCount - 1 do
    for k := 0 to RowCount - 1 do
      Writeln(F, Cells[i, k]);
end;
CloseFile(F);
end;

// Load a TStringGrid from a file
procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
f: TextFile;
iTmp, i, k: Integer;
strTemp: String;
begin
AssignFile(f, FileName);
Reset(f);
with StringGrid do
begin
  // Get number of columns
  Readln(f, iTmp);
  ColCount := iTmp;
  // Get number of rows
  Readln(f, iTmp);
  RowCount := iTmp;
  // loop through cells & fill in values
  for i := 0 to ColCount - 1 do
    for k := 0 to RowCount - 1 do
    begin
      Readln(f, strTemp);
      Cells[i, k] := strTemp;
    end;
  end;
CloseFile(f);
end;

// Save StringGrid1 to 'c:.txt':
procedure TForm1.Button1Click(Sender: TObject);
begin
SaveStringGrid(StringGrid1, 'c:.txt');
end;

// Load StringGrid1 from 'c:.txt':
procedure TForm1.Button2Click(Sender: TObject);
begin
LoadStringGrid(StringGrid1, 'c:.txt');
end;

*******************************************

打開一個已有的文本文件,并將內容放到stringgrid中,文本行與stringgrid行一致; 
在文本中遇到空格則放入下一cells.
搞定!注意,我只寫了一個空格間隔的,你自己修改一下splitstring可以用多個空格分隔!

procedure TForm1.Button1Click(Sender: TObject);
var
aa,bb:tstringlist;
i:integer;
begin
aa:=tstringlist.Create;
bb:=tstringlist.Create;
aa.LoadFromFile('c:.txt');
for i:=0 to aa.Count-1 do
begin
  bb:=SplitString(aa.Strings[i],' ');
  stringgrid1.Rows[i]:=bb;
end;
aa.Free;
bb.Free;
end;

其中splitstring為:

function SplitString(const source,ch:string):tstringlist;
var
temp:string;
i:integer;
begin
result:=tstringlist.Create;
temp:=source;
i:=pos(ch,source);
while i<>0 do
begin
  result.Add(copy(temp,0,i-1));
  delete(temp,1,i);
  i:=pos(ch,temp);
end;
result.Add(temp);
end;




StringGrid組件Cells內容對齊

在StringGrid的DrawCell事件中添加類似的代碼就可以了:

VAR
vCol, vRow : LongInt;
begin
vCol := ACol; vRow := ARow;
WITH Sender AS TStringGrid, Canvas DO
  IF vCol = 2 THEN BEGIN ///對于第2列設置為右對齊
    SetTextAlign(Handle, TA_RIGHT);
    FillRect(Rect);
    TextRect(Rect, Rect.RIGHT-2, Rect.Top+2, Cells[vCol, vRow]);
  END;
end; 


2003-11-17 16:28:41    當我將StringGird的options屬性中包含goRowSelect項時每當我選中StringGrid中一行, 則選中行用深藍色顯示,我想將深藍色改為其他顏色應怎樣該? 
當我將StringGird的options屬性中包含goRowSelect項時每當我選中StringGrid中一行, 則選中行用深藍色顯示,我想將深藍色改為其他顏色應怎樣該?

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
With StringGrid1 do
begin
  If  (ARow= Krow) and not (acol = 0) then
  begin
     Canvas.Brush.Color :=clYellow;// ClBlue;
     Canvas.FillRect(Rect);
     Canvas.font.color:=ClBlack;
     Canvas.TextOut(rect.left , rect.top, cells[acol, arow]);
  end;
end;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
krow := Arow;  //*
kcol := Acol;
end;  

注意:必須把變量KROW的值初始為1或其他不為0的值,否則如果鎖定第一行的話,第一行的顏色將被自設顏色取代,而鎖定行不會被重畫。 


2003-11-17 16:32:44    怎么改變StringGrid控件某一列的背景和某一列的只讀屬性,StringGrid控件標題欄的對齊. 
怎么改變StringGrid控件某一列的背景和某一列的只讀屬性,StringGrid控件標題欄的對齊.
請參考以下代碼:
在OnDrawCell事件中處理背景色。程序如下:
//將第二列背景變為紅色。
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if not((acol=1) and (arow>=stringgrid1.fixedrows)) then exit;
with stringgrid1 do
begin
  canvas.Brush.color:=clRed;
  canvas.FillRect(Rect);
  canvas.TextOut(rect.left+2,rect.top+2,cells[acol,arow])
end;
end;

//加入如下代碼,那么StringGrid的第四列就只讀了.其他列非只讀
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin
with StringGrid1 do begin
  if ACol = 4 then
    Options := Options - [goEditing]
  else Options := Options + [goEditing];
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
dx,dy:byte;
begin
if (acol = 4) and not (arow = 0) then
  with stringgrid1 do
  begin
    canvas.Brush.color := clYellow;
    canvas.FillRect(Rect);
    canvas.font.color := clblue;
    dx:=2;//調整此值,控制字在網格中顯示的水平位置
    dy:=2;//調整此值,控制字在網格中顯示的垂直位置
    canvas.TextOut(rect.left+dx , rect.top+dy , cells[acol, arow]);
  end;
//控制標題欄的對齊
if (arow = 0) then
  with stringgrid1 do
  begin
    canvas.Brush.color := clbtnface;
    canvas.FillRect(Rect);
    dx := 12; //調整此值,控制字在網格中顯示的水平位置
    dy := 5; //調整此值,控制字在網格中顯示的垂直位置
    canvas.TextOut(rect.left + dx, rect.top + dy, cells[acol, arow]);
  end;
end;   


2003-11-17 16:37:15    在stringGrid中使用回車鍵模擬TAB鍵切換單元格的功能實現 
......
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
label
nexttab;
begin
if key=#13 then
begin
  key:=#0;
  nexttab:
  if (stringgrid1.Col<stringgrid1.ColCount-1) then
    begin
      stringgrid1.Col:=stringgrid1.Col+1;
    end
  else
  begin
    if stringgrid1.Row>=stringgrid1.RowCount-1 then
      stringgrid1.RowCount:=stringgrid1.rowCount+1;
    stringgrid1.Row:=stringgrid1.Row+1;
    stringgrid1.Col:=0;
    goto nexttab;
  end;
end;
end;
.........   


2003-11-17 16:42:17    stringgrid如何清空 
with StringGrid1 do for I := 0 to ColCount - 1 do Cols[I].Clear; 


2003-11-17 16:44:00    選中某單元格,然后在該單元格中修改 
-> 選中某單元格,然后在該單元格中修改

設置屬性:
  StringGrid1.Options:=StringGrid1.Options+[goEditing]; 


2003-11-17 16:46:14    讓記錄在StringGrid中分頁顯示 
在Uses中加入: ADOInt 

//首先設定PageSize,取出PageCount
procedure TForm1.Button1Click(Sender: TObject);
begin
ADoquery1.Recordset.PageSize :=spinedit1.Value;
Edit1.Text := IntToStr(ADoquery1.Recordset.PageCount);
ShowData(spinedit2.Value);
end; 

//然后將AbsolutePage的數據乾坤大挪移到StringGrid1中 
procedure TForm1.ShowData(page:integer);
var
iRow, iCol, iCount : Integer;
rs : ADOInt.Recordset;
begin
ADoquery1.Recordset.AbsolutePage:=Page;
Currpage:=page;  
iRow := 0;
iCol := 1;
stringgrid1.Cells[iCol, iRow] := 'FixedCol1';
Inc(iCol);
stringgrid1.Cells[iCol, iRow] := 'FixedCol2';
Inc(iRow);
Dec(iCol);
rs := adoquery1.Recordset;
for iCount := 1 to SpinEdit1.Value do 
begin
  stringgrid1.Cells[iCol, iRow] := rs.Fields.Get_Item('FieldName1').Value;
  Inc(iCol);
  stringgrid1.Cells[iCol, iRow] := rs.Fields.Get_Item('FieldName1').Value;
  Inc(iRow);
  Dec(iCol);
  rs.MoveNext;
end;
 
//上一頁 
procedure TForm1.Button2Click(Sender: TObject);
begin
If (CurrPage)<>1 then
  ShowData(CurrPage-1);
end;

//下一頁
procedure TForm1.Button3Click(Sender: TObject);
begin
If CurrPage<>ADoquery1.Recordset.PageCount then
  ShowData(CurrPage+1);
end; 


2003-11-17 16:48:51    打印StringGrid的程序源碼 
這段代碼沒有看懂,但是可能有的朋友需要,所以共享一下子 :)

procedure TForm1.SpeedButton11Click(Sender: TObject);
Var
Index_R ,ALeft: Integer;
Index : Integer;
begin
StringGrid_File('D:\AAA.TXT');
if Not LinkTextFile then
begin
  ShowMessage('失敗');
  Exit;
end;
//
QuickRep1.DataSet := ADOTable1;
Index_R := ReSize(StringGrid1.Width);
ALeft := 13;
Create_Title(TitleBand1,ALeft,24,HeaderControl1.Sections.Items[0].Width,20,
   HeaderControl1.Sections[0].Text,taLeftJustify);
with Create_QRDBText(DetailBand1,ALeft,8,StringGrid1.ColWidths[0],20,
       StringGrid1.Font,taLeftJustify) do
begin
  DataSet := ADOTable1;
  DataField := ADOTable1.Fields[0].DisplayName;
end;
ALeft := ALeft + StringGrid1.ColWidths[0] * Index_R + Index_R;
For Index := 1 to ADOTable1.FieldCount - 1 do
begin
  Create_VLine(TitleBand1,ALeft - 13,16,1,40);
  Create_Title(TitleBand1,ALeft,24,HeaderControl1.Sections.Items[Index].Width,20,
    HeaderControl1.Sections[Index].Text,taLeftJustify);
  Create_VLine(DetailBand1,ALeft - 13,-1,1,31);
  with Create_QRDBText(DetailBand1,ALeft ,8,StringGrid1.ColWidths[Index] * Index_R,20,
       StringGrid1.Font,taLeftJustify) do
  begin
    DataSet := ADOTable1;
    DataField := ADOTable1.Fields[Index].DisplayName;
  end;
  ALeft := ALeft + StringGrid1.ColWidths[Index] *  Index_R + Index_R;
end;
QuickRep1.Preview;
end;

function TForm1.ReSize(AGridWidth: Integer): Integer;
begin
Result := Trunc(718 / AGridWidth);
end;

function TForm1.StringGrid_File(AFileName: String): Boolean;
var
StrValue : String;
Index : Integer;
ACol , ARow : Integer;
AFileValue : System.TextFile;
begin
StrValue := '';
Try
  AssignFile(AFileValue , AFileName);
  ReWrite(AFileValue);
  StrValue := HeaderControl1.Sections[0].Text;
  For Index := 1 to HeaderControl1.Sections.Count - 1 do
    StrValue := StrValue + ',' + HeaderControl1.Sections[Index].Text;
  Writeln(AFileValue,StrValue);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利91精品一区二区三区| 欧美日韩国产精品自在自线| 国产v综合v亚洲欧| 成人高清伦理免费影院在线观看| 欧美一区二区三区的| 不卡免费追剧大全电视剧网站| 欧美性欧美巨大黑白大战| 精品国产污污免费网站入口| 亚洲精品视频在线| 国产乱国产乱300精品| 91精品国模一区二区三区| 国产精品动漫网站| 激情综合网天天干| 欧美日韩你懂得| 亚洲人成网站精品片在线观看| 国产一区二区三区在线观看免费 | 91麻豆精品在线观看| 精品国产91久久久久久久妲己 | 欧美日韩国产一二三| 中文字幕的久久| 国产一区 二区 三区一级| 欧美一卡二卡在线| 午夜精品久久一牛影视| 色哟哟一区二区三区| 亚洲色图欧美在线| 99国产精品久| 中文字幕一区二区日韩精品绯色| 精品一区二区三区欧美| 欧美一区二区福利视频| 亚洲二区在线视频| 欧洲在线/亚洲| 亚洲高清视频中文字幕| 欧美巨大另类极品videosbest | 日本一区二区三级电影在线观看| 麻豆免费看一区二区三区| 欧美一区二区三区系列电影| 夜夜操天天操亚洲| 欧洲生活片亚洲生活在线观看| 亚洲视频在线一区| 色菇凉天天综合网| 亚洲一区二区影院| 欧美人与z0zoxxxx视频| 免费看精品久久片| 欧美精品一区二区久久婷婷| 国产一区二区三区免费| 国产清纯美女被跳蛋高潮一区二区久久w | 五月天丁香久久| 91精品国模一区二区三区| 久久99热这里只有精品| 精品日本一线二线三线不卡| 国产黄色91视频| 中文字幕一区二区三区四区不卡| 91在线看国产| 偷拍日韩校园综合在线| 欧美成人高清电影在线| 国产成人8x视频一区二区| 亚洲日本护士毛茸茸| 欧美男人的天堂一二区| 精品亚洲aⅴ乱码一区二区三区| 久久综合九色综合97_久久久| 成人免费不卡视频| 亚洲风情在线资源站| 久久综合狠狠综合久久综合88| aaa亚洲精品| 日本成人在线网站| 国产精品久久久久久久午夜片| 欧美综合视频在线观看| 国内精品久久久久影院薰衣草| 日韩久久一区二区| 欧美一级国产精品| 91亚洲精华国产精华精华液| 老司机精品视频线观看86| 国产日韩精品一区二区浪潮av| 色婷婷国产精品| 国产伦精品一区二区三区免费| 亚洲精品成人悠悠色影视| 亚洲精品一区在线观看| 欧美视频精品在线观看| 福利一区在线观看| 男女激情视频一区| 亚洲精品老司机| 国产精品国产三级国产普通话三级| 欧美日韩美少妇| bt欧美亚洲午夜电影天堂| 美日韩一区二区| 夜夜操天天操亚洲| 国产精品丝袜黑色高跟| 日韩欧美资源站| 91视频国产观看| 国产成人在线色| 紧缚捆绑精品一区二区| 午夜精品成人在线视频| 国产精品另类一区| 精品三级在线观看| 欧美美女黄视频| 欧美伊人久久久久久午夜久久久久| 国产精一区二区三区| 婷婷久久综合九色综合伊人色| 亚洲欧洲av另类| 久久亚洲一区二区三区明星换脸 | 大美女一区二区三区| 免费在线观看不卡| 五月天激情综合| 亚洲在线免费播放| 一区二区三区精品视频在线| 国产精品―色哟哟| 国产欧美一区二区三区在线看蜜臀| 欧美成人性福生活免费看| 欧美福利一区二区| 91麻豆精品国产自产在线| 欧美日韩国产综合一区二区| 欧美在线一区二区三区| 91网站最新地址| 色欧美88888久久久久久影院| 成人av网址在线观看| 成人激情图片网| 成人成人成人在线视频| 99国产精品久久久久久久久久久| 99精品欧美一区二区三区综合在线| 国产91在线|亚洲| 9i在线看片成人免费| 色综合天天综合给合国产| 日本高清不卡一区| 欧美亚一区二区| 91.com视频| 欧美精品一区二区三区久久久| 精品久久一区二区三区| 欧美日韩一区在线观看| 国产精品456露脸| 久久国产夜色精品鲁鲁99| 九九精品视频在线看| 精品一区二区精品| 久久综合999| 欧美激情一区二区| 国产精品视频看| 国产精品欧美综合在线| 26uuu国产一区二区三区| 国产午夜精品久久久久久久| 不卡一二三区首页| 欧美大片国产精品| 在线观看网站黄不卡| 处破女av一区二区| 日韩av电影免费观看高清完整版 | 久久久一区二区三区捆绑**| 欧美综合天天夜夜久久| 欧美日韩在线免费视频| 欧美一二三四在线| 精品精品国产高清a毛片牛牛| 91精品国产综合久久精品性色| 制服丝袜中文字幕一区| 久久久久九九视频| 一区二区三区影院| 国产久卡久卡久卡久卡视频精品| 99麻豆久久久国产精品免费 | 99re66热这里只有精品3直播| 色综合久久久网| 6080午夜不卡| 亚洲精品日韩一| av一二三不卡影片| 91精品国产高清一区二区三区蜜臀| 国产色产综合色产在线视频| 中文字幕一区二区三区av| 美女网站在线免费欧美精品| 成人动漫中文字幕| 国产精品毛片大码女人| 久久精品理论片| 九九精品视频在线看| 538在线一区二区精品国产| 亚洲图片欧美综合| 成人一区二区三区中文字幕| 精品国产乱码久久久久久浪潮 | 国产女人aaa级久久久级 | 国内一区二区在线| 91精品国产色综合久久不卡蜜臀| 日本一区二区视频在线| 韩国三级电影一区二区| 欧美一区二区三区视频| 亚洲成人在线网站| 国产.欧美.日韩| 久久精品无码一区二区三区| 99免费精品在线观看| 日韩中文字幕亚洲一区二区va在线| 在线亚洲高清视频| 国产在线播放一区| 亚洲精品国产a| 日韩免费性生活视频播放| 视频在线在亚洲| 欧美二区在线观看| 国产一区二区福利视频| 亚洲国产精品欧美一二99| 中文子幕无线码一区tr| 国产成人自拍在线| 国产不卡视频在线播放| 欧美伦理电影网| 亚洲国产一区二区a毛片| 99久久99久久精品免费看蜜桃| 欧美一区二区三区视频在线观看| 亚洲一区在线电影| 欧美日本国产视频| 婷婷一区二区三区|