delphi之完美Splash方案

2021-06-19 04:22:53 字數 2434 閱讀 9810

1.建立乙個窗體(tfrmsplash),放入乙個timagebox,載入一幅,調整好timagebox與的大小,然後在其上放入乙個tlabel,name=lblstatus,用於顯示載入進度文字。然後將tfrmsplash設定為不自動建立。

2.加入如下**(**很簡單,就不用解釋太多)

unit untformsplash;  

inte***ce

uses

windows, messages, sysutils, variants, classes, graphics, controls, forms,  

dialogs, extctrls, stdctrls;  

type

tfrmsplash = class(tform)  

image1: timage;  

lblstatus: tlabel;  

private

fparam:pointer;  

public

class

function execute(aparam:pointer):boolean;  

procedure setstatustext(value: string);  

published

property statustext : string

write setstatustext;  

end;  

varsplashform: tfrmsplash;  

implementation

class

function tfrmsplash.execute(aparam:pointer): boolean;  

begin

with tfrmsplash.create(nil) do

tryfparam := aparam;  

result := showmodal = mrok;  

finally

free;  

end;  

end;  

procedure tfrmsplash.setstatustext(value: string);  

begin

lblstatus.caption := value;  

update;  //這句非常重要,不加的話,介面會阻塞,文字也就不會更新顯示

sleep(1000); //這句根據自己實際情況來調整,主要是怕閃屏太快關閉,達不到效果

end;  

end.  

3. 在專案的.dpr檔案中加入如下**:

begin

splashform.show;  

splashform.update;  

splashform.statustext := '準備啟動...';  

splashform.update;  

splashform.hide;  

splashform.free;  

end.  

4.這一步就是主窗體載入資料的時候,邊載入邊更新閃屏的進度文字了:

procedure tfrmmain.formcreate(sender: tobject);  

begin

with splashform do

trystatustext := ('開始初始化記憶體...');  

fcachehash := tstringhashmap.create(caseinsensitivetraits, 255);  

fcurrentclients := tlist.create;  

:= sizeof(ttagcustomlistitem);

:= 2;

vst.nodedatasize := sizeof(tmytreenodedate);  

statustext :=('初始化記憶體完成');  

statustext :=('開始載入客戶端列表...');  

buildgrouptree;  

statustext :=('載入客戶端列表完成');  

statustext :=('開始載入分組資訊...');  

addelvdefaultgroup;  

statustext :=('開始初始化記憶體');  

statustext :=('開始初始化資料...');  

g_defnetimpl := tdefnetimpl.create();  

g_defnetimpl.registerobserver(self);  

statustext :=('全部資料載入完畢,程式即將啟動...');  

finally

end;  

end; 

delphi之完美Splash方案

前言 網上有很多介紹delphi建立閃屏的 大多只是在程式開啟前顯示乙個閃屏,但是卻沒有說如何在閃屏上顯示程式載入的進度,於是筆者有意思介紹一下這種閃屏方式。1.建立乙個窗體 tfrmsplash 放入乙個timagebox,載入一幅,調整好timagebox與的大小,然後在其上放入乙個tlabel...

Ant內建任務之splash

splash是ant內建任務,用於建立乙個初始螢幕,在構建期間顯示初始螢幕並且包括乙個簡單的進度條。與sound任務結合使用可以使等待完成期間不再枯燥的等待。imageurl 提供顯示的的url,預設為classpath的antlogo.gif。showduration 在構建多少毫秒後展示初始螢幕...

Delphi之指標使用

以下內容分為八部分,分別是 一 型別指標的定義 二 無型別指標的定義 三 指標的解除引用 四 取位址 指標賦值 五 指標運算 六 動態記憶體分配 七 字元陣列的運算 八 函式指標 一 型別指標的定義。對於指向特定型別的指標,在c中是這樣定義的 int ptr char ptr 與之等價的object...