procedure TFormWHandle.BtnCallAPIClick(Sender: TObject);
begin
  SetWindowText (Handle, 'Hi');
end;
测试1:
一个例程,我想把Handle的值也显示出来
做了如下改动:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
bb:String;
begin
   bb:=IntToStr (Handle);
SetWindowText (Handle, @bb);
end;
结果是乱码,请问我应该怎么改,才能达到目的?测试2:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
bb:^String;
begin
 new (bb);
   bb^:=IntToStr(Handle);
SetWindowText (Handle,^bb);
end;
编译通不过??

解决方案 »

  1.   

    测试1:
    SetWindowText (Handle, @bb);
    改为
    SetWindowText (Handle, pchar(bb));测试2var
      bb:pchar;
    begin
      bb:=pchar(inttostr(handle));
      SetWindowText(handle,bb);
    end;
      

  2.   

    caption := IntToHex(Integer(Handle));
      

  3.   

    测试1就是这个
    procedure TForm1.Button1Click(Sender: TObject);
    var
      bb:String;
    begin
       bb:=IntToStr (Handle);
      SetWindowText (Handle,Pchar(bb));
    end;
      

  4.   

    这个完全没有问题:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      bb:String;
    begin
       bb:=IntToStr (Handle);
      SetWindowText (Handle,Pchar(bb));
    end;
    在某杂志上看到:“PChar 可以看作 ^Char ”,所以我做了如下改动:
    bb:^Char;
    begin
    new (bb);
     bb^:=char(inttostr(handle));//Invalid typecast
    // SetWindowText(handle,Pchar(bb));
       SetWindowText(handle,bb);//Incompatible types: 'Unit1.Char' and 'System.Char'
    我如何该动是好?
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      bb:pchar;
    begin
      getmem(bb,8);
      strcopy(bb,pchar(inttostr(handle)));
      SetWindowText(handle,bb);
      freemem(bb);
    end;