最近因为工作需要需要作一些东西,写完之后,再回头看一看,竟然又拾起了以前的一些知识,来和大家一分享,或许太过于粗糙。  
 
StringGrid的对齐(水平对齐、垂直对齐、字体格式设置。)  
可说的不对,只有一句,将其看成由一块一块的小方块组成,只需要在其Canvas上作文章就可以了。如代码:  
           For  Index_Grid  :=  0  to  StringGrid1.ColCount  do  
           begin  
               if  FormatRC(Index_Grid)  then  
               begin  
 
                   if  FFormat  =  3  then  
                   begin  
                       For  Index  :=  Low(Result_R)  to  High(Result_R)  do  
                       begin  
                           if  ACol  =  Result_R[Index]  then  
                           begin  
                               TempR  :=  StringGrid1.CellRect(Result_R[Index],ARow);  
                               FillRect(TempR);//清除原有内容  
                               if  ACol  =  Result_R[Index]  then  
                               begin  
                                   DrawText(Handle,  PChar(Cells[ACol,  ARow]),  
                                   Length(Cells[ACol,  ARow]),  R,  DT_RIGHT  or  DT_SINGLELINE  or  
                                   FormatView_V  )  
                               end;  
                           end;  
                       end;  
                       For  Index  :=  Low(Result_C)  to  High(Result_C)  do  
                       begin  
                           if  ACol  =  Result_C[Index]  then  
                           begin  
                               TempR  :=  StringGrid1.CellRect(ACol,ARow);  
                               FillRect(TempR);//清除原有内容  
                               if  ACol  =  Result_C[Index]  then  
                               begin  
                                   DrawText(Handle,  PChar(Cells[ACol,  ARow]),  
                                   Length(Cells[ACol,  ARow]),  R,DT_CENTER    or  DT_SINGLELINE  or  
                                   FormatView_V)  
                               end;  
                           end;  
                       end;  
                   end  ......  
 
注释没有加,如果需要,我会放到我的站点  www.nxit.net的FTP区上。  
而打印,我是利用ADO存取技术(只需要一个ADOTable,其它的数据集组件均不需要,而且不用进行太多配制)  
 
function  TForm1.LinkTextFile:  Boolean;  
begin  
   Result  :=  False;  
   with  ADOTable1  do  
   begin  
       ConnectionString  :=  'Provider=Microsoft.Jet.OLEDB.4.0;'  +  
                                               'Data  Source=  D:\;Extended  Properties=Text;'  +  
                                               'Persist  Security  Info=False';  
       TableName  :=  'AAA#TXT';  
       Open;                
       if  Active  then  
           Result  :=  True;  
   end;  
end;  
 
 
而当打印时,我完全采用了动态生成。如:  
procedure  TForm1.PreViewEvent;  
Var  
   Index_R  ,ALeft:  Integer;  
   Index  :  Integer;  
begin  
   QRFree;  
   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,Size_(0),20,  
         HeaderControl1.Sections[0].Text,taLeftJustify);  
   with  Create_QRDBText(DetailBand1,ALeft,8,Size_(0),20,  
                 StringGrid1.Font,taLeftJustify)  do  
   begin  
       DataSet  :=  ADOTable1;  
       DataField  :=  ADOTable1.Fields[0].DisplayName;  
   end;  
   ALeft  :=  ALeft  +  Size_(0)  +  1;  
   For  Index  :=  1  to  ADOTable1.FieldCount  -  1  do  
   begin  
       Create_VLine(TitleBand1,ALeft  -  13,16,1,40);  
       Create_Title(TitleBand1,ALeft,24,Size_(Index),20,  
           HeaderControl1.Sections[Index].Text,taLeftJustify);  
       Create_VLine(DetailBand1,ALeft  -  13,-1,1,31);  
       with  Create_QRDBText(DetailBand1,ALeft  ,8,Size_(Index),20,  
                 StringGrid1.Font,taLeftJustify)  do  
       begin  
           DataSet  :=  ADOTable1;  
           DataField  :=  ADOTable1.Fields[Index].DisplayName;  
       end;  
       ALeft  :=  ALeft  +  Size_(Index)  +  1;  
   end;  
   QuickRep1.Preview;  
end;  
 
注释没有加:(      
欢迎大家访问www.nxit.net/bbs  
在那个上边,  您将发现更多的资源。另诚招版主....