این کدها وقتی با دلفی 7 کمپایل میشن کار میکنند اما با دلفی برلین exception میدن که مربول به GlobalSize هست. محیط تست من ویندوز 7 64 بیتی هست.
procedure TForm1.Button1Click(Sender: TObject);
var
b: integer;
Hnd: Cardinal;
begin
Hnd := Clipboard.GetAsHandle(ClipFormatInd);
b := GlobalSize(Hnd);
if b <> 0 then
Caption := 'Clipboard: '+ IntToStr(b) + ' bytes'
else Caption := 'Clipboard: <empty>';
end;
procedure TForm1.Button2Click(Sender: TObject);
var
b: integer;
begin
b := GlobalSize(0);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ClipFormatInd := RegisterClipboardFormat('Test Proj Berlin');
end;
من هر چر هم کدهای اسمبلی رو trace کردم چیز خاصی ندیدم یعنی چیز خاصی نبود که ببینم یه application خالی و یه فراخوانی API از کرنل 32 هست که هر دو انجام میدن اونیکی همه چی درست کار میکنه اینیکی error میده. ظاهرا زمانی که کلیپ بورد خالی هست globalsize کار نمیکنه!!!؟؟؟
با این اوصاف حالا اگر بخوایم سایز clipboard رو در دلفی برلین بدست بیاریم چیکار باید بکنیم.