はじめまして。
Form上にあるコモンダイアログを開くときに、パスワード(例えば1111)みたいに設定してから、開けるようにしたいのですが、このような設定は出来るのでしょうか?
helpをみたのですがイマイチわかりません。
どうようにしたらいいのか何かヒントでも良いんでお願いします。
Form上にあるコモンダイアログを開くとき?
CommonDialog1.ShowOpen
ってすることですか?
それで、その前にパスワード入力して確認?
パスワード入力のダイアログを作ってコモンダイアログを表示する前に
表示するのではだめ?
推測が外れてたらゴメンナサイ
やりたいことが今一つ伝わらないが
1.Form1でボタンクリック
2.パスワード入力確認画面を起動(Form2)
3.Form2で入力させたパスワードがOKならばコモンダイアログを開く
ということなのかなぁ
返答していただきありがとうございます。
質問の内容がイマイチですいません。
メインのForm1にコモンダイアログが貼ってあります。
コモンダイアログの中には、ファイルを開いたり、保存をしたりするプログラムを
組んでいます。
その操作をしようとした時に、パスワードをつけて開けるようにしたいと思ってます。
私の説明がわかり難いかと思いますがお願いします。
度々すいません。
簡単にいうと、例えばVB6画面を開いたときに、上のツールバー(ファイル、編集、表示、プロジェクト)などがありますよね?
それを開こうをした時に、passを設定してpassが合っていたら編集が出来たり、プロジェクトが出来たり。開けるようにするということをしたいんです。
可能でしょうか?
お願いします
まぁ…とりあえず、やりたい事を時系列順に箇条書きにでもしてみると良いかもしらん。
質問内容が当初から段々と離れて行ってる気がするので、
ここらでいっぺんちゃんと書いてみてや。
…勿論プログラムが直ぐに書ける段階まで練らないと意味がないからなーw
↓添削、みたいな。
------------------------------
>度々すいません。
はぃ。
>簡単にいうと、例えばVB6画面を開いたときに、上のツールバー(ファイル、編集、表示、プロジェクト)などがありますよね?
ある。
>それを開こうをした時に、
つまり、選択して、サブメニューを表示することか?
>passを設定してpassが合っていたら編集が出来たり、プロジェクトが出来たり。開けるようにするということをしたいんです。
多分、貴方は「passを設定してpassが合っていたら」を強調したいのだろうが…
いかんせん「編集が出来たり、プロジェクトが出来たり。開けるようにするということをしたい」
と書かれてるから、読み手はそれができるかどうかを考えるぞ。
>可能でしょうか?
まぁ、質問になってないので、答えられなくなる。
※で、どゆこと?
左から右への人さん、質問しているのに質問の仕方が曖昧ですいません。
メインフォームの上側にツールバーを作ってあります。
それにパスを設定してpassが合っていたらサブメニューを表示できる。
という事をしたいんです。
この質問の掲示板を読んでくださった方、申し訳ありません。
質問の内容は大体理解したが、ちょっと不明な点を一つ。
> メインフォームの上側にツールバーを作ってあります。
> それにパスを設定してpassが合っていたらサブメニューを表示できる。
「ツールバーにパス(ワード)を設定して」というくだりが不明な感じがする。
飽くまでも、ツールバーは「コントロール」であって、動作を規定できる物じゃない。
必要な動作(プログラム)は、イベントプロシージャにかかれて居なければならないわけで…
まぁ、多分正しいパスワードが入力された状態のときだけ、
ツールバーのとあるボタンのサブメニューを利用可能にしたい。
ということなのだろう…と思ってちょとヒント。
どのようにしてパスワードを入力するのかは、そちらの仕様しだいなのでとりあえず、
「パスワードを入力する関数 InputPass()」を作っておく。
で、InputPass()の内部で、
1 pass=文字入力
2 if pass=正しいパスワード then ←激しく弱い照合…直ぐにバレる。
利用可能にしたいツールバーの各ボタンのEnableをTrueにする
4 else
InputPass()を抜ける
というプログラムを書いておけばいいと思われる。
※まぁ、詳しいことが分からないので、
俺もかなり誤爆してるかもしれないが、
そこはヨロシク頼みますw
回答ありがとございました。質問もいいかげんですいませんでした。
メニューコントロールにパスをつけて制限したい。
という事初めに言っていれば良かったですね。
大変ご迷惑お掛けしました。
書かれているプログラムを参考にして頑張ります。
ありがとうございました。
再度の質問すいません。
Formの中に
Private Sub mnuFile_Click()
frmDialog.Show
End Sub
それと同時に
Private Sub inputPass()
pass = abcd
If pass = abcd Then
frmDialog.Enabled = True
Exit Sub
End Sub
このようなプログラムとやってみたんですけど、うまくいきません。どこがいけないんでしょうか?
>>このようなプログラムとやってみたんですけど、うまくいきません。どこがいけないんでしょうか?
どう、うまくいかないのか?をもう少し詳しく書くと、
レスがつきやすいです。
うまくいかないとは、
実行時エラー・性能問題など、
製造者が意図しない動作・現象を全て網羅するため
状況の把握が性格に出来ないです。
また上記サンプルの場合、変数passやabcdは何処で宣言されているの?
いなさん返信ありがとうございます。
上に書いたサンプルや、変数はダイアログを貼り付けているForm1の方に宣言しています。
これを書いても、Form1にあるメニューバーをクリックすると開いてしまいます。
度々すいません。
VB歴半年さん。
ずいぶん遅くまでがんばってるみたいですね。
なので横からですがレスしちゃいます。
であなたの書いた、
>Formの中に
>Private Sub mnuFile_Click()
> frmDialog.Show
>End Sub
>それと同時に
>Private Sub inputPass()
>・
>・
の
>それと同時に
ってどういう意味ですか??
「それと同時に」と書いてることが
単に日本語の表現誤りではなく
うまくいかない確信部分なんじゃ、と。
的外れならごめんなさいね。
でも気になってしかたなくて。
つまり、処理をさせる「タイミング」をもう少し
考えてみましょうよ。
で、どこでどうやってどの順でSub inputPass()
が走るのかなあ、と。
#本当に並列処理してたりするとすごすぎるわね。
…というか(^^;)
右から左へのひとさんの説明の一部(分かるトコのみ)をそのままコード化
しただけで、
>どのようにしてパスワードを入力するのかは、そちらの仕様しだいなので
あたりが全然抜けてるように見えます。
変数 pass や abcd も本当にこのままのコードを書いてるっポイなぁ…
完全コンパイルしたらエラーになるんじゃない?。誰も関数 inputPass
を呼んでないから何も処理されてないだけじゃない?
メニュークリックイベントでパスワード入力ができる何かをVB歴半年さんが
用意して、そっちを先に表示して、入力された文字列を If 文で比較して
OKならダイアログ表示する。…その処理の中で InputPass とかいった
自分で作った関数にしてみては?という提案であって、InputPass
って書いたら自動でパス入力画面が出るわけじゃナイよ?
いろいろおさがわせしてスイマセンでした。
あまり知識のない状態で質問してしまって、ご迷惑お掛けしました
もっと勉強してから、質問できるようにします。
ツイート | ![]() |