Unit1.cpp
上传用户:lhxd_sz
上传日期:2014-10-02
资源大小:38814k
文件大小:2k
源码类别:

VC书籍

开发平台:

C++ Builder

  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "Unit1.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. #pragma resource "*.dfm"
  8. TForm1 *Form1;
  9. //---------------------------------------------------------------------------
  10. __fastcall TForm1::TForm1(TComponent* Owner)
  11.         : TForm(Owner)
  12. {
  13. }
  14. //---------------------------------------------------------------------------
  15. void __fastcall TForm1::Button1Click(TObject *Sender)
  16. {
  17.   StringGrid1->Cells[1][3]="北京n海淀区n中关村";
  18.   StringGrid1->Cells[2][3]="中华人民共和国西安";
  19.   StringGrid1->Cells[3][3]="上海";
  20.   StringGrid1->Cells[4][3]="深圳";
  21. }
  22. //---------------------------------------------------------------------------
  23. void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
  24.       int ARow, TRect &Rect, TGridDrawState State)
  25. {
  26.   int align;
  27.   if(ACol<1)return;
  28.   if(ARow<1)return;
  29.   StringGrid1->Canvas->Pen->Color=clWhite;
  30.   StringGrid1->Canvas->Brush->Color=clWhite;
  31.   StringGrid1->Canvas->Brush->Style=bsSolid;
  32.   StringGrid1->Canvas->Rectangle(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom);
  33.   align=2;
  34.   PaintText(Rect.Left+2,Rect.Top+2,ACol,StringGrid1->Cells[ACol][ARow],align);
  35. }
  36. //---------------------------------------------------------------------------
  37. void __fastcall TForm1::PaintText(int x,int y,int col,AnsiString text,int align)
  38. {
  39.   int ii,yy;
  40.   TStringList *str;
  41.   str=new TStringList();
  42.   str->Text=text;
  43.   yy=1;
  44.   for(ii=0;ii<str->Count;ii++)
  45.   {
  46.     PaintText1(x,y+yy,col,str->Strings[ii],align);
  47.     yy=yy+StringGrid1->Canvas->TextHeight(text);
  48.   }
  49.   delete str;
  50. }
  51. //---------------------------------------------------------------------------
  52. void __fastcall TForm1::PaintText1(int x,int y,int col,AnsiString text,int align)
  53. {
  54.   int colwd,ww;
  55.   colwd=StringGrid1->ColWidths[col];
  56.   if(align==1)
  57.   {
  58.     ww=StringGrid1->Canvas->TextWidth(text);
  59.     ww=colwd-ww;
  60.     ww/=2;
  61.     if(ww<0)ww=0;
  62.     StringGrid1->Canvas->TextOut(x+ww,y,text);
  63.   }
  64.   else if(align==2)
  65.   {
  66.     ww=StringGrid1->Canvas->TextWidth(text);
  67.     ww=colwd-ww;
  68.     if(ww<0)ww=0;
  69.     StringGrid1->Canvas->TextOut(x+ww,y,text);
  70.   }
  71.   else
  72.   {
  73.     StringGrid1->Canvas->TextOut(x,y,text);
  74.   }
  75. }
  76. //---------------------------------------------------------------------------