炫彩界面库论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 1126|回复: 3

[开源] XE5 调用炫彩 开源助他人 分享乐不停

[复制链接]
发表于 2015-7-25 10:36:52 | 显示全部楼层 |阅读模式
本帖最后由 花舞灬花丶落泪 于 2015-7-25 10:47 编辑

炫彩版本:     1.6.3 炫彩语言:     Delphi XE5
环       境:     Windows 8 32bit 专业版


新手看的话需要注意几点:
                           1.闲的没事写的   写法不推荐
                           2.没有使用头文件,都是用一条写一条,麻烦,不推荐



一千多条接口函数 实在是懒得封装,也木有炫彩的函数转换工具

      代码写的很乱  凑活着看吧.  反正我觉得不是很难看懂.

                                贴张图 镇楼
QQ截图20150725101737.png QQ截图20150725101750.png
该源码 展示了 窗口的创建,按钮的创建以及单击事件,
                                           其实看官方手册一看就会...

额  不知道为毛 老是上传失败   我就直接贴代码了
  1. program Project1;

  2. uses
  3.   Windows;

  4. {$R *.res}
  5.    const
  6.   CodeDll='xcgui.dll';
  7.   Var
  8.    EleBtn_Close : Integer;
  9.    EleBtn_Minimi : Integer;
  10.    EleBtn_SetUp :  Integer;
  11.    EleBtn_Msg   :  Integer;
  12.    hWindow      :  Integer;
  13.    ThreadID     :  Cardinal;
  14.    ThreadHwnd   :  Cardinal;
  15.    EleBtn_Font  :  Integer;
  16.    FontHwnd     :  Integer;
  17.    EditEle      :  Integer;

  18. Function XInitXCGUI(flag:PWideChar):Bool; stdcall;external CodeDll;

  19. Function XWnd_CreateWindow(
  20.                           x,y,cx,cy:Integer;
  21.                           Title:PWideChar;
  22.                           Parent:Integer;
  23.                           Style:Integer):Integer; stdcall;external CodeDll;

  24. Function XWnd_ShowWindow(hWindow:Integer;const flag : Integer = 5):Bool; stdcall;external CodeDll;
  25. Function XRunXCGUI():Bool; stdcall;external CodeDll;//XExitXCGUI
  26. Function XExitXCGUI():Bool; stdcall;external CodeDll;//XExitXCGUI
  27. Function XWnd_CloseWindow(hWindow:Integer):Integer; stdcall;external CodeDll;
  28. Function XWnd_EnableDragWindow(hWindow:Integer;ShowEanble:Bool):Bool; stdcall;external CodeDll;
  29. Function XWnd_EnableDragBorder(hWindow:Integer;Eanble:Bool):Bool; stdcall;external CodeDll;
  30. Function XBtn_Create(
  31.                      x,y,cx,cy:Integer;
  32.                      title:PWideChar;
  33.                      Parnet:Integer):Integer; stdcall;external CodeDll;

  34. Function XEle_RegisterEvent(hEle:Integer;EleType:Integer;pFun:Pointer):Integer; stdcall;external CodeDll;

  35. Function XBtn_SetImageLeave(hEle:Integer;Image:Integer):Integer; stdcall;external CodeDll;//离开
  36. Function XBtn_SetImageStay(hEle:Integer;Image:Integer):Integer; stdcall;external CodeDll;//点燃
  37. Function XBtn_SetImageDown(hEle:Integer;Image:Integer):Integer; stdcall;external CodeDll;//按下
  38. Function XImage_LoadFile(hEle:PWideChar;Image:Bool):Integer; stdcall;external CodeDll;

  39. Function XEle_SetBkTransparent(hEle:Integer;Eanble:Bool):Integer; stdcall;external CodeDll;//透明
  40. Function XEle_EnableFocus(hEle:Integer;Eanble:Bool):Integer; stdcall;external CodeDll;// 焦点
  41. Function XWnd_EnableRound(hEle:Integer;Eanble:Bool;Redraw:Bool):Integer;stdcall;external CodeDll; //圆角
  42. Function XWnd_SetRoundSize(hEle,Size:Integer):Integer;stdcall;External CodeDll; //圆角大小
  43. Function XEle_Create(x,y,cx,cy,Parent:Integer):Integer;stdcall;External CodeDll; //创建基础元素
  44. Function XPic_Create(x,y,cx,cy,Parent:Integer):Integer;stdcall;External CodeDll; //创建图片框元素
  45. Function XEle_EnableMouseThrough(hWindow:Integer;Eanble:Bool):Integer;stdcall;External CodeDll; //鼠标穿透
  46. Function XEle_EnableBorder(hWindow:Integer;Eanble:Bool):Integer;stdcall;External CodeDll; //元素边框
  47. Function XPic_SetImage(hEle,PicHwnd:Integer):Integer;stdcall;External CodeDll; //ImageBox Image
  48. Function XEle_SetBkColor(hWindow,Color:Integer):Integer;stdcall;External CodeDll; //XCEle BackColor
  49. Function XWnd_SetBkColor(hWindow,Color:Integer):Integer;stdcall;External CodeDll; //Windows BackColor
  50. Function XFont_Create2(pName:PWideChar;FontSize:Integer;
  51.                                                 bBold:Bool;
  52.                                                 bItalic:Bool;
  53.                                                 bUnderline:Bool;
  54.                                                 bStrikeOut:Bool):Integer;stdcall;External CodeDll; //创建炫彩字体
  55. Function XEdit_Create(x,y,cx,cy,Parent:Integer):Integer;stdcall;External CodeDll; //创建EditBox
  56. Function XEdit_GetText(hEle:Integer;pText:PWideChar):Integer;stdcall;External CodeDll; //设置编辑框内容
  57. Function XEle_SetFont(hEle:Integer;FontHwnd:Integer):Integer;stdcall;External CodeDll; //设置元素字体
  58. Function XEdit_SetReadOnly(hEle:Integer;Eanble:Bool):Integer;stdcall;External CodeDll; //编辑框只读
  59. Function XEle_RedrawEle(hEle:Integer;Eanble:Bool):Integer;stdcall;External CodeDll; //刷新元素
  60. Function XEdit_SetText(hEle:Integer;pText:PWideChar):Integer;stdcall;External CodeDll; //编辑框内容
  61. Function XEdit_EnableMultiLine(hEle:Integer;Eanble:Bool):Integer;stdcall;External CodeDll; //Edit多行输入
  62. Function XMessageBox(hWindow:Integer;
  63.                      pText:PWideCHar;
  64.                      pCaption:PWideChar;
  65.                      pType:Integer):Integer;stdcall;External CodeDll; //圆角大小
  66. function L(s:string):PWideChar;
  67. begin
  68.   Result:= PWideChar(s);
  69. end;


  70. Function MeThread():Bool;
  71. Begin
  72.        RemoveFontResourceA ('Res\font.ttf');
  73.        XWnd_CloseWindow(hWindow);
  74.        XExitXCGUI();
  75.        CloseHandle(ThreadHwnd);
  76.        Result:=True;
  77. End;

  78. Function My_ClickEvent(hEle:Integer;hEventEle:Integer;pBool:Bool):Bool;
  79. Begin
  80.                 if hEventEle = EleBtn_Close then
  81.                      ThreadHwnd := CreateThread(nil,512,@MeThread,nil,0,ThreadID);
  82.                      Result:=true;
  83.                 if hEventEle = EleBtn_Minimi then
  84.                      XWnd_ShowWindow(hWindow,2);
  85.                 if hEventEle = EleBtn_Msg then
  86.                      XMessageBox(hWindow,'谁让你点击这个按钮的?'+#13+'是哪个天煞的给你的胆子?'+#13+'看频道今天不收了你',
  87.                      '大胆狂徒',1);
  88.                 if hEventEle = EleBtn_SetUp then
  89.                      XMessageBox(hWindow,'贫道这几日正忙于渡劫'+#13+'等贫道渡过这九九天劫再作打算',
  90.                      '咔嚓嚓',1);
  91.                 if hEventEle = EleBtn_Font then
  92.                         AddFontResourceA('Res\font.ttf');
  93.                         FontHwnd :=  XFont_Create2('水果冰淇淋手机字体',18,false,false,false,false);
  94.                         XEle_SetFont(EditEle,FontHwnd);
  95.                         XEle_RedrawEle(EditEle,True);


  96. end;
  97.   procedure Main();
  98.   Var
  99.     PicHwnd      :  Integer;
  100.     Back_PC      :  Integer;
  101.     Shit         :  integer;

  102.   Begin
  103.               XInitXCGUI('');


  104.               hWindow:=XWnd_CreateWindow(50,50,500,500,'你好啊',0,1 + 2 + 4 + 8 + 16 + 32 + 64);
  105.               XWnd_EnableDragWindow(hWindow,true);
  106.               XWnd_EnableDragBorder(hWindow,false);
  107.               Back_PC :=  XEle_Create(0,0,500,33,hWindow);
  108.               XEle_SetBkColor(Back_PC,15111760);
  109.               XWnd_SetBkColor(hWindow,16777215);
  110.               XEle_EnableMouseThrough(Back_PC,TRUE);
  111.               XEle_EnableBorder(Back_PC,FALSE);


  112.               Shit := XPic_Create(0,35,500,150,hWindow);
  113.               XPic_SetImage(Shit,XImage_LoadFile('Res\back.jpg',True));
  114.               XEle_EnableBorder(Shit,FALSE);

  115.               EditEle :=  XEdit_Create(10,200,480,265,hWindow);
  116.               XEle_EnableBorder(EditEle,FALSE);
  117.               XEdit_EnableMultiLine(EditEle,TRUE);
  118.               XEdit_SetReadOnly(EditEle,TRUE);
  119.               XEdit_SetText(EditEle,'由于贫道今日需赶往齐鲁渡九九天劫,故只能写到这里 ');


  120.                                  EleBtn_Font := XBtn_Create(430,468,60,25,'换字体',hWindow);
  121.                                  XEle_RegisterEvent(EleBtn_Font,0,@My_ClickEvent);//注册单击事件

  122.               EleBtn_Close := XBtn_Create(470,0,28,30,'',hWindow);
  123.               PicHwnd := XImage_LoadFile('Res\close_nor.png',false);
  124.               XBtn_SetImageLeave(EleBtn_Close,PicHwnd);//正常状态
  125.               PicHwnd := XImage_LoadFile('Res\close_over.png',false);
  126.               XBtn_SetImageStay(EleBtn_Close,PicHwnd); //点燃状态
  127.               PicHwnd := XImage_LoadFile('Res\close_down.png',false);
  128.               XBtn_SetImageDown(EleBtn_Close,PicHwnd); //按下状态
  129.               XEle_SetBkTransparent(EleBtn_Close,true);//控件背景透明
  130.               XEle_EnableFocus(EleBtn_Close,false);    // 控件不许获得焦点
  131.               XEle_RegisterEvent(EleBtn_Close,0,@My_ClickEvent);//注册单击事件


  132.               XWnd_EnableRound(hWindow,true,true);
  133.               XWnd_SetRoundSize(hWindow,2);


  134.               XWnd_ShowWindow(hWindow,5);
  135.               XRunXCGUI();
  136.   End;
  137. begin
  138.       Main();
  139. end.
复制代码


由于文件无法飞升到服务器界,故而  贫道只能贴上代码秘籍了。尔等只需修改几处资源位置  然后 ↓
                                                                   直接 Ctrl + C   然后  Crtl + V   然后 Shift + Ctrl + F9




发表于 2015-7-25 10:47:53 | 显示全部楼层
谢谢楼主分享
 楼主| 发表于 2015-7-25 10:49:58 | 显示全部楼层
本帖最后由 花舞灬花丶落泪 于 2015-7-25 10:50 编辑

因为代码有点长  超出了论坛发帖限制,所以去掉了 三个控制按钮的代码  可自行添加上去  
分别是 最小化  设置  反馈  对应的变量是: EleBtn_Minimi   EleBtn_SetUp   EleBtn_Msg  复制关闭按钮的代码粘贴改变量即可, 还有  代码中用到的字体是 群文件里面的打飞机里面的  可自行下载
发表于 2015-12-4 10:36:05 | 显示全部楼层
学习了 ,楼主辛苦了
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|广州炫软(软件)科技有限公司 ( 粤ICP备15089345号-1 )

GMT+8, 2019-9-17 07:13 , Processed in 0.072241 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表