OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

並列処理させる方法を教えてください。

  • すぐに回答を!
  • 質問No.209786
  • 閲覧数806
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 5% (1/20)

VB6(SP3) OS:Windows200で並列処理させる方法を教えてください。
以下の並列処理を別画面で行いたいのですが、どうしたらよいでしょうか?

並列処理の内容
1.DBへデータのロード(親フォームのボタンで実行)
2.1の処理状況(ログ)を子画面で表示(親フォームのボタンが押されたら、子
フォームとして起動する)

ログを表示する画面は、共通部品として使用したいため、
ログの出力を直に書きたくありません。
以下は、当然、動かないんですけど、動かしたいイメージです。
Fom1.frm、Module1.bas、Form2.frmは、同じプロジェクトに
存在します。

=============Form1.frm=============
Private Sub Command1_Cpralick()
call DataLoad()
end sub

Public Sub InsertData()
Form2.LogOut("XX件目を書き込んでいます。")
'・・・データをインサートする処理
end sub

=============Module1.bas=============
private sub DataLoad()
Call Form2.Show(vbModal, Form1) '※1

'DB書込み
Call Form1.InsertData()

'書込み結果
Form2.LogOut("成功しました。")

Form2.hide

end sub

=============Form2.frm===============
Public Sub LogOut(LogMsg As String)
Form2.lbl_Log.Caption = LogMsg
End Sub

Module1.basの中の※1で処理がForm2に移ってしまい、
Module1.basの※1以下の処理が当然実行されません。
また、前述しました通り、Form2.frmは使いまわししたいので、
Form2.frmにはこれ以上コードを書きたくありません。
Form2は、一応モーダルで起動したいです。

ご教授よろい敷くお願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル7

ベストアンサー率 58% (7/12)

はじめまして、n-sakamotoさん。

ご存知の通り、モーダルで表示しますと、そのフォームが終了するまで処理は中断されてしまいます。

ですが、Form2の役割はDB書き込みの状況を表示するだけのように思えます。

この場合、Form2の必要な条件は常に最前面に表示(Form1の後ろに隠れない)する事ではないでしょうか。

それでしたら、Form2をモードレスで表示し、APIを使って常に最前面み表示するようにしたらどうでしょうか。

SetWindowPos

で最前面に表示する事がきたと思います。

ご期待に添えるか分かりませんが。
お礼コメント
n-sakamoto

お礼率 5% (1/20)

ありがとうございます。
問題は解決しました。

おかげで進捗も進みます。
投稿日時 - 2002-02-04 11:00:29
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ