モナーの *やさしい* Delphi質問スレ Ver.8
MDIでタブ式のテキストエディタを作っているのですが、
MDI子フォームを最小化したときにそのフォームを隠したい。
誰かいいアイデア有りませんか?
今のところ、フォームを閉じて文書の中身を記憶すると言うことを考えているのですが、
それだとアンドゥバッファも取り込まなければならないのであまり気が進みません。
>>951 「Delphi壁の穴」というサイトが、まんまなサンプルを載せてくださってますよ。
検索しましょう。
コードエクスプローラは TTreeControl という,TTreeView とは全然別のものみたいですね
別にいらないけど
>>952 >MDIでタブ式のテキストエディタ
なんで MDI にする必要があるんだ?
957 :
デフォルトの名無しさん:02/10/04 04:49
( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
>>958 疑問を持たないほうがおかしいだろ。
タブ式で、かつ MDI だぞ。どの部分を MDIChild にするのか分からん
>疑問を持たないほうがおかしいだろ。
UI的な疑問だとすれば、好き嫌いはともかく、そういうソフトは既に存在する。
技術的な疑問だとすれば
>>961
某タブブラウザとかね。
960 だけど、やっぱ頭かたいのかなぁ。
おれは、Lunascape を子供に内緒で自宅で使っているが、あれはタブをつかって
るけど、MDI じゃないよね。タブ式でかつMDIというのは、おのおのの MDIChild
に Lunascape が一つずつ入っているようなものしか想像できないんだが。これだと
無駄すぎるような気もするし。MDIでかつタブ式のアプリをどれでもいいから一つ
教えてください。
960 だけど
目の前にある Excel2000 は、ワークシートを一つのタブだと見なせば
たしかに MDIかつタブ式だね。なるほど。
>>964 MDIそのものを否定してる訳ね。
切り替え方法(マウス時)がメニューからしかない素のMDIなんて使いにくすぎるもんな。
Operaに惚れました。
あと、ただのタブ式であればOLE D&Dを使って複数の文書間の文字列の移動ができませんので。
言い方が悪く、誤解を招いてしまったようです。
タブによって各MDI子ウィンドウを切り替えたいのです。
>>955 それだとエラーが出ます。
(MDI 子フォームを隠すことはできません)
サイト名じゃないや…。トホホ…。日本Delphi振興会さんのコンテンツだ…。
960 です。
世の中でいう MDI という概念と、わたしが PSDK から学んだ MDI とはズレが
あることが分かりました。966 のリンクからタブブラウザのスクリーンショット
をいくつか見てみましたが、タブ/MDI に分類されているのでも、PSDK 的には
MDI ではないものがかなりありました。どうも、タブを持ったウィンドウが
複数スプリッターで分割されているものも MDI に分類されているようです。
MSDN で MDI で検索すると分かりますように、狭義の(正式な)MDI は、
ウィンドウズが提供する特別なクラスを使ったもので、FrameWindow、
MDIClientWindow と複数の MDIChild ウィンドウからなるものです。
MDIChildWindow の最大化に伴うメニューのオートマージ、Window メニュー
のサポートなど、独特の UI 機能を持ちます。各 MDIChild は、最小化、最大化
X ボタンをタイトルバーの右側に持ち、最大化されると FrameWindow のメニュー
バーの右端に表示されます。また、FrameWindow の Window メニューからは
Tile や Cascagde などで Child Window を並べて表示できます。Delphi で
Form1 の FormStyle を fsMDIForm のときが FrameWindow と MDIClient に
相当しています。Form2 以降で fsMDIChild にしたときが MDIChild ウィンドウ
に相当しています。
965 に書きましたように Excel2000 で WorkSheet をタブに対応させると
ひとつのファイルに複数の worksheet があり、かつ、複数のファイルを
同時に開けるので、MDI かつ タブ式であると思います。また、NilBrowser
というのも狭義の意味でもそうだと思います。
元質問にもどって、「MDIでタブ式のテキストエディタ」というのは、やはり
冗長であると思います。複数のテキストファイルを同時に編集したい、という
ことなら、タブ式か MDI 式かのどちらかで充分なはずです。アイデアプロセッサ
みたいに、ひとつのファイルに複数のテキストが対応しているときは、Excel の
ように MDI かつ タブ式というのが便利ですね。
読まない。
>>969=952
> タブによって各MDI子ウィンドウを切り替えたいのです。
あっ、そういうことね。それは MDI ね。
>>952 >MDI子フォームを最小化したときにそのフォームを隠したい。
procedure TForm2.FormResize(Sender: TObject);
begin
if IsIconic(Handle) then ShowWindow(Handle,SW_HIDE);
end;
もとに戻すときは
procedure TForm1.Command1Click(Sender: TObject);
begin
ShowWindow(MDIChildren[0].Handle,SW_SHOWNORMAL);
end;
とすると、こっちではうまくいってる
>タブ式か MDI 式かのどちらかで充分なはずです
それがあたま固いいっての。
技術的なアプローチでなくUI的なアプローチ、ユーザが欲する仕様を如何に
実現するかってのが大事じゃないかね?
最近マウスジェスチャというUIが取り上げられているけど、あんなものは
なくても操作はできる。しかしこれを欲するユーザは多い。
>>974 うまくいきました。
どうもありがとうございました。
それがちんこ固いいっての
>> ユーザが欲する仕様
元質問者が MDI でいいって言ってるじゃん
頭がやわらかい → チンケな UI → 斬新なUIを思いつく→進歩があるかもね!
頭がよわい → チンケなUI → 誰も使わない
というパターンの方が多い
>> 最近マウスジェスチャというUIが取り上げられているけど、
ちゅうちゅうマウスってやつは、もう7年以上まえに異常なくらい
はやった。Windows3.1 からあったよ。でも
2週間くらいであきて、はずしてしまう。
厨々マウスって、マウスジェスチャを実現するソフトなのか?
あれって要らない機能をつけた単にマウスユーティリティだろ?
マウスジェスチャはタブブラウザ使っていれば、便利さがわかるよ。
使いやすいUIを考えられない人たち。
使いやすいUIが分からないなら基本に戻れ
最も基本となるUIを使ったソフトがWindows標準である。
スタート→プログラム→アクセサリ→メモ帳
>> 使いやすいUIを考えられない人たち。
ここに書き込んでる奴らが新しいUIを考えたわけでもないだろうに。
だいたい「使いやすい」って誰が決める?
985 のリンクの記事を読むと、マウスジェスチャって、デバイスドライバレベル
でのUIだというような感じだが。
952以来で議論されているGUIレベルの設計の話とは次元が違うんでは?
UI についてはまだまだ改善の余地がたくさんあるんだろうね。
保守的な人間も多いからゆっくりゆっくり変化してゆくんだろう、きっと。
最近の新しいUIで普及したのはマウスホイールだろうか。
989 :
デフォルトの名無しさん:02/10/06 21:44
マウスジェスチャだってアプリレベルの話だよ。
そういやクロームエフェクトの研究は続けてるのかね。
センシバじゃないの?流行ったきっかけは。国産だとNrLauncher。
Black&Whiteだろ。呪文の詠唱するのに必要。
∧_∧
( ´∀`)
( )
| | |
(__)_)
,,,,,,,,,,,,,,,∧,,∧
〜′,,,,,,,,,,ミ,,゚Д゚彡
UU"""" U U
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。