谁给这段C玩意用Delphi翻译一下,关于剪贴板操作的,急用!

fengchuixuelai 2011-09-11 08:44:59

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h "
#include <clipbrd.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm "
TForm1 *Form1;
//---------------------------------------------------------------------------
TList* ClipList = new TList;

struct ClipData
{
WORD Format;
HANDLE Data;

ClipData() { Format = 0; Data = NULL; }
~ClipData() { if (Data) GlobalFree(Data); }
};

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
for(int n=0; n <ClipList-> Count; n++) {
delete (ClipData*)ClipList-> Items[n];
}
ClipList-> Clear(); delete ClipList;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SaveClipBtnClick(TObject *Sender)
{
HANDLE Data;
ClipData* pcd;

for(int n=0; n <ClipList-> Count; n++) {
delete (ClipData*)ClipList-> Items[n];
}
ClipList-> Clear(); Clipboard()-> Open();
for(int n=0; n <Clipboard()-> FormatCount;
n++) {
if ((pcd=new ClipData) == NULL)
break;
pcd-> Format = Clipboard()-> Formats[n];
Data = (HANDLE)Clipboard()-> GetAsHandle(
pcd-> Format);
if (Data == NULL) {
delete pcd; continue;
}
pcd-> Data = GlobalAlloc(GMEM_MOVEABLE|
GMEM_DDESHARE, GlobalSize(Data));
void* DataMem = GlobalLock(pcd-> Data);
if (DataMem != NULL) {
memcpy(DataMem, GlobalLock(Data),
GlobalSize(Data));
GlobalUnlock((HANDLE)pcd-> Data);
GlobalUnlock((HANDLE)Data);
}
ClipList-> Add(pcd); continue;
}
Clipboard()-> Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RestoreClipBtnClick(TObject *Sender)
{
HANDLE Data;
ClipData* pcd;

Clipboard()-> Open();
Clipboard()-> Clear();
for(int n=0; n <ClipList-> Count; n++) {
ClipData* pcd = (ClipData*)ClipList
-> Items[n];
SetClipboardData(pcd-> Format, pcd->
Data);
pcd-> Data = NULL; delete pcd;
}
ClipList-> Clear(); Clipboard()-> Close();
}
...全文
51 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
fox000002 2011-09-11
  • 打赏
  • 举报
回复
lz 要 Delphi 代码,还是去 Delphi 版吧

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧