請問如何寫Callback? |
尚未結案
|
brianwung
一般會員 發表:18 回覆:22 積分:8 註冊:2002-06-12 發送簡訊給我 |
|
solnone
中階會員 發表:2 回覆:97 積分:69 註冊:2003-05-06 發送簡訊給我 |
CopyFileEx 可以copy file 要傳入一個callback function,
可回應copy的進度
參考看看 function CopyProgressRoutine(
TotalFileSize: LARGE_INTEGER;
TotalBytesTransferred: LARGE_INTEGER;
StreamSize: LARGE_INTEGER;
StreamBytesTransferred: LARGE_INTEGER;
dwStreamNumber: DWORD;
dwCallbackReason: DWORD;
hSourceFile: THandle;
hDestinationFile: THandle;
lpData: Pointer
): DWORD; stdcall;
begin
form1.ProgressBar1.Position := Floor((TotalBytesTransferred.QuadPart / TotalFileSize.QuadPart) * 100);
Result := PROGRESS_CONTINUE;
Application.ProcessMessages;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
CopyFileEx('a.txt', 'b.txt', @CopyProgressRoutine ,nil ,nil , COPY_FILE_RESTARTABLE);
end; 另一個sample…
type
TtestProc = procedure; procedure a;
begin
ShowMessage('Hello!');
end; procedure b(callBack: TtestProc);
begin
if Assigned(callback) then
callBack;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
b(a);
end;
|
brianwung
一般會員 發表:18 回覆:22 積分:8 註冊:2002-06-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |