ファイラの使い方 …とメッセージ送信談義ちょっと
Mac や Win などの従来のコンピュータ環境ではせっせとデータを詰め込んだファイルを作ることが主な作業ですので、ファイラはとても重要な位置づけになります。が、Smalltalk の場合、キモはオブジェクトの設計や運用にあるので環境内ですんでしまいます。チェンジファイル(.changes)へのログ保存作業は行なわれていますが、これはシステムレベルの仕事なのでユーザが意識することはありません。そんなわけで、ファイラは実にシンプルなものになっています。ただ、cmd-U や先のパッチ当ての作業にも象徴されるように“外界”との情報とのやりとりは重要なので、きちんと使い方を知っておく必要はないでしょう(し、使用頻度も実は結構あります(^_^;))。
ファイラは FileList という名前のウインドウが担当します。右手の Tools フラップから同名のウインドウをドラッグ&ドロップすると使えます。同様の作業は、デスクトップメニュー → open... → file list でも可能です。--sumim - 2002-11-25, 11:51:44
FileListは,この前パッチを当てた時に使った物ですね.デスクトップメニューからのopenも出来ました.
FileListは外界との情報のやりとりの窓口としても重要な位置づけですね.--人狼 - 2002-11-25, 11:57:54
そうです。ジョブズ(というか Apple の UI デザイナ)はこれはあえて採用せず、オブジェクトとしてのファイル、デスクトップメタファー、アイコンを結びつけて Finder を作ったわけです。ちなみに、FileList のほうは、のちに説明する Browser のエッセンスを取り入れて、NEXTSTEP を経て、現在の OS X Finder のカラム表示へと脈々と受け継がれます。--sumim
Workspace と異なり、こうした機能性のウインドウ内はたいていいくつかのペイン(区画)に別れています。FileList の場合、左上をボリュームリスト・ペイン、その下をテンプレート・ペイン、右側をファイルリスト・ペイン、下をファイルコンテンツ・ペインとここでは呼びましょう。--sumim - 2002-11-25, 12:05:48
ボリュームリストは、ボリューム及び注目しているディレクトリまでのパスを示します。各親ディレクトリをクリックすることでそのディレクトリに注目することができます。前後しますが、サブディレクトリへ潜るには、ファイルリスト・ペインのリスト上部に列挙される [...] で終わるディレクトリ項目をクリックします。ボリュームリストの [] をクリックすると利用可能なボリューム一覧をファイルリスト・ペインに呼び出すことができます。FileList は FTP クライアントも兼ねているので、FTP サーバへのアクセスも可能です。--sumim - 2002-11-25, 12:15:22
FTP サーバの追加は、ボリュームリストの黄ボタンメニューにある add server... で Workspace のコンテンツとして生成される Smalltalk コードを修正/実行(cmd-a の後、cmd-d)して行ないます。Smalltalk にはダイアログボックスという概念がなかったため、古いオブジェクトやそれをベースに作り直されたものでは、こうしたスタイルでの設定が残っていることがあります。ビジュアル重視の Morphic フレームワークを採用してから作られたオブジェクトでは大丈夫です。--sumim - 2002-11-25, 12:19:37
そうそう。スクロールバーの説明をしていませんでしたが、スクロールバーの一番上にあるのは黄ボタンメニューボタンです。Squeak は、当初、ワンボタンの Mac をプライマリ・ターゲットプラットフォームとして開発が進められた関係上、いちいち option-クリックをせずとも黄ボタンメニューを呼び出せるような工夫としてこのボタンが設けられています。--sumim - 2002-11-25, 12:23:50
ボリュームリスト・ペイン,ファイルリスト・ペイン了解です.ボリュームリスト・ペインにある↑で始まるボリュームがFTPサーバですね.ファイルリスト・ペインの上にはボタンが並んでいますね.
残念ながら会社のプロキシはFTPへの接続を許可していないので,帰ってから確かめてみます.
黄ボタンメニューボタンの経緯も了解です.--人狼 - 2002-11-25, 12:47:15
>Workspace のコンテンツとして生成される Smalltalk コードを修正/実行(cmd-a の後、cmd-d)
と言うのは「select all text and choose DoIt」の事ですよね.単にDoItと言う場合はこれとは違う操作なのでしょうか?それとも,DoItと言われたらイコール全選択してDoItなのでしょうか?--人狼 - 2002-11-25, 12:50:26
DoIt は、私が do-it と記述することと同じです。do-it には「選択部分のメッセージ式を評価する」という機能があります。ので、選択操作がその前に伴います。くだんの Workspace では、コンテンツ全体がメッセージ式から成るので、あらかじめ全選択(私は cmd-a 、システムは select all せよ、と指示)を行なっていただいたわけです。通常は、評価したい場所だけを選択してから do-it します。ちなみになにも選択しないで do-it しようとすると、システムは想定される範囲を選択しようと努力します。具体的には、キャレットを含むパラグラフを選択して do-it します。この当てが外れるノーティファイアが出てしまいますので、できれば明示的に評価対象を選択する習慣を付けておいたほうが無難でしょう。
do-it を含めてプログラミング関連は後で詳しく取り上げるつもりですが、せっかく do-it に興味を持っていただいたので、その亜種の print-it(cmd-p)にもちょっとだけ触れておきます。これは評価した式の返値を、選択文字列(評価した式、ですな)の直後に挿入するコマンドです。3 + 4 を print-it すると答えが表示されます。--sumim - 2002-11-25, 13:57:34
>do-it には「選択部分のメッセージ式を評価する」
なるほど.「選択部分の評価」なわけですね.なるほど.で,あれば「選択してからdo-it」があるべき姿なのですね.習慣にします.
そして,試してみました.print-it.詳しくは後ほどですね.逸脱しそうですが,面白い事に気付きました.3 + 4 * 2は14なのですね.演算ではなくて,式の評価だから3 + 4を評価して,その結果を * 2 しているんでしょうね.判りやすいですね.--人狼 - 2002-11-25, 14:07:23
逸脱のツボを心得ておられる…(笑)。お気づきのように、Smalltalk の算術式は“変”です。これは、Smalltalk の文法によるところが大きいです。Smalltalk では「オブジェクト(を参照する変数、生み出すリテラル式もしくは別のメッセージ式) メッセージ」という書式で、指定したオブジェクトに指定したメッセージを送るというふうに記述します。すべてがこれに尽き、一見、複雑に見える式もよく見ればすべてこの形式になっています。したがって、算術式も 3 に + 4 というメッセージを送る…と解釈します。そこで返ってきた 7 というオブジェクトに改めて * 2 というメッセージを送るので 14 となります。くどく書くと、 3 + 4 * 2 は (3 + 4) * 2 と自動的に解釈されるわけですね。もちろん括弧による優先順位の変更は可能ですので、3 + (4 * 2) と明示的にすれば、通常数式の結果も得られます。--sumim - 2002-11-25, 14:41:24
ちなみに ^ は別の用途に割り当てられているので、raisedTo: というメッセージを使います。2 ^ 100 は 2 raisedTo: 100 と書きます。他に ! は factorial と書き下します。: の付いたメッセージ(キーワードメッセージといいます)は + などの付かないメッセージ(二項メッセージ)より優先順位が低いので、2 raisedTo: 4 * 5 は、4 * 5 が先に評価されて、2 raisedTo: 20 として評価されます。factorial のように : の付かないもの(つまり二項やキーワードメッセージのように引数を持たないもので単項メッセージと呼ばれる)は他二者に優先されるので、3 + 4 factorial は、3 + (4 * 3 * 2 * 1) と同じになります。--sumim - 2002-11-25, 14:50:31
関数も例外でなく、sin(3.14) も Smalltalk では 3.14 sin です。とにかく「オブジェクト メッセージ」です。これに尽きます。--sumim - 2002-11-25, 14:58:01
>逸脱のツボを心得ておられる…(笑)
すみません(汗)いや,この性格がいかんのは判っとります.どうも「まだ,そこはい〜だろう」と言うところでも気になってしまうのです.すみません,はい.
また気になるところが出てきたのですが(苦笑),さすがにこれ以上の逸脱はよろしくないのでしょうから,今はここまでにしておいた方がよろしいですね.
>「オブジェクト メッセージ」
は,しっかりと覚えておきます.色々な例を有り難うございます.メッセージも三種類覚えました.--人狼 - 2002-11-25, 15:04:18
>また気になるところが出てきた
いえ、気にせず書いてみてください。その場で説明を加えるかどうかの判断は任せていただきますが(無視したときはお気を悪くなさらず「後で…」というシグナルと解釈してください、というルールでいきましょう)、備忘も兼ねますので。書いてみるテスト、と気楽にw。--sumim - 2002-11-25, 15:15:38
>気にせず書いてみてください
では,お言葉に甘えて…
>無視したときはお気を悪くなさらず「後で…」というシグナルと解釈
了解しました.枕を涙で濡らさないようにします(謎)
>3 に + 4 というメッセージを送る…と解釈します。
「オブジェクト メッセージ」と言う事ですから,「3」はオブジェクトだと思います.数をオブジェクト化する事に違和感はないのですが,「+ 4」がメッセージと言うところが,ストンとしません.「+」は二項メッセージと言う事ですので,「3 +」で「オブジェクト メッセージ」となっていますが,この後ろの「4」の解釈が出来ていません.
同様に「* 2」のところもダメです.「3 + 4」の結果が「7」と言うオブジェクトと言うのは良いです.だから式の評価の結果,オブジェクト「7」と「*」と言うメッセージまではOKなのですが,その後ろの「2」の立場は?と言うところで悩んでいます.
と,とりあえず書いてみるテスト(笑)--人狼 - 2002-11-25, 15:23:14
ちょっと待て>自分.
>「+ 4」がメッセージと言うところが,ストンとしません.
「+」は二項メッセージなんだから,この場合は「4」と言うオブジェクトを引数に取るメッセージと言う事かも.
だとしたら,間抜け過ぎる質問だ>自分(^^;--人狼 - 2002-11-25, 15:28:43
ということで自己完結でいいんですね?(笑)。ちなみに +、*、raisedTo:、factorial、sin は厳密にはメッセージ“セレクタ”(平たく言うとメッセージ“名”)で必要なら引数を伴った、+ 4、* 2、raisedTo: 100、factorial、sin がメッセージということになります。ついでにいうと、そのメッセージを受信したときに何をするかを記述したコードがメソッドです。メッセージと、メッセージセレクタ、メソッドは混同しやすいので注意してください。ってもたいした実害はありませんが(^_^;)。--sumim - 2002-11-25, 15:46:49
ここまで脱線したついでですので言っちゃうと、Smalltalk では条件分岐も「オブジェクト メッセージ」形式で記述します 1 > 2 ifTrue: [3] ifFalse: [4]
これは字面どおり、1 が 2 よりも大きければ 3 を、そうでなければ 4 を(返す)というメッセージ式です。当然、print-it すると 4 が返ります。おもしろい(失敬!)ので、ここまでの知識でこのメッセージ式の解釈(メッセージの送信順序やどんなオブジェクトがそれを受けるのかを、単項二項メッセージ、キーワードメッセージ、引数、返値、メッセージ、メッセージセレクタ、メッセージレシーバなどの言葉を使って(笑))を予想してみてください。こう書く以上、当然、トラップがあります。--sumim - 2002-11-25, 15:52:22
>ということで自己完結でいいんですね?
えぇっと,自己完結と言うか「メッセージセレクタ」の説明を読んで了解致しました.
>条件分岐も「オブジェクト メッセージ」形式で記述
ほへぇ.徹底してますねぇ.
>予想してみてください。
考えてみます.しばしお時間を.--人狼 - 2002-11-25, 16:04:53
考えてみました.かなりあやしいです.
まず最初に「1 > 2」が評価されます.「1」がメッセージレシーバー.「>」はメッセージセレクタでオブジェクト「2」と言う引数を伴い「> 2」と言うメッセージになります.
ですので「1」に「> 2」と言うメッセージが送られる事になります.この結果「FALSE」を意味するオブジェクト(私には未知ですが,あるとしなくては矛盾しますので仮定します.)が返値となります.
次に「ifTrue:」なるキーワードメッセージが評価されます.このキーワードメッセージはFALSEをメッセージレシーバーとして送信されますので,[3](これは3と言うオブジェクトを辺値として与えるの意?)は実行されません.
次に「ifFalse:」なるキーワードメッセージが評価されます.このキーワードメッセージはFALSEをメッセージレシーバーとして送信されますので,[4](これは4と言うオブジェクトを辺値として与えるの意?)は実行されます.
と,読みました.どこにも「実行停止」のような記述が見受けられないので,仮に一番最初に評価される「1 > 2」を「2 > 1」としても,ifFlase:は評価されると思います.(むろん,この場合はTRUEなるオブジェクトが返値ですので,ifFlase:は成立していないから4は返されない)
う〜ん,単項メッセージがどこにも出てこない.ひょっとして「[]」がそうなのかな?いや,でも「[3]」では「オブジェクト メッセージ」の形じゃないし.謎だ.--人狼 - 2002-11-25, 16:39:06
いや、ごめんなさい、単項メッセージじゃなくて二項メッセージでした。では、解決編です。まず、1 > 2 の解釈はオッケーです。腕慣らしですね。惜しむらくは、1 > 2 を print-it してみていただけなかったことでしょうか。false というオブジェクトが返ってくるはずです。ちなみに Smalltalk では大文字と小文字を区別しますので、false と False(FALSE ももしあれば)は別物です。--sumim - 2002-11-25, 16:45:42
>惜しむらくは、1 > 2 を print-it してみていただけなかった
いや,おっしゃる通りです.環境が手元にあるのですから確認すべきでした.失礼しました.
確かに,1 > 2の結果としてオブジェクトが返される事を自分で述べているのですから,確認出来たはずです.申し訳ありません.--人狼 - 2002-11-25, 16:49:16
>false と False(FALSE ももしあれば)は別物
falseは今返されたオブジェクトですよね.Falseと言うのはなんだろう.→Browse-it(でいいのかな?選択して「browse it」を選択)してみたら,Boolean(=Objectのサブクラス)のサブクラスとありました.う〜ん,ひょっとしてFalseはfalseのクラス定義?
深くなってきちゃいました(苦笑)--人狼 - 2002-11-25, 16:52:54
そうです。False は false のクラスで、false は False の唯一のインスタンスです。もっというと、false は False の唯一のインスタンスを返すリテラルもしくは偽変数(代入できないが参照はできる変数のようなもの)と言えます。オブジェクトのクラスを返すメッセージ class を false に送ると、つまり、false class を print-it すると、False が返ってくるはずです。--sumim - 2002-11-25, 16:58:41
>false は False の唯一のインスタンスを返すリテラルもしくは偽変数
了解です.偽変数と言うのがあるのですね.これは,値ではなくインスタンスを返すと言う点で,定数とは違うのですね.
確かにfalse classのprint-itはFlaseを返しました.--人狼 - 2002-11-25, 19:44:51
1 > 2で返ってきた false に ifTrue: [3] ifFalse: [4] というメッセージが送られます。これがトラップです。ifTrue: [3] と ifFalse: [4] という二つではなくひとつのメッセージというところですね。ちなみのこのメッセージに使われているメッセージセレクタは ifTrue:ifFalse: と表記されます。Smalltalk のメッセージ送信では、引数が2つ以上の場合は、: の直後にこれを挿入して記述する…という約束があります。false は ifTrue:ifFalse: というメッセージを受け取ると、無条件で二番目の引数のオブジェクトを評価して返します。ちなみに [] はブロックコンテキスト(BlockContext)、通称ブロックと呼ばれるオブジェクト(のリテラル式)で中に記述されたコードの遅延評価のためにしばしば用いられます。まあ、それはいいとして、繰り返しになりますが、とにかく false は ifTrue:ifFalse: というメッセージを受け取ると無条件に二番目の [] の中のメッセージ式を評価して返すわけです。--sumim - 2002-11-25, 16:54:24
>ifTrue: [3] ifFalse: [4] というメッセージ
ありゃ.そうですか.これでワンセットなのですね.う〜ん.いや,私が浅はかでした.ちゃんとBrowse-itする癖を身に付けなくては.
ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock
とありました.で,falseは ifTrue:ifFalse:の二番目を,trueは一番目のメッセージ式を無条件に評価して返すのですね.
>引数が2つ以上の場合は、: の直後にこれを挿入して記述する
のところが,今一つピンと来ないのですが…--人狼 - 2002-11-25, 19:51:19
ああ。これはあまり深く考えなくてよいです。先の例で、メッセージが「ifTrue: [3] ifFalse: [4]」のときその引数は [3] と [4] の二つで、メッセージセレクタは「ifTrue:ifFalse:」、つまりメッセージから引数とスペースを取り除いたものだということを逆から言ったまでです。普通の言語風に書くと「ifTrue:ifFalse:([3],[4])」ってなぐあいにでもなりましょうか。とにかく、ifTrue: と ifFalse: には分けない。ifTrue:ifFalse:、ifFalse:ifTrue:、ifTrue:、ifFalse: はそれぞれ別物ということに留意していただければokです。--sumim - 2002-11-25, 20:29:38
>true は一番目のメッセージ式を無条件に評価して返す
ご明察。--sumim - 2002-11-25, 20:36:16
>そのメッセージセレクタは「ifTrue:ifFalse:」
了解しました.
とにかく,まずは試す.調べる.身に付けなくてはダメですね.
さて,話しをだいぶ戻して(汗)FileListのFTPを試してみました.さくっと接続されてしまいました.自分のFTPでも接続まで確認しました.
と,言ってもUL/DLは怖いので試してません.quitもどうすれば良いのか判らず,いきなりFileListをcloseしてしまいました.--人狼 - 2002-11-25, 20:39:45
そうですね。サーバへの quit はどのタイミングで送信してるのかなぁ…。考えてみたこともなかったです<ぉぃ! --sumim - 2002-11-25, 20:43:19
次は、テンプレートペインにいきましょう。ここには、* をワイルドカードに使った文字列を記述することで、それを含むファイルのみをファイルリストペインに表示させることができます。.cs だけを呼び出したければ *.cs と書いて accept(cmd-s)すればいいわけですね。ただ、このペインは FillInTheBlank と同様に return でも accept できますので、単に return でも構いません。--sumim - 2002-11-25, 20:46:21
ファイルリストで、[...] で示されるディレクトリ以外、つまりファイルをクリックして選ぶと下のファイルコンテンツペインにその内容が表示されます。テキストだけでなくバイナリもそのまま ASCII で表示されてしまうのはご愛敬ということで。大きなファイルの場合、最初の何文字かだけ表示されます。敢えて全てを読込まなければならないときは、ファイルコンテンツペインの黄ボタンメニューより、get entire file を選びます。--sumim - 2002-11-25, 20:49:16
ファイルリストペインの黄ボタンメニューには、新しいファイルを作ったり、既存のファイルの名前を変えたり、削除したり、新しいディレクトリを作るためのコマンドが用意されています。また、選択するファイルの拡張子に反応して、例えば .gif ファイルなどの読込み可能な画像ファイルなら、open image in a window のような項目が追加されます…が、これは前に言った黄ボタンメニューの内容は選択項目には左右されない…というのに矛盾しますね(笑)。ま、こういう例外もあるということで、許してください。--sumim - 2002-11-25, 20:52:17
add new file で新しいファイルを作ろうとすると FillInTheBlank で名前を尋ねてくるので入力すると、その名前のファイルができます。下のコンテンツペインにはなにも表示されません。コンテンツペインに適当な文字を入力して、accept(cmd-s)すると、これが保存のイベントになります。自動的に重ね書きはされないので、注意を促されますがよければ重ね書きということで保存します。ダメなら別の名前を付けることを選んで、FillInTheBlank で改めて名前を付けて保存します。キャンセルするとノーティファイアがでますが、これはファイルの入出力を閉じるための無害なものなので、放っておいても構いませんが、たいていは邪魔なのでクローズボックスをクリックして消してしまいます。--sumim - 2002-11-25, 20:56:46
Smalltalk 環境ではよくこのノーティファイアがでますが、FileList でのキャンセルの例にもあるようにエラーというわけでもないのにプログラマが敢えて出すこともあるのでユーザとしては出てきてもあまりあわてる必要はありません。意味不明の情報が羅列されているので最初はビビリますが、デバッガ起動にも用いることもあって、そのうちすぐに仲良くなります<ぉぃ!(笑)。すくなくとも Mac の爆弾マークのような危険なものではないことにご留意ください。これは私の想像ですが、Mac の爆弾マークもこのノーティファイアの影響を受けて作られたものだと思います。メンテが悪い Mac だと頻繁にでてしまうところまで不幸にもそっくりですね(笑)。ただノーティファイアと違って、Mac の場合、コイツ(爆弾マーク画面)が出たらアウトですが…(^_^;)。--sumim - 2002-11-25, 20:59:45
FileList の基礎は以上です。また、日本語版や Smalltalk コードの扱いについて触れるときに改めて詳しくやりましょう。--sumim - 2002-11-25, 21:00:31
>サーバへの quit はどのタイミングで送信してるのかなぁ…
sumimさんが,意識されてないと言う事は気にしなくて良いと言う事でしょう(笑)--人狼 - 2002-11-25, 21:38:24
> をワイルドカードに使った文字列を記述することで、それを含むファイルのみをファイルリストペインに表示
なるほど.最初にフォルダをボリュームペインで選択した時はファイルリストペインとファイルコンテンツペインに同じ内容が表示されるんですね.テンプレートペインでワイルドカード指定をすると,ファイルリストペインは変化するけど,ファイルコンテンツペインは変化しなかったので,ちょっと戸惑いました.--人狼 - 2002-11-25, 21:43:50
>ファイルをクリックして選ぶと下のファイルコンテンツペインにその内容が表示されます
確認しました.ファイルを選択し直すと,ただちにファイルコンテンツペインに反映されるのですね.気持ち良いです.
>テキストだけでなくバイナリもそのまま ASCII で表示されてしまう
テキストだ,バイナリだと言うのは使う側(=人間)が勝手に意識区別しているだけで,テキストファイルなどと言うのは,バイナリファイルの特殊な形態ごく一部だけを扱うと言う決め事に従ったファイルに過ぎないと思っています.だから,この仕様の方が実は落ち着きます.勝手にテキストだバイナリだと判断して欲しくないので(苦笑)
>大きなファイルの場合、最初の何文字かだけ表示されます。
最初の5000文字だけですね.全て見たければ「get」せよと,言っとりますが,これは「get entire file 」なのですね.--人狼 - 2002-11-25, 21:49:10
>ファイルリストペインの黄ボタンメニュー
色々なメニューがありますね.compressってなんだろう(^^;zipによる圧縮は別なメニューがありますし…browse code filesと言うのも判らないなぁ.とりあえずやってみましたが,よく判りませんでした.
>黄ボタンメニューの内容は選択項目には左右されない…というのに矛盾
いえいえ,大丈夫です.「ペインやそれが管理する情報の種類によって項目が追加されたり削除される」と言う但し書きがありましたから.--人狼 - 2002-11-25, 21:56:25
>add new file で新しいファイル
した瞬間に空のファイルは出来るのですね.で,ファイルコンテンツペインで入力した後にacceptすると,中身が書かれる…と.
>自動的に重ね書きはされない
不要にオーバーライトしないので,最初の内は良いかも知れません.慣れてくると煩わしくなるのでしょうが,実は慣れた頃が一番危ないかも(苦笑)
>キャンセルするとノーティファイア
出ました(笑)--人狼 - 2002-11-25, 22:03:08
>エラーというわけでもないのにプログラマが敢えて出すこともある
そうですかぁ.そう言うもんだ,と思っていれば良いのでしょうね(汗)
>意味不明の情報が羅列
なにやらコールヒストリみたいな感じでした.そう言う意味ではデバッグ時には有効そうですね.
>Mac の爆弾マークのような危険なものではない
安心しました(苦笑)--人狼 - 2002-11-25, 22:06:07
>色々なメニューがありますね.compressってなんだろう(^^;
そうですね。基本的なところだけ解説を加えておきましょうか。--sumim - 2002-11-25, 22:02:50
…と思いましたけど、compress くらいですね。これは gzip 圧縮です。テキストファイルなどを選択してこれを選ぶと、.gz ファイルができます。このファイルを選択すると、decompress to file コマンドが選択できるようになるのでこれで元のファイルを取り出せます。ただし、.gz ファイルを作っても元のファイルが削除されるわけではないので、同じディレクトリで compress と decompress to file を続けると、例によって重ね書きの警告メニューが出てきます。browse code files は、ディレクトリ内にある Smalltalk のコードファイルを一挙に閲覧するためのものなので、また追々。--sumim - 2002-11-25, 22:22:56
じゃあ、ぼちぼち Morphic GUI フレームワーク モーフに移りましょうか。--sumim - 2002-11-25, 22:25:06
>compress くらいですね。これは gzip 圧縮
了解しました..gzファイルが出来るのですね.decompress to fileコマンドが選択出来ること,重ね書きの警告も見ました.browse code filesは,必要になった時と言う事で.--人狼 - 2002-11-25, 22:32:42
>ぼちぼち Morphic GUI フレームワーク モーフに移りましょうか
その前に一つだけ質問を.
OS Xで使ってますが,パッケージはディレクトリとして認識されるのは判りました.ところが,パッケージのエイリアスもディレクトリして認識されているようです.しかも,ボリュームリストペインで見ると,あたかもエイリアスの存在するフォルダにパッケージが存在するかの如く見えます.これで正常なのでしょうか?--人狼 - 2002-11-25, 22:35:55
ほんとですね。たぶんエイリアスの処理がうまくいっていないバグだと思います。--sumim - 2002-11-25, 22:55:31
了解しました,有り難うございます.では,いよいよモーフに(ワクワク)--人狼
このページを編集 (27703 bytes)
|
以下の 1 ページから参照されています。 |
This page has been visited 3682 times.