1.function getavecharsize(canvas:tcanvas):tpoint;
var
  I:integer;
  buffer:array[0..51] of char;
begin
  for I:=0 to 25 do buffer[i]:=chr(i+ord('A'));
  for I:=0 to 25 do buffer[I+26]:=chr(I+ord('a'));
  gettextextentpoint(canvas.Handle ,buffer,52,tsize(result));
  result.X :=result.X div 52;
end;这个说是可以取得canvas 的坐标只看懂把26个大小写字母赋值给buffer这个数组
其它就不懂了,谁能帮我解释一下,谢谢

解决方案 »

  1.   

    2.procedure TForm1.Button1Click(Sender: TObject);
    begin
    image1.Picture.LoadFromFile('E:\Borland\Delphi7\Projects\429572.jpg ');
    end;这个死活出错,why?
      

  2.   

    function getavecharsize(canvas:tcanvas):tpoint;
    var
      I:integer;
      buffer:array[0..51] of char;
    begin
      for I:=0 to 25 do buffer[i]:=chr(i+ord('A'));
      for I:=0 to 25 do buffer[I+26]:=chr(I+ord('a'));
      gettextextentpoint(canvas.Handle ,buffer,52,tsize(result));//在canvas上获得buffer里所存字符串的宽和高
      result.X :=result.X div 52;//返回第一个字符的坐标,也即canvas的横坐标
    end;
      

  3.   

    另外image只能导入位图文件(.bmp),元文件(.emf或.wmf)和图标文件(.ico),
    如要导入jpg格式的可先将其转换为.bmp格式。
      

  4.   

    高人啦~~~~~
    不过`canvas这鸟东东还是不太懂,等会再看看书吧image 手动导入怎么就可以导入jpg的,用命令导入就不行?为什么要做这样的限制啊?
      

  5.   

    问题2的解决:image1.Picture.LoadFromFile('E:\Borland\Delphi7\Projects\429572.jpg ');
    1.你把最后一个'前的空格去掉吧
    image1.Picture.LoadFromFile('E:\Borland\Delphi7\Projects\429572.jpg');2.给uses 加上Jpeg单元再试试,你一定:)
      

  6.   

    加上了uses jpeg; 嘿 果然:)