procedure TForm1.FormCreate(Sender: TObject);
begin
   With DrawGrid1 do
     begin
      Top:=40;
      Left:=40;
      Height:=380;
      Width:=490;
      RowCount:=40;
      DefaultRowHeight:=7;
      ColCount:=60;
      DefaultColWidth:=7;
      X0:=0;
      Y0:=RowCount*DefaultRowHeight+RowCount;
      X1:=Left-20+X0;
      Y1:=Y0+top;
     end;
   N_Work:=1;
   I:=0;
   J:=1;
end;procedure TForm1.Edit_WorkKeyPress(Sender: TObject; var Key: Char);
begin
   If Key=Chr(13) then
     begin
       N_Work:=StrToFloat(Edit_Work.text);
       if N_Work=0 then
         begin
           ShowMessage('工作时间不能为零');
           Edit_work.Clear;
           Edit_Work.SetFocus;
         end;
       DrawGrid1.ColCount:=Round(N_Work*60);
     end;
end;procedure TForm1.Btn_startClick(Sender: TObject);
var
  N_Work1,N_Col,X2,Y2:integer;
  S_Time:string;
begin
   Canvas.Font.Size:=6;
   Canvas.TextOut(X1,Y1,'0');
   with DrawGrid1 do
     Begin
       Canvas.Font.Size:=6;
       N_Work1:=Round(N_Work*12);
       for N_Col:=1 to N_Work1 do
         Begin
           X2:=40*N_Col-5;
           Y2:=Y0+3;
           S_Time:=IntToStr(5*N_Col);
           Canvas.TextOut(X2,Y2,S_Time);
         end;
   end;
end;
  源码太多,从中节选相关内容。
  谢谢!!

解决方案 »

  1.   

    上面程序不太好看,下面一个清楚些,大家别走,帮我看看;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      X0,Y0:integer;
    begin
      With DrawGrid1 do
       begin
         top:=10;
         left:=10;
         ColCount:=strtoint(Edit1.text);
         RowCount:=strtoint(Edit3.text);
         Canvas.Pen.Color:=clRed;
         Canvas.Pen.Width:=3;
         X0:=0;
         Y0:=defaultRowheight*RowCount+RowCount;
         Canvas.MoveTo(X0,Y0);
        end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
     X1,y1:integer;
    begin
      x1:=strtoint(edit2.text);
      y1:=strtoint(edit4.text);
      Drawgrid1.Canvas.LineTo(x1,y1);
    end;