国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

Delphi編程善用資源文件

Delphi編程善用資源文件

更新時間:2022-05-09 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

林凌

  資源是存放在擴展名.RES的文件里的二進制數(shù)據(jù)結(jié)構(gòu),在DELPHI中資源文件可以使用圖象編輯器來制作(IMAGEEDITOR),或者使用其他的工具。如:BORLAND公司提供的RADPACKFORDELPHI中的RESOURCEWORKSHOP來創(chuàng)建。資源文件中通常存放的是應(yīng)用程序可以隨時存取的一些對象,包括:ICON、CURSOR、BITMAP、FONT等近十種。大部分的資源在通常的情況下可以保留在磁盤當(dāng)中,直到程序需要使用它們時才將其調(diào)入,可以大大的節(jié)省內(nèi)存資源,同樣,資源文件也是可以共享的,即:多個程序可以共享一個資源文件,進而減少了在應(yīng)用程序之間代碼重復(fù)的現(xiàn)象,使程序的代碼得到很大的優(yōu)化,因此在應(yīng)用程序中使用資源文件有獨立制作、方便、隨時修改而不需要對應(yīng)用程序代碼做任何修改的好處。

  一般來說,一個應(yīng)用程序的所有資源都存放在一個RES文件里,然后在DELPHI進行編譯的階段將資源文件的內(nèi)容與最終的EXE文件合并在一起,因此編譯后的RES文件并沒有什么作用,僅僅提供用來查閱使用,在分發(fā)應(yīng)用時不必把RES文件分發(fā)給最終用戶。當(dāng)然,不同的資源可以分別放在不同的資源文件當(dāng)中,而且資源文件越小調(diào)入內(nèi)存的速度越快。在這里還要說明的一點是:在修改了原來的資源文件之后,在原來編譯的EXE文件中加入的資源不會隨之而更新,只有在重新進行編譯以后,才能將新的資源加入到新的EXE文件當(dāng)中去。

  下面我們通過兩個例子來說明在DELPHI中如何使用資源文件(在這里我們不講述資源文件的制作方法)。

  1、如何在DELPHI中使用定制的光標(biāo)。

  在使用DELPHI進行編程時,有一個很重要的對象──TSCREEN,它是用來管理和操縱運行時期屏幕的不可視構(gòu)件。它的CURSOR屬性是用來指定各個不同的構(gòu)件光標(biāo)形狀,聲名為:

  PROPERTY CURSORS[INDEX:INTEGER]:HCURSOR;

  這個只讀的特性返回應(yīng)用程序支持的光標(biāo)組成的一個HCURSOR類型的數(shù)組,它存儲了屏幕上所有的鼠標(biāo)光標(biāo)的身份代碼(HCURSOR就是光標(biāo)的HANDLE句柄),數(shù)組下標(biāo)從0開始,在DELPHI預(yù)定義了一些代表不同光標(biāo)的常量,它的值是從0到-17,您可以直接指定程序使用的光標(biāo)。如:

  FORM1.CURSOR:=-3表示FORM1采用的光標(biāo)是CRCROSS(十字)。

  大家可能都會發(fā)現(xiàn)構(gòu)件的CURSOR的屬性最多提供十八種常用的CURSOR值,這在很多的情況下是不夠的,如:當(dāng)光標(biāo)進入一個PANEL面板時光標(biāo)的形狀為一只手,那么PANEL的CURSOR就不能滿足這種要求,這時就需要我們自定義一個手的光標(biāo)并將其賦給PANEL的CURSOR屬性。如何實現(xiàn)則可以按以下步驟進行:

  使用資源文件編輯器(IMAGE EDITOR或者RESOURCE WORKSHOP)編寫資源文件。

  定義一個光標(biāo)常量,注意這個常量不能與DELPHI中提供的光標(biāo)常量相沖突。在FORMCREATE事件中使用WINDOWSAPI當(dāng)中的LOADCURSOR函數(shù)來載入自定義的CURSOR。

  在程序中將自定義的CURSOR分配給PANEL的CURSOR屬性。

  下面說明如何將自定義的一只手的鼠標(biāo)光標(biāo)賦給PANEL1的CURSOR屬性。首先使用IMAGEEDITOR建立一個HAND.RES的文件。之后按如下書寫程序代碼:

  implementation

  {$R*.DFM}

  const

  Crhand=2;

  procedure TForm1.FormCreate(Sender:TObject);

  begin

  screen.cursors[crhand]:=loadcursor(Hinstance,'hand');

  panel1.cursor:=crhand;

  end;

  除了編寫上面的代碼以外,我們還需要做的一項工作是將資源文件加入到項目文件當(dāng)中去,編譯指令中的{$Rfilename}偽指令讓我們來增加資源文件,讓我們來看一看項目文件的代碼。

  program PCUR;

  uses Forms,

  HANDin'HAND.pas'{Form1};

  {$R*.RES}

  //這里的*意義為在程序編譯以后會產(chǎn)生一個與項目文件同名的資源文件,在這里為PCUR.RES文件,這部分是自動產(chǎn)生的。

  {$Rhand.res}//這部分是我們自己加入的自定義資源文件,這兩個資源文件(HAND.RES和//PCUR.RES中的資源都會附加在可執(zhí)行文件PCUR.EXE的后面。

  begin

  Application.Initialize;

  Application.CreateForm(TForm1,Form1);

  Application.Run;

  end.

  2、資源文件在編寫動畫程序中的應(yīng)用

  上面的例子使用的是在資源文件中存儲的CURSOR資源,在下面的例子中我們將使用的是在資源文件中提供的ICON資源來編寫一個小小的動畫程序。在這里動畫的產(chǎn)生是利用定時器在一定的時間間隔內(nèi)產(chǎn)生TIMER事件將存儲在資源文件中的ICON依次的繪制在FORM的同一處而產(chǎn)生的。這時要用到畫布CANVAS的DRAW方法,其聲明如下:

  procedureDraw(X,Y:Integer;Graphic:TGraphic);

  在這個方法當(dāng)中的參數(shù)GRAPHIC可以為:BITMAPS、ICONS、METAFILES。具體的實現(xiàn)方法為:建立DEMO.RES文件,其中含有名為ICON1桰CON6的ICON。并將DEMO.RES加到項目原代碼中去(如:上面例子的方法)。

  動畫程序的具體代碼如下:

  unit donghua;

  interface

  uses Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,

  Dialogs,ExtCtrls;

  type

  TForm1=class(TForm)

  Image1:TImage;

  Timer1:TTimer;

  procedure FormCreate(Sender:TObject);

  procedure Timer1Timer(Sender:TObject);

  private

  {Privatedeclarations}

  public

  {Publicdeclarations}

  end;

  var

  Form1:TForm1;

  implementation

  var

  wicon:array[0..5] of Ticon;

  //建立TICON類型的數(shù)組存儲ICON文件

  idx:integer;

  {$R*.DFM}

  procedure TForm1.FormCreate(Sender:TObject);

  var

  iconname:string;

  piconame:pchar;

  begin

  piconame:=stralloc(7);

  //建立PCHAR類型的字符串

  for idx:=0 to 5 do

  begin

  wicon[idx]:=ticon.create;//建立TICON型對象

  iconname:='icon'+inttostr(idx);

  strpcopy(piconame,iconname);

  //將STRING類型轉(zhuǎn)換成PCHAR類型

  wicon[idx].handle:=loadicon(hinstance,piconame);

  //調(diào)用WINDOWSAPI中的LOADICON函數(shù)

  //載入資源中的ICON

  end;

  strdispose(piconame);//PCHAR類型的刪除

  form1.canvas.draw(3,3,wicon[1]);

  //調(diào)用DRAW的方法在FORM上畫出ICON1

  idx:=1;

  form1.setbounds(0,0,100,100);

  //固定FORM的大小和位置

  end;

  procedure TForm1.Timer1Timer(Sender:TObject);

  //形成動畫的定時器事件

  begin

  idx:=idx+1;

  if idx=6 then idx:=1;

  form1.canvas.draw(3,3,wicon[0]);

  form1.canvas.draw(3,3,wicon[idx]);

  end;

  end.

  以上可以作為一個通用的動畫程序,我們只需要修改不同的ICON以及增加IDX的大小就可以編出不同的動畫應(yīng)用(同樣在資源中可以有其他形式的圖形如:BITMAPS這時需要動態(tài)創(chuàng)建的是TBITMAPS對象而不是TICON對象)。在兩個例子中我們都用到了WINDOWSAPI函數(shù),這些函數(shù)在WINDOWS單元中均有說明在這里不加贅述。以上的兩個例子只是資源文件的一點點應(yīng)用,要真正的掌握資源文件在程序設(shè)計中的強大作用,還要靠自己在實踐中不斷的總結(jié)。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        久久久亚洲精品一区二区三区| 99久久综合狠狠综合久久| 99久久久精品| 秋霞午夜av一区二区三区| 国产精品国模大尺度视频| 精品日韩在线一区| 制服丝袜日韩国产| 欧美午夜精品久久久| 不卡的av网站| 成人黄色av电影| 成人污视频在线观看| 国产乱码精品一区二区三区av | 婷婷一区二区三区| 亚洲一区二区高清| 亚洲一区二区影院| 亚洲综合小说图片| 亚洲另类一区二区| 亚洲综合丁香婷婷六月香| 一卡二卡欧美日韩| 亚洲成人三级小说| 五月激情丁香一区二区三区| 亚洲午夜一区二区| 首页国产欧美日韩丝袜| 日韩精品亚洲专区| 国内久久精品视频| 国产91精品一区二区麻豆网站 | 成人毛片老司机大片| 国产乱码精品一品二品| 国产精品一区免费视频| 成人性生交大片免费看中文网站| 成人福利电影精品一区二区在线观看| 成人一区二区三区中文字幕| 粉嫩一区二区三区性色av| 99久久99久久综合| 欧美精品欧美精品系列| 久久亚洲综合色| 综合分类小说区另类春色亚洲小说欧美| 日韩一区在线看| 五月天欧美精品| 国产在线看一区| 色婷婷香蕉在线一区二区| 在线播放一区二区三区| 国产欧美日韩精品在线| 夜夜亚洲天天久久| 国产裸体歌舞团一区二区| 91在线码无精品| 日韩欧美成人激情| 亚洲免费在线看| 精品在线播放午夜| 色噜噜狠狠色综合中国| 日韩一区二区免费视频| 中文字幕一区二区三区在线观看| 首页亚洲欧美制服丝腿| 99久久国产免费看| 久久久久青草大香线综合精品| 亚洲人成精品久久久久| 久久精品999| 欧美亚洲一区二区三区四区| 久久久噜噜噜久久中文字幕色伊伊| 亚洲精品ww久久久久久p站 | 91片黄在线观看| 精品福利二区三区| 亚洲一卡二卡三卡四卡五卡| 粉嫩aⅴ一区二区三区四区| 欧美一区二区视频在线观看| 自拍偷自拍亚洲精品播放| 韩国一区二区视频| 欧美电影一区二区| 一区二区三区日韩| av中文一区二区三区| 精品国产乱码久久久久久牛牛| 欧美男生操女生| 成人欧美一区二区三区白人 | 国产精品白丝av| 7777精品伊人久久久大香线蕉| 国产精品污网站| 精品一区二区三区免费毛片爱| 欧美在线视频不卡| 国产精品午夜电影| 国产成人在线观看| 久久久久国产精品厨房| 国产在线一区观看| www久久精品| 国产一区二区电影| 久久综合精品国产一区二区三区| 青娱乐精品视频在线| 91精品国产黑色紧身裤美女| 天天av天天翘天天综合网| 欧美一区永久视频免费观看| 亚洲图片欧美综合| 337p亚洲精品色噜噜狠狠| 午夜精品免费在线| 51精品视频一区二区三区| 天堂资源在线中文精品| 4438x成人网最大色成网站| 午夜亚洲国产au精品一区二区| 91国产视频在线观看| 亚洲超碰精品一区二区| 欧美一级高清片在线观看| 玖玖九九国产精品| 日韩一区二区视频| 韩国中文字幕2020精品| 欧美韩国日本不卡| 成人国产在线观看| 亚洲精品成人在线| 日韩一区二区精品在线观看| 国产精品1区2区3区| 国产精品久久久久婷婷二区次| 国产黄色精品网站| 中文字幕av一区二区三区高| 成人av网站在线| 精品无人码麻豆乱码1区2区| 日韩一区二区三区在线| 欧美一级一区二区| 欧美日本一道本| 亚洲成人动漫av| 欧美性色欧美a在线播放| 久久国产精品色婷婷| 欧美v国产在线一区二区三区| 日韩av午夜在线观看| 7777精品伊人久久久大香线蕉的 | 亚洲一区二区三区激情| 91精彩视频在线| 一区二区三区在线高清| 欧美日韩综合一区| 亚洲另类色综合网站| 欧美私模裸体表演在线观看| 亚欧色一区w666天堂| 欧美日韩成人高清| 日韩成人伦理电影在线观看| 日韩视频一区二区三区| 91在线一区二区三区| 亚洲影视在线播放| 欧美另类高清zo欧美| 免费亚洲电影在线| 久久久不卡网国产精品一区| 午夜欧美在线一二页| 国产精品毛片久久久久久| 日本久久一区二区| 喷白浆一区二区| 国产日产亚洲精品系列| 5858s免费视频成人| 精品在线观看免费| 亚洲女人的天堂| 7777精品伊人久久久大香线蕉| 国产真实乱对白精彩久久| 亚洲高清免费观看| 久久久久久久久久久99999| 99综合电影在线视频| 亚洲mv在线观看| 国产欧美va欧美不卡在线| 在线综合视频播放| 成人午夜视频在线| 亚洲国产精品久久艾草纯爱| 精品播放一区二区| 在线免费亚洲电影| 国内精品伊人久久久久av一坑 | 欧美日韩一级二级| 丁香婷婷深情五月亚洲| 国产片一区二区三区| www久久精品| 欧美日本一区二区| av电影一区二区| 久久国产欧美日韩精品| 国产精品精品国产色婷婷| 欧美一区二区视频在线观看2022| 成人av在线电影| 九一久久久久久| 亚洲国产日韩av| 亚洲国产成人tv| 中文欧美字幕免费| 精品国产一二三| 欧美日韩一级二级三级| 色伊人久久综合中文字幕| 国产一区二区成人久久免费影院 | 欧美日韩国产经典色站一区二区三区| 国产一区二区女| 热久久一区二区| 国产三级久久久| 亚洲欧洲av一区二区三区久久| 精品久久久久久久一区二区蜜臀| 91国内精品野花午夜精品| 成人精品视频.| 日韩亚洲欧美高清| 精品成人私密视频| 日韩欧美一级二级三级久久久| 欧美性videosxxxxx| 97精品国产露脸对白| 蜜臀av国产精品久久久久| 国产精品一区二区三区99| 蜜臀国产一区二区三区在线播放| 偷拍日韩校园综合在线| 亚洲成人免费影院| 色94色欧美sute亚洲线路二 | 日韩影视精彩在线| 日韩国产精品久久| 日韩中文字幕一区二区三区| 天天综合天天做天天综合| 国产成人精品影视| 国产精品99久久久久久久女警 |