- ベストアンサー
Delphi6 Labelの表示切り替え方法とコピー中のラベル点滅について
- Delphi初心者です。ファイルをコピーする処理を作っています。ボタンをクリックしたときファイルのコピーを開始するのですが、コピー中のメッセージを表示しようと思います。
- 現在、LabelのVisibleを正しく切り替えることができません。コピーが終了してからLabelが表示されるため、何が悪いのか分かりません。
- さらに、コピー中はラベルを点滅させる方法がわかればベストです。Delphi6でのラベルの表示切り替えと点滅方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
突っ込んだ質問に回答出来る知識はありませんが、、、 Refresh を入れたらどうでしょうか? あと、現状だとコピーの成否に関係なく完了メッセージが出るので戻り値で分岐させてます。 Label1.Visible := True; Self.Refresh; if CopyFile('C:\KBISDATA.MDB','E:\KBISDATA.MDB',False) then Application.MessageBox('バックアップが完了しました。','データバックアップ処理', MB_OK + MB_ICONEXCLAMATION) else Application.MessageBox('バックアップ失敗','データバックアップ処理', MB_OK + MB_ICONERROR) ; ------- ラベルの点滅は解りませんが、SHFileOperation を使うとWindows標準のコピーダイアログを出せます。 uses 節に 「ShellAPI」 と追加記入する必要があります。 procedure TForm1.Button2Click(Sender: TObject); var Fo: TSHFileOpStruct; FromFile, ToFile: string; begin FromFile:='C:\KBISDATA.MDB' + #0; ToFile := 'E:\KBISDATA.MDB' + #0; with Fo do begin wnd := Handle; wFunc := FO_COPY; pFrom := PChar(FromFile); pTo := PChar(ToFile); fFlags := FOF_FILESONLY or FOF_ALLOWUNDO; end; SHFileOperation(Fo); end;
お礼
回答ありがとうごあいます。 Refresh で解決できました。 また、それ以外のアドバイスありがとうございます。 今の自分には難しく思えますがトライしてみます。