向剪切板写数据的时候为何长度出错 ( 积分: 200 )

  • 主题发起人 tyguiping
  • 开始时间
T

tyguiping

Unregistered / Unconfirmed
GUEST, unregistred user!
Tsct&nbsp;=&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;a:&nbsp;array&nbsp;[0..49]&nbsp;of&nbsp;char;<br>&nbsp;&nbsp;&nbsp;&nbsp;b:&nbsp;integer;<br>&nbsp;&nbsp;&nbsp;&nbsp;c:&nbsp;array&nbsp;[0..39]&nbsp;of&nbsp;char;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;PTSct&nbsp;=&nbsp;^Tsct;<br><br>const<br>&nbsp;&nbsp;c_cutFormat&nbsp;=&nbsp;'myCutDataFormat';<br>var<br>&nbsp;&nbsp;Form1:&nbsp;TForm1;<br>&nbsp;&nbsp;sct:&nbsp;Tsct;<br>&nbsp;&nbsp;cutFormat:&nbsp;UINT&nbsp;;<br><br>implementation<br><br>{$R&nbsp;*.dfm}<br><br>procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br>var<br>&nbsp;&nbsp;h:&nbsp;cardinal;&nbsp;&nbsp;&nbsp;{&amp;Egrave;&amp;laquo;&amp;frac34;&amp;Ouml;&amp;Auml;&amp;Uacute;&amp;acute;&amp;aelig;&amp;frac34;&amp;auml;±ú}<br>&nbsp;&nbsp;i,il:&nbsp;Integer;&nbsp;&nbsp;&nbsp;{&amp;Ntilde;&amp;shy;&amp;raquo;·±&amp;auml;&amp;Aacute;&amp;iquest;}<br>&nbsp;&nbsp;s:&nbsp;String;&nbsp;&nbsp;&nbsp;{&amp;Aacute;&amp;Ugrave;&amp;Ecirc;±×&amp;Ouml;·&amp;ucirc;&amp;acute;&amp;reg;±&amp;auml;&amp;Aacute;&amp;iquest;}<br>&nbsp;&nbsp;p:&nbsp;pTSct;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;frac12;á&amp;sup1;&amp;sup1;&amp;Ouml;&amp;cedil;&amp;Otilde;&amp;euml;±&amp;auml;&amp;Aacute;&amp;iquest;&amp;pound;&amp;not;&amp;Oacute;&amp;Atilde;&amp;Agrave;&amp;acute;·&amp;Atilde;&amp;Icirc;&amp;Ecirc;&amp;Ecirc;&amp;yacute;&amp;frac34;&amp;Yacute;&amp;micro;&amp;yen;&amp;Ocirc;&amp;ordf;}<br>begin<br>&nbsp;&nbsp;if&nbsp;cutFormat&nbsp;=&nbsp;0&nbsp;then<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;showmessage('&amp;frac14;&amp;ocirc;&amp;Ccedil;&amp;ETH;°&amp;aring;&amp;cedil;&amp;ntilde;&amp;Ecirc;&amp;frac12;&amp;acute;í&amp;Icirc;ó');<br>&nbsp;&nbsp;&nbsp;&nbsp;Exit;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;il&nbsp;:=&nbsp;sizeof(tsct);<br>&nbsp;&nbsp;h&nbsp;:=&nbsp;GlobalAlloc(GMEM_MOVEABLE,il*5);&nbsp;&nbsp;{此处的长度错误,不知为什么,将5改为20就可以正常运行了,上一句取错了吗,应该如何改正}<br>&nbsp;&nbsp;p&nbsp;:=&nbsp;GlobalLock(h);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;Egrave;&amp;iexcl;&amp;micro;&amp;Atilde;&amp;Auml;&amp;Uacute;&amp;acute;&amp;aelig;&amp;Ouml;&amp;cedil;&amp;Otilde;&amp;euml;}<br>&nbsp;&nbsp;for&nbsp;i&nbsp;:=&nbsp;0&nbsp;to&nbsp;4&nbsp;do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;Ntilde;&amp;shy;&amp;raquo;·&amp;cedil;&amp;sup3;&amp;Ouml;&amp;micro;}<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;:=&nbsp;PTsct(Integer(p)&nbsp;+&nbsp;il*i);<br>&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;:=&nbsp;intToStr(i)&nbsp;+&nbsp;'&nbsp;';<br>&nbsp;&nbsp;&nbsp;&nbsp;strcopy(p.a,pchar(s+s+s+s+s+s+s+s+s+s));<br>&nbsp;&nbsp;&nbsp;&nbsp;p.b&nbsp;:=&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;strcopy(p.c,pchar(s+':'+s));<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;GlobalUnlock(h);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;Ecirc;&amp;Iacute;·&amp;Aring;&amp;Egrave;&amp;laquo;&amp;frac34;&amp;Ouml;&amp;Auml;&amp;Uacute;&amp;acute;&amp;aelig;&amp;micro;&amp;Auml;&amp;Euml;&amp;oslash;&amp;para;¨}<br>&nbsp;&nbsp;openclipboard(handle);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;acute;ò&amp;iquest;&amp;ordf;&amp;frac14;&amp;ocirc;&amp;Ccedil;&amp;ETH;°&amp;aring;}<br>&nbsp;&nbsp;EmptyClipboard;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;Ccedil;&amp;aring;&amp;iquest;&amp;Otilde;&amp;Ograve;&amp;Ntilde;&amp;Oacute;&amp;ETH;&amp;Ecirc;&amp;yacute;&amp;frac34;&amp;Yacute;}<br>&nbsp;&nbsp;SetClipBoardData(cutFormat,h);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;frac12;&amp;laquo;&amp;Ecirc;&amp;yacute;&amp;frac34;&amp;Yacute;±&amp;pound;&amp;acute;&amp;aelig;&amp;micro;&amp;frac12;&amp;frac14;&amp;ocirc;&amp;Ccedil;&amp;ETH;°&amp;aring;}<br>&nbsp;&nbsp;CloseClipboard;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;sup1;&amp;Oslash;±&amp;Otilde;&amp;frac14;&amp;ocirc;&amp;Ccedil;&amp;ETH;°&amp;aring;}<br>end;<br><br>procedure&nbsp;TForm1.FormCreate(Sender:&nbsp;TObject);<br>begin<br>&nbsp;&nbsp;cutFormat&nbsp;:=&nbsp;RegisterClipBoardFormat(c_cutFormat);&nbsp;{×&amp;cent;&amp;sup2;á&amp;frac14;&amp;ocirc;&amp;Ccedil;&amp;ETH;°&amp;aring;&amp;cedil;&amp;ntilde;&amp;Ecirc;&amp;frac12;}<br>end;<br><br>procedure&nbsp;TForm1.Button2Click(Sender:&nbsp;TObject);<br>var<br>&nbsp;&nbsp;h:&nbsp;cardinal;<br>&nbsp;&nbsp;p:&nbsp;PTsct;<br>&nbsp;&nbsp;i,il:&nbsp;Integer;<br>begin<br>&nbsp;&nbsp;Openclipboard(handle);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;acute;ò&amp;iquest;&amp;ordf;&amp;frac14;&amp;ocirc;&amp;Ccedil;&amp;ETH;°&amp;aring;}<br>&nbsp;&nbsp;if&nbsp;not&nbsp;Isclipboardformatavailable(cutFormat)&nbsp;then&nbsp;&nbsp;{&amp;sup2;&amp;acirc;&amp;Ecirc;&amp;Ocirc;&amp;frac14;&amp;ocirc;&amp;Ccedil;&amp;ETH;°&amp;aring;&amp;Ouml;&amp;ETH;&amp;micro;&amp;Auml;&amp;Ecirc;&amp;yacute;&amp;frac34;&amp;Yacute;&amp;cedil;&amp;ntilde;&amp;Ecirc;&amp;frac12;}<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;showmessage('Register&nbsp;format&nbsp;fail');<br>&nbsp;&nbsp;&nbsp;&nbsp;Exit;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;h&nbsp;:=&nbsp;GetClipBoardData(cutformat);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;Egrave;&amp;iexcl;&amp;micro;&amp;Atilde;&amp;frac14;&amp;ocirc;&amp;Ccedil;&amp;ETH;°&amp;aring;&amp;Ouml;&amp;ETH;&amp;micro;&amp;Auml;&amp;Ecirc;&amp;yacute;&amp;frac34;&amp;Yacute;&amp;Ouml;&amp;cedil;&amp;Otilde;&amp;euml;}<br>&nbsp;&nbsp;p&nbsp;:=&nbsp;GlobalLock(h);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;Egrave;&amp;iexcl;&amp;micro;&amp;Atilde;&amp;Ecirc;&amp;yacute;&amp;frac34;&amp;Yacute;&amp;micro;&amp;yen;&amp;Ocirc;&amp;ordf;&amp;Ouml;&amp;cedil;&amp;Otilde;&amp;euml;}<br>&nbsp;&nbsp;memo1.Lines.Clear;<br>&nbsp;&nbsp;il&nbsp;:=&nbsp;sizeof(TSCT);<br>&nbsp;&nbsp;for&nbsp;i&nbsp;:=&nbsp;0&nbsp;to&nbsp;4&nbsp;do<br>&nbsp;&nbsp;begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;Egrave;&amp;iexcl;&amp;micro;&amp;Uacute;i&amp;cedil;&amp;ouml;&amp;Ecirc;&amp;yacute;&amp;frac34;&amp;Yacute;&amp;micro;&amp;yen;&amp;Ocirc;&amp;ordf;&amp;micro;&amp;Auml;&amp;Auml;&amp;Uacute;&amp;Egrave;&amp;Yacute;}<br>&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;:=&nbsp;PTsct(Integer(p)&nbsp;+&nbsp;il*i&nbsp;)&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add(p.a);<br>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add(IntToStr(p.b));<br>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add(p.c);<br>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('-----------------------------------');<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;GlobalUnlock(h);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;Ecirc;&amp;Iacute;·&amp;Aring;&amp;Egrave;&amp;laquo;&amp;frac34;&amp;Ouml;&amp;Auml;&amp;Uacute;&amp;acute;&amp;aelig;&amp;micro;&amp;Auml;&amp;Euml;&amp;oslash;&amp;para;¨}<br>&nbsp;&nbsp;CloseClipboard;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;sup1;&amp;Oslash;±&amp;Otilde;&amp;frac14;&amp;ocirc;&amp;Ccedil;&amp;ETH;°&amp;aring;}<br>end;
 
顶部