古籏一浩です。
スカラー変数について調べてみました。
「何のデータでも入る変数」
といった所です。
Future BASICなら
A = "ABC"
とするとエラーになりますが、JavaScript, Perlでは
A = "ABC"
でも
A = 9
でも正しく動作します。
ベン/矢野勉 です。
At 10:45 PM 97.9.5, 仙台7200/90 wrote:
> >Static以外の変数の事ですよね。
> >FBのLOCAL FN〜の中で使われるのと同じでしょう。
> >それとも、全く違うヤツ?
> うーん,どうなんでしょう。
> 私はEWSでのデータベースが専門なのでいまいちわかりません。
自動変数っていうのはC言語の概念ですね。C言語には「自動変数」「外部変数」「静的変数」がありまして、外部変数は関数のそとに定義されることからきた名前で、グローバル変数を指します。自動変数は逆に関数のなかでだけ定義され、関数呼びだしにあわせて自動的にメモリの確保/破棄を行うところからついた名前です。要するにローカル変数。いまでは関数内変数が自動でメモリ確保/破棄をするのはあたりまえになってますので、ちょっと浮いた名前ですね。
静的変数は、関数のなかでだけ使用される点ではローカル変数なんですが、グローバル変数のように、恒久的に存在し、破棄されません。
> そういえば,「スカラー変数」というのも聞きましたが何なのでしょう?
型を区別しない変数です。Perl のスカラー変数は有名ですが、MAC でもハイパーカードのスクリプトであるハイパースクリプトの変数は型がありませんので、文字列も数字も区別なくいれられますので、スカラー変数です。
Smalltalk もそうですが、まあ、オブジェクト指向では「型」自体が不用ですから。
> FB2で悩むのは変数より定数です。「.v」や「.h」はわかりますけど「_zFalse」とかの頭にZが付く定数は他の処理系ではありませんよね。
> どういうときに使うのか意味不明のままです。
> 定数ツールで見ますと値は見れますが,意味するところは解説されていないので,FB2で初めてマックプログラミングに挑戦する者にとっては使いこなすのが難しいです。先日もrectの各メンバーが定義済みなのを見つけましてショックでした。まだまだ知らないものがあるんだろうなぁ。
うーむ、定数は単なる数字につけた名前に過ぎないんで、処理系云々の問題ではないですよね。単に STAZ がそう定義したってだけのことでして。_zTrue は古旗さんのいうように、Z BASIC 時代のなごりですね。ちなみに Pascal Converter で .p ファイルをコンバートすると、DIM RzTop% とか、やたら小文字の z が出て来るのも同じ理由です。
定数の名前の付け方は処理系には依存しませんが、広く普及した「接頭辞」がいくつかあります。メニュー用定数は m で始まるとか、FB では定数には _ (アンダースコア) がつくんでいいですが、Cやらパスカルでは変数と区別が付かないので、k を頭につけるのが普通です。(kScrollbarSize とか) まあ、どれも風習にすぎませんので、破ったって全然問題ないですけど。
ちなみに _zTrue については HANDBOOK の p234 にちゃんと解説があります。真偽値の偽については、ほとんどの言語で0をそれに当てはめていますが、真については「0以外」という曖昧な規則になっています。そのため、Pascal では 256 が、ToolBox では 1 があり当てられています。これが _pTrue と _true です。
しかし IF NOT 命令などでの NOT命令 は、後ろの値をビット反転させて評価するので、偽(0) の反対の真は -1 でないとだめなのに、どちらも -1 じゃない。というわけで、FB用真値として、_zTrue が必要になります。
しかしまあ、普通は「真かどうか」という判定はしませんで、「偽じゃないかどうか」という判定をします。偽が0であることは確実だから、偽値をつかって判定したほうが確実なわけです。
つぎは 頭の # マークの解説でも、もう一回しましょうか(^^;) これも FAQ としてホームページに載せんとなあ。
ではでは。
- P.S.
- プロバイダのドメイン名変更にともない、メールや WWW のアドレスが変わりました。古いのも1年くらい有効ですが、一応ブックマークとか変更しておいてください。以下のとおりですので。
はじめまして、浜崎一巳と申します。
先日、このMLに登録させて頂きました。
Mac歴、1年、FB II歴、1ヵ月の初心者です。
このサイトは、サーチエンジンで、FB II以外にどんなMacのソフト開発環境があるのか調べているうちにたまたま見つけました。
実は、FB IIのマニュアル(特にPG)を読んでもよく分からず、あきらめかけていた所で、(FB IIは、日本語のマニュアルがないですから。)このサイトを見つけました。
知りたかった事、サンプルのソースが丁寧に解説されており、また、このMLの運用も小回りがききそうで、まるで生きているマニュアルを手にいれた気分です。
今は、初級講座を終え、中級講座へ進む前に、MLの今までの発言を読んでいる所です。FB IIも始めたばかりでちんぷん、かんぷんですが宜しくお願いします。
ところで、早速なんですが、ResEditについて書かれた書籍を紹介して頂けないでしょうか。(FB II からは、離れるかもしれませんが。)
アイコンの種類、使用目的等を解説したものです。例えば、エディットフィールドを作るとして、テキスト入力ボックス、スクロールバーの作り方、使い方等が書かれたものです。ResEditで、この辺を作成しておき、FB IIから呼び出そうと考えています。
ResEditの解説書って今まで一冊しか見た事がありません。これぞ、と思うものを紹介して頂けたらと思います。よろしくお願いします。
古籏さん,いつもありがとうございます。
変数の件はよく解りました。
ウインドウのメモリ占有量の件は,説明して頂いていることは良く解るのですが,自分のなかでちゃんと粉れない部分があります。
ウインドウの実体がVRAM上にあるから,アップデートイベントでなにもしないと真っ白になってしまうのだというのはわかります。
VRAM上にウインドウがあるから小さいメモリのSimpleTextで大きな画像が開けるというのもわかります。
うーん,自分でも何が疑問なのかあやふやになってきました。
ちょっとゆっくり考えてみます。
初めのころはオフスクリーンは目に見えないから難しいと思っていましたが,今では構造のよくわからないウインドウが不思議に思えてしまいます。ウインドウの構造体をちゃんと勉強しないといけない時期に来ているのだろうと思います。
ベンさん,こんにちは。
変数の説明をありがとうございます。
とてもよくわかりました。
スカラー変数はちょっとびっくりしました。
型のない変数ってあるんですね。Prograph CPXにはそんなんなかったです。
>ちなみに _zTrue については HANDBOOK の p234 にちゃんと解説があります。
すいません,確認したら載っていました。
みなさんご存じだったんでしょうか。
ちょっと恥ずかしい落ちになってしまいました。
ろくに調べた訳でもないことを「わからないままです」などと書くのは反則でした。ごめんなさい。
_zTrueの話なのですが,私は真が1の言語というか製品に慣れていますのでNOT命令を使わなければ,FB2でも判断文に_Trueがつかえると解ってちょっと安心です。
> つぎは 頭の # マークの解説でも、もう一回しましょうか(^^;)
漠然とした記憶では,コンパイラに何かの判定をスキップさせるようなことだったように思いますが,ちょっとあやふやですから気になっていたのです。
以前の過去ログを読みたいと思います。
浜崎さん,はじめまして。
どもども,根来でございます。
これからも仲良くしましょう。
ResEditの解説書の件ですが,松坂市なら大きな書店もあるでしょうしどうして見つからないのかなとおもいますが(^^;
なんなら,名古屋まで出てみるというのはどうでしょう。
いろいろと出ているのは知っていますが,わかりやすいのはなかったように思います。(わたしだけ?;)
実際に書店で読み比べて決めないと後悔すると思います。
結局私は本なし状態でおります。それでも何とかなってますよ。
では,では。
*** みなさん、いつもおせわになっております。 ****
yukiです。
古旗さんwrote:
> 一応PICTリソースを生成する講座を用意しましたが、これでもエラーがでますか?
>
> あとリソースがパージ可能になっているとか。
^^^^^^^^^^^
すみません。モードの成田さんにも同じ質問をしてみたところ、古旗さんとおなじ以下の回答をいただきました。
”リソースをクローズするとそのリソースもパージされてしまうので、その前にCALL DETACHRESOURCEしてください”
とのことでした。古旗さんの例題でも試して見たのですが、やはり(a)でPICT HNDLが-111になってしまいました。
PRINT FN GETHANDLESIZE(pictHandle&)
CALL ADDRESOURCE(pictHandle&,_"PICT",resNo%,fileName$)
CALL UPDATERESFILE(refNum%)
CALL CLOSERESFILE(refNum%): ' "リソースファイルを閉じる"
(a) PRINT FN GETHANDLESIZE(pictHandle&)
原因は判ったのですが、pictHandle&はリソースではないはずなのですが、どうしてでしょうか?
yukiです。
また簡単な内容(?)で恐縮ですが、640 x 480のサイズのPICTハンドルがあったときに、128 x 128のサイズに縮小したPICTハンドル(もしくはオフスクリーン上への描画)をする場合にはどうしたら良いでしょうか。たしかに
PICTURE ON~CALL DRAWPICTURE~PICTURE OFF,thumnailH&
で縮小表示できるのですが、解像度が変わっただけでファイルサイズが縮小されません。
どういった方法が一番手軽に解像度そのままで縮小したPICTを得たら良いでしょうか?
yuki さん,こんばんわ。
ToolBoxのDrawPictureで解像度の指定ができたとおもいますが,まだ試したことがないので別の方法を参考までに話します。
640 x 480のオフスクリーンを用意して,PICTURE命令で絵を描きます。
次に128 x 128のオフスクリーンを用意します。
640 x 480のオフスクリーンから128 x 128のオフスクリーンにCopyBitsするのですが,次のようにしてはいかがでしょう。
CALL COPYBITS( #640_OffScreen&+2 , #128_OffScreen&+2 , rect1 , rect2, _srcCopy , 0 )
ここで rect1 には 640 x 480のrectをセットします。
CALL SETRECT(rect1 , 0, 0, 640, 480 )
rect2には128 x 128のrectをセットします。
CALL SETRECT(rect2 , 0, 0, 128, 128 )
これでシステムがリサイズしてくれると思います。
一連のソースとしては,以下のようになります。
オフスクリーンの確保と元絵の描画,rectの算出は済んでいるとして下さい。
------------------ キリトリセン ------------------
CLEAR LOCAL
LOCAL FN sizeComv(from_rect1,from_OffScreen&,to_rect,to_OffScreen&)
DIM from_rect;8 , to_rect;8
DIM from_OffScreen& , to_OffScreen&
CALL SETGWOLD(to_OffScreen&,0) ' "COPYBITSするだけなら不要なのですが私は毎回書いております"
CALL FORECOLOR(_blackColor) ' "COPYBITS前に書くと色化けしません"
CALL BACKCOLOR(_whiteColor) ' "FORE と BACKはセットで使います"
CALL COPYBITS(#from_OffScreen&+2,#to_OffScreen&+2,from_rect,to_rect,_srcCopy,0)
CALL SETGWORD(cport&,0): ' "描画先をウインドウに戻したつもりです。cport&を適切な変数名に変更してください"
END FN
なんか見ずらい例になってしまってすいません。
今ちょっと忙しいので,ちゃんと動作確認してませんので動かなかったら文句のメールをください。(こんな無責任でいいのか>わし)
古籏一浩です。
At 1:07 97.9.6 +0900, K.HAMAZAKI wrote:
> ところで、早速なんですが、ResEditについて書かれた書籍を紹介して頂けないでしょうか。(FB II からは、離れるかもしれませんが。)
>アイコンの種類、使用目的等を解説したものです。例えば、エディットフィールドを作るとして、テキスト入力ボックス、スクロールバーの作り方、使い方等が書かれたものです。ResEditで、この辺を作成しておき、FB IIから呼び出そうと考えています。
>ResEditの解説書って今まで一冊しか見た事がありません。これぞ、と思うものを紹介して頂けたらと思います。よろしくお願いします。
リソースエディタの本は2〜3冊は確実に出ているのですが、マニア向けといったものもありますので、書店で読んだ方がいいかもしれません。
私はリソースエディタの本はもっていませんが、なんとか使ってます。(なんとかではなくて「使ってない」(笑)という見方もありますが)
アイコンは白黒、カラーアイコンなどいろいろありますね・・・
ダブルクリックしまくって描いている内に何とか、できちゃいました。
古籏一浩です。
At 16:44 97.9.6 +0000, 仙台7200/90 wrote:
>初めのころはオフスクリーンは目に見えないから難しいと思っていましたが,今では構造のよくわからないウインドウが不思議に思えてしまいます。ウインドウの構造体をちゃんと勉強しないといけない時期に来ているのだろうと思います。
ウィンドウは、たまたま目に見えるVRAMというRAMに描画しているだけですから。確かごまかして通常のメモリ内に描くこともできるはずです。
クローズビューとかは、どうやってるんでしょう。
(虫眼鏡)
みなさん,毎日お騒がせしています。
今日本屋に行ったらMacTechという高級割烹のような値段の雑誌を思いきって買いました。BeOS DR9 が付いていたのでうれしくって早速パーティションを作成しインストーラーを動かしました。
ふふふ,これで私もBe使いに...と思っていたらインストーラーが「すまんがほかを当ってくれ」と言ってきます。
BeのHPで確認すると私のマシンではインストールすらできないのね。
あああ,(T T)
それならそうと記事の頭で書いておいて欲しかったです。
私は電池切れの6100と7200ですからPPC601なので動きません。
604じゃないとだめというのはきついですね。
601使いのみなさんも気を付けてください。将来のバージョンではPPCバスの601は対応してもらえるそうです。6100くんがかわいそう。
おあとがよろしいようで。
yuki さん,先ほどの関数にタイプミスがありました。
差し替えをお願いします。
------------------ キリトリセン ------------------
CLEAR LOCAL
LOCAL FN sizeComv(from_rect,from_OffScreen&,to_rect,to_OffScreen&)
DIM from_rect;8 , to_rect;8
DIM from_OffScreen& , to_OffScreen&
CALL SETGWOLD(to_OffScreen&,0): ' "COPYBITSするだけなら不要なのですが私は毎回書いております"
CALL FORECOLOR(_blackColor): ' "COPYBITS前に書くと色化けしません"
CALL BACKCOLOR(_whiteColor): ' "FORE と BACKはセットで使います"
CALL COPYBITS(#from_OffScreen&+2,#to_OffScreen&+2,from_rect,to_rect,_srcCopy,0)
CALL SETGWORD(cport&,0): ' "描画先をウインドウに戻したつもりです。cport&を適切な変数名に変更してください"
END FN
ご無沙汰しております。
最近は、全然、さわる暇がなく、遅々としてFiler Projectが進んでおりません。(^-^;
で、以下の件ですが、
(1)の条件を考えて、動作を説明すると、
(2)では、既存のpictHandle&のサイズを計算させ結果を表示
以下のプログラムだけでは、なにが表示されるかは不明
(3)では、pictHandle&で指示される内容を、fileName$のリソースファイルに含まれる、"PICT"リソースの中のresNo%で指定されたリソースを、メモリに取り込み、そのポインターに設定します。
(4)refNum%で指示されたリソースファイルをアップデートします。
(5)リソースファイルをクローズします。
ここで、(1)の条件が絡んできまして、メモリ上のPICTデータ自体がパージされてしまって、メモリ上に存在しなくなってしまいます。
ですから、(6)でpictHandle&のサイズを計算しようとしても、実体がメモリ上になくなっているため、エラーコードが表示されるわけです。
こんな感じでわかりますでしょうか。?
#私の知らないこととして、このpictリソースへのポインターもなくなるのか?ということですが、とりあえずは、ハンドルサイズは計算できないと言うことだけはいえます。
At 22:43 97.9.6, akiyuki wrote:
> *** みなさん、いつもおせわになっております。 ****
> yukiです。
...中略
>
(1) > ”リソースをクローズするとそのリソースもパージされてしまうので、その前にCALL DETACHRESOURCEしてください”
>
> とのことでした。古旗さんの例題でも試して見たのですが、やはり(a)でPICT HNDLが-111になってしまいました。
>
(2)> PRINT FN GETHANDLESIZE(pictHandle&)
(3)> CALL ADDRESOURCE(pictHandle&,_"PICT",resNo%,fileName$)
(4)> CALL UPDATERESFILE(refNum%)
(5)> CALL CLOSERESFILE(refNum%)
(6)> (a) PRINT FN GETHANDLESIZE(pictHandle&)
...以下略
yukiです。
Yasuo Kuzuharaさん wrote:
>(1)の条件を考えて、動作を説明すると、
>(2)では、既存のpictHandle&のサイズを計算させ結果を表示
> 以下のプログラムだけでは、なにが表示されるかは不明
>(3)では、pictHandle&で指示される内容を、fileName$のリソースファイルに含まれる、"PICT"リソースの中のresNo%で指定されたリソースを、メモリに取り込み、そのポインターに設定します。
>(4)refNum%で指示されたリソースファイルをアップデートします。
>(5)リソースファイルをクローズします。
> ここで、(1)の条件が絡んできまして、メモリ上のPICTデータ自体がパージされてしまって、メモリ上に存在しなくなってしまいます。
>ですから、
>(6)でpictHandle&のサイズを計算しようとしても、実体がメモリ上になくなっているため、エラーコードが表示されるわけです。
>
>こんな感じでわかりますでしょうか。?
Yasuo Kuzuharaさん丁寧な解説有難うございます。大変よく判りました。
この場合はやはりPICT HNDLはDIPOSEHANDLEしなくてもいいのでしょうね。(実体がないのだからあたりまえか)
解説くださったみなさん、どうも有難うございました。
yukiです。
仙台7200/90さんwrote:
> yuki さん,こんばんわ。
> ToolBoxのDrawPictureで解像度の指定ができたとおもいますが,まだ試したことがないので別の方法を参考までに話します。
>
> 640 x 480のオフスクリーンを用意して,PICTURE命令で絵を描きます。
(わざわざ訂正していただき有難うございます)
>------------------ キリトリセン ------------------
>CLEAR LOCAL
>LOCAL FN sizeComv(from_rect,from_OffScreen&,to_rect,to_OffScreen&)
> DIM from_rect;8 , to_rect;8
> DIM from_OffScreen& , to_OffScreen&
> > CALL SETGWOLD(to_OffScreen&,0): ' "COPYBITSするだけなら不要なのですが私は毎回書いております" > CALL FORECOLOR(_blackColor): ' "COPYBITS前に書くと色化けしません"
> CALL BACKCOLOR(_whiteColor): ' "FORE と BACKはセットで使います"
> CALL COPYBITS(#from_OffScreen&+2,#to_OffScreen&+2,from_rect,to_rect,_srcCopy,0)
> CALL SETGWORD(cport&,0): ' "描画先をウインドウに戻したつもりです。cport&を適切な変数名に変更してください"
>END FN
> なんか見ずらい例になってしまってすいません。
いえいえよくわかります。本当に有難うございました。前にFTPサーバの件で発言したときに古旗さんから”ソースつきで公開しましょう”という御意見がありましたがまったくの同感です。本当にソースがついていると内容が話しかけてくるように理解できるものです。(そういえば参考資料を読んでも判らんことが、プログラムリストを読んでから理屈を理解したことが何度もあったような...)
と、まぁ本題から外れてしまいましたが、やはりわたしも頂いたリストと同じ様なリストを作っていました。(はオフスクリーン上への描画と書いてしまったのは誤りでした)
PICTURE ON (0,0)-(128,128)
'"仙台7200/90さんとほぼ同じ内容
CALL COPYBITS(#from_OffScreen&+2,#to_OffScreen&+2,from_rect,to_rect,_srcCopy,0)
PICTURE OFF,thumbnail&
ところがこれでやると解像度が上がっただけでPICT HNDLにしたときのサイズが変わりませんでした。で、結局試行錯誤の結果以下の方法しか思いつきませんでした。
CALL COPYBITS(#from_OffScreen&+2,#to_OffScreen&+2,from_rect,to_rect,_srcCopy,0)
PICTURE ON (0,0)-(128,128)
'"仙台7200/90さんとほぼ同じ内容
CALL COPYBITS(#to_OffScreen&+2,#to_OffScreen&+2,to_rect,to_rect,_srcCopy,0)
PICTURE OFF,thumbnail&
これはいちどPICTへの描画前に縮小したものをPICTに書き込むといったものです。
どうやらPICTの解像度はDRAWPICTUREでなくCOPYBITSでも描画したPICTに反映されてしまっているようです。この詳しい理由は判りません。
お騒がせして申し訳ありませんでしたが、どなたかの参考になれば幸いです。
おひさしぶりです、沢田です。
まだ FB II を買っておりません。未だ初期版FBユーザーであります(^^;)
ところで最近、CrossBasic というシェアウェアに出会いまして、ますます FB II が遠のきそうだと感じる今日この頃です。 何がいいって、HyperCard でのプログラミングに極めて酷似した環境なんですよ(どちらかというとVisualBasicに似ているとも言えますが)。
で、68K,PPC のコードはもちろん、そのままJavaアプレット化もできます。しかも XCMD/XFCN をインポートしてコマンド/関数として使うこともできますし、AppleScript もプログラム中で使えます。
細かいスペック(どの程度のものまで作れるのか)はわかりませんし、まだバグも多く不安定なBASICですが、もし順調に育ったらMac史上最高のBASICとなるのは間違いないでしょう。
興味のある方、ちょっと試してみませんか?
ダウンロードサイトは http://www.frii.com/~abarry/cb_index.html
参考ページ(日本語)は http://www.satelight.co.jp/cb/index.html やhttp://www.people.or.jp/~smily/zenji.html などです。
yukiさん,こんばんわ。
うまくいってよかったです。
まずはめでたしですね。
さて,他の初心者の方が誤解されますので補足しておきます。
COPYBITS自体は解像度情報は扱いません。
オフスクリーンというものにも解像度情報はありません。
解像度情報はPICTURE形式のデータに含まれます。
ですから,PICTURE ONからPICTURE OFFの間でいくらCOPYBITSしてもデータ量の変化を抑えるために,解像度の変更のみ行われます。
結局データ量は変わらないので,再度元の解像度に戻しても情報の欠損はありません。ここらへんの話は「再現性のある縮小をする」などとInside Macに説明があります。初めに読んだときは何のこっちゃと思いましたが(^^
解像度を変更するというのは,見ための大きさを変えるだけの方法とデータ量自体を変化させる方法の二通りの意味がありますのでややこしいですね。前者はPhotoshopなどの「表示倍率の変更」ですね。データは保持していますから元に戻せます。後者は「解像度の変更」で,Undo以外では元に戻せません。
実際のソース内部で,データ量の変化させたい場合は,PICTURE ON / OFFの手前でピクセル量の異なるオフスクリーン間でCOPYBITSします。
このときのCOPYBITSはデータ量を変更しますので,再現性のないラスタライズをします。もう元には戻せません。
その後,PICTURE記録の中でコピー先のオフスクリーンを自分自身に上書きするCOPYBITSを行い記録します。
要するにyukiさんの書いたコード通りですね。
この部分も説明しておくべきでした。
ソースで解説の時間
----------------------- キリトリセン ---------------------
' "--- 初めのyukiさんのコード ---"
PICTURE ON (0,0)-(128,128)
' "PICTURE ON / OFF内部で FROM -> TOのCOPYBITSをしてもデータ量は"
' "不変のため,システムが勝手に解像度を変更する"
CALL
COPYBITS(#from_OffScreen&+2,#to_OffScreen&+2,from_rect,to_rect,_srcCopy,0)
PICTURE OFF,thumbnail&
' "--- 解決したyukiさんのコード ---"
CALL COPYBITS(#from_OffScreen&+2,#to_OffScreen&+2,from_rect,to_rect,_srcCopy,0)
' "このCOPYBITSでデータ量の変更(一般にサイズ変更と言う)をしています。"
' "ここからPICTUREへ記録開始"
PICTURE ON (0,0)-(128,128)
CALL COPYBITS(#to_OffScreen&+2,#to_OffScreen&+2,to_rect,to_rect,_srcCopy,0)
' "このCOPYBITSは,自分自身に上書きする行為をPICTUREに記録しています。"
' "なぜ自分自身に上書きしているのかというと,別に別途同サイズのオフ"
' "スクリーンを用意してもいいのですが,メモリがもったいないので自分"
' "自身に上書きしているだけです。なにも変化ありません。ただ,記録し"
' "たい画像をどこかに描画するという行為が必要なのです。"
PICTURE OFF,thumbnail&
' "これで thumbnail& にサイズ変更後の画像が記録されました。"
>仙台7200/90さんwrote:
えっと,「仙台7200/90」は別に私のハンドル名ではありません。
個人的なメールの利用以外に,遠隔地のLANとARA接続やメールのやり取りをしていますので,マックの識別名なのです。私がここの6100からメールを出すと「仙台6100/60」ですし,大阪からなら「大阪7200/90初号機」などになります。こちらの事情ですので仙台7200/90でも根来でもどちらでもお好きなほうでどうぞ。ただ,仙台7200/90さんでは他のマシンからメールが出せんので事情だけ話したかったのです。では。
早速のメールありがとうございます。
At 4:44 PM +0000 97.9.6, 仙台7200/90 wrote:
仙台7200/90> 浜崎さん,はじめまして。
仙台7200/90>
仙台7200/90> どもども,根来でございます。
仙台7200/90> これからも仲良くしましょう。
はい。宜しくお願いします。
仙台7200/90> ResEditの解説書の件ですが,松坂市なら大きな書店もあるでしょうしどうして見つからないのかなとおもいますが(^^;
確かに大きい書店はかなりあるのですが、コンピューター関係は、少なく、MAC関係はさらに少なく、ResEditとなると今までに一種類しか見た事がありません。
実は、この本は購入したのですがリソースのコード?( ICONとかhmmuとか)の種別の説明もされておらずシステムのちょっとしたカスタマイズしかできません。
FB IIからソフトで操作できる様にしようとするにはちょっと.....って感じです。
仙台7200/90> なんなら,名古屋まで出てみるというのはどうでしょう。
仙台7200/90> いろいろと出ているのは知っていますが,わかりやすいのはなかったように思います。(わたしだけ?;)
そうですね。名古屋ならあると思います。実際は、四日市でも結構揃っており、今まで四日市で買った本が多いです。何にしろソフトを作ろうと思ってから一ヵ月しか経っていないものですから、FB IIのマニュアルを読んで何が必要なのか分かり出した所なんです。もう少し、必要なものを見極めてから実行したい思います。
仙台7200/90> 実際に書店で読み比べて決めないと後悔すると思います。
仙台7200/90> 結局私は本なし状態でおります。それでも何とかなってますよ。
仙台7200/90> では,では。
う〜ん。すごい!!。
拙作ですが、Mdnに連載中のムービーワークショップ「ViMaNa07」に制作協力した際にFutureBasicIIで私が作ったプログラムが紹介されています。
Mdn 10月号 p123
これは流星を作るのが難しいと言われ、30分位で作ったものにファイル出力機能と一部調節機能をつけたものです。
最終的にはQuickTimeになるのでQuickTime出力したかったけど、やり方がわからんっ!
もしMdnを読んでる方がいたら読んでみて下さいね。
- PS
- エディットフィールドに文字列を追加する方法をご存じの方いませんか? たぶんハンドルを得てメモリ転送かマージでやるのだと思うのですがよくわかりません・・・。
古籏一浩です。
At 2:13 97.9.7 +0000, 仙台7200/90 wrote:
>BeのHPで確認すると私のマシンではインストールすらできないのね。
>あああ,(T T)
>それならそうと記事の頭で書いておいて欲しかったです。
どこかに一覧が載っていた気がするのですが・・・
それはよしとして、うちのマシンにはちゃんとBeOS DR9が入ってます。
DR8とえらく違うじゃんf(^^;
インテルマシンにも移植されて、なんとなく動いているようですし期待大です。
ネットワークの設定もMacより楽で異様にシンプルです。
Win95は素人には出来ないけどBeOSなら素人でも設定できるなあと思いました。
速度は結構高速です。
現状の最大の難関としてウリとなるソフトがない事でしょうね。
3年くらいすれば、何か出るかなあ。
と待っていても仕方がないのでBeOS用に自作のゲームシステムLightStreamを移植する予定です。これが移植できればMac, BeOSでプログラム無変更で同じゲームが動く(^^)/
UNIX,X-Winにも移植したいけど、はてさて。
ベン/矢野勉 です。
At 11:43 AM 97.9.8, Tatsuya_Miyata wrote:
> 拙作ですが、Mdnに連載中のムービーワークショップ「ViMaNa07」に制作協力した際にFutureBasicIIで私が作ったプログラムが紹介されています。
>
> Mdn 10月号 p123
>
> これは流星を作るのが難しいと言われ、30分位で作ったものにファイル出力機能と一部調節機能をつけたものです。 おお、すばらしい。でも我が愛機 Color Classic ではなあ(^^;) 動かんだろうなあ?
> エディットフィールドに文字列を追加する方法をご存じの方いませんか?
> たぶんハンドルを得てメモリ転送かマージでやるのだと思うのですがよくわかりません・・・。
これも FAQ 入りにしましょう(^^;) 実はなぜか PG のマニュアルにこれについての記述があります(^^;) P150 に次のような関数が紹介されています。
LOCAL FN TEappend(theField, theTxt$)
AUTOCLIP = 0
TEHndl& = TEHANDLE(theField)
LONG IF TEHndl&
txtLgth = {[TEHndl&]+_TELength}
CALL TESETSELECT(txtLgth, txtLgth, TEHndl&)
CALL TEINSERT(@theTxt$+1, LEN(theTxt$), TEHndl&)
END IF
END FN
TextEdit のレコードへのハンドルをとって、ToolBox の TESETSELECT でファイル末尾を選択、 TEINSERT でそこに文字列を追加します。これもページに載せる予定のFAQ リストに載せておきましょう。
古籏一浩です。
At 11:43 97.9.8 +0900, Tatsuya_Miyata wrote:
>拙作ですが、Mdnに連載中のムービーワークショップ「ViMaNa07」に制作協力した際にFutureBasicIIで私が作ったプログラムが紹介されています。
おお、おめでとうございます(^^)
10月号って10日発売でしたっけ?
>エディットフィールドに文字列を追加する方法をご存じの方いませんか?
>たぶんハンドルを得てメモリ転送かマージでやるのだと思うのですがよくわかりません・・・。
EDIT$(フィールド番号) = 文字列変数
で255文字までなら操作できます。255文字以上であれば
EDIT$(フィールド番号) = &ハンドルアドレス
を使って追加した文字列のハンドルを指定すればOKです。
ただzTEXT形式なので先頭2バイトが文字サイズ、3バイト目以降が文字列になります。
ハンドル内容を連結するToolboxってありましたっけ?
自前でやっても10行くらいだと思います。
yukiです。
また質問があるのですが、PICT HANDLから色深度を簡単に求める方法はありますでしょうか。
よろしくお願いいたします。
>PICT HANDLから色深度を簡単に求める方法は
PICT HANDL ということは,BitMapやPixMapのデータではなくて,PICT FILE か PICTリソースの色深度を求めたいということですね。
これはなかなか難しいですね。PICT HANDLEの中には複数画像も記録できますから一つのPICT HANDLから複数件の色深度を取り出すことが可能でしょう。
特殊な場合はさておいて,一般の一枚絵という意味でしょうから,その前提で答えますと,PICTデータの先頭から75バイト目から2バイトがその画像の1Pixel当たりのビット数です。16万色の場合は32が入っています。32,000色では16ですね。PICTファイルの場合は,ファイルの先頭から512バイト飛ばした513バイト目がPICTUREデータの先頭です。
もっとスムーズな方法があるかもしれませんが,私はこれしか知りません。
今日は忙しいのでソースはなしです。ごめんなさい。
先日大うそをついてしまいましたので訂正いたします。
オフスクリーンには,解像度を示す情報が存在しました。
通常カラーのオフスクリーンを作成する場合は,NEWGWORDを行います。
これにより,CGrafPortが作成されます。
このCGrafPortは,作成したオフスクリーンの各種情報を保持する構造体です。ペンの位置や前景色などとともにPixMapへのハンドルがあります。このハンドルは先頭から3バイト目から始まります。COPYBITSの際にポートのハンドルに+2をするのはこのためです。
CGrafPortのPixMapへのハンドルの先には描画した画像を格納するPixMap型の構造体があります。この構造体の先頭は実際のBitMapデータへのポインタです。上でCOPYBITSの際にポートのハンドルに+2をしましたが,ポートのハンドルに+2をするとPixMap構造体の先頭を指すことになり,それはBitMapへのポインタになっているというしかけですね。
話がそれてしまいました。解像度の情報は,このPixMap構造体のメンバーです。縦方向の解像度と横方向の解像度が独立して定義されています。解像度の変更は,このメンバーを書き換えればOKです。しかし,直接メンバーを書き換えるのは良くないと聞いていますが,書き換えてくれるシステムルーチンはあるのでしょうか。
ここが私のわからない部分です。
もう一点は,上記の解像度を表わすメンバーは,32Bitのデータで上位16Bitが整数部,下位16Bitが小数点以下を表わします。
ですから,hRes = 72 としても正しく72ppiには設定されません。
Cでなら hRes = 72 << 16 と書くのですが,FB2ではどうしたら良いのでしょう。どなたかご存じありませんか。
蛇足ですが,解像度の単位として
ppi = 1インチ当りのピクセル数でデバイスに依存しない表現
dpi = ディスプレイ画面1インチ当りの表示ピクセル数
lpi = 印刷物1インチ当りのピクセル数
300ppiの画像ファイルをPhotoshopで表示倍率200%で作業してプリンタドライバで50%縮小して印刷するとします。 「300ppiの画像を150dpiで表示して,600lpiで出力した。」
という文言が作れます。あれややこしい(^^
先日Pictureの色深度情報を取得する話がありましたがToolboxの GetPixMapInfo で簡単に取得できました。
グループ化されたPICTの場合は,別のルーチンが用意されています。
yukiです。
根来さん wrote
> 先日Pictureの色深度情報を取得する話がありましたが,Toolboxの GetPixMapInfo で簡単に取得できました。
> グループ化されたPICTの場合は,別のルーチンが用意されています。
レス有難うございました。色々と試してみたのですが、やはりPICT HNDLからバイト決め打ちで色深度を読み込むことはできませんでした。またしても頼みの綱の成田さんに伺ったところTOOLBOXのGetPictInfoを使えば可能です”との返事をいただきました。(質問したその日のうちに)
しかしこの関数はFBIIのオリジナルのツールボックスでは使えないため、以下の方法でテストしました。
1.apple developer worldのinterface2.そのうちの
'=========================================
CLEAR LOCAL
LOCAL FN
GetPictInfo(thePictHandle&,@thePictInfo&,verb%,colorsRequested%,colorPickMethod%,version%)
'---------------------------------------
` CLR.W -(SP)
` MOVE.L ^thePictHandle&,-(SP) ;PicHandle
` MOVE.L ^thePictInfo&,-(SP) ;Var: PictInfo
` MOVE.W ^verb%,-(SP) ;INTEGER
` MOVE.W ^colorsRequested%,-(SP) ;INTEGER
` MOVE.W ^colorPickMethod%,-(SP) ;INTEGER
` MOVE.W ^version%,-(SP) ;INTEGER
` DC.W $303C,$0800,$A831
` MOVE.W (SP)+,D0
` EXT.L D0
.END FN = REGISTER(D0) 'OSErr
'--------------------------- Functions --------------------------
部分だけを抜き取る。
3.レコードとして
DIM RECORD PictInfo
DIM PIzversion% ' INTEGER
DIM PIzuniqueColors& ' LONGINT
DIM PIzthePalette& ' PaletteHandle
DIM PIztheColorTable& ' CTabHandle
DIM PIzhRes& ' Fixed
DIM PIzvRes& ' Fixed
DIM PIzdepth% ' INTEGER ---->これが重要
...
DIM END RECORD .PIzSize
DIM thePictInfo.PIzSize
という_PIzSize=104のレコードを作る。
4.あとは以下のようなルーチンで読み取る。
WINDOW 99
osErr =FN
GetPictInfo(pictHandle&,thePictInfo,1,256,0,0)'"PICTの情報を得る
pixPerBit% =PEEK WORD(@thePictInfo+_depth)
'"ただし、QT圧縮されたPICTからは正確に読み込めない
'-----
PRINT VARPTR(thePictInfo),VARPTR(thePictInfo.PIzdepth%),pix2%
PRINT osErr,thePictInfo.PIzdepth%,thePictInfo.PIzhRes&,thePictInfo.PIzvRes&,pixPerBit%
'-----
OPEN "O",2,"temp.dump"
WRITE FILE 2,@thePictInfo,_PIzSize
CLOSE 2
'-----
DO
UNTIL LEN(INKEY$)
WINDOW CLOSE 99
で読み込むことができました。FBIIのコンスタントリストにはPICTUREINFOという上と同じレコードが規定されているのですが、この関数は使うことができませんでした。また、QT圧縮された画像についてはPIzdepth%に0が入れられてしまうようです。(あとでInsideMacを読んで知りました)
やはりここは純粋に(手間はかかるが)いちどCALL DRAWPICTUREでgWorldに書き込んでから根来さんの言われたGetPixMapInfoで入手すべきなのでしょうか?
もっと簡単に入手できてもよさそうな情報なのに、以外と手間がかかり疲れました。
ながながと恐縮でしたが、どなたかの参考になれば幸いです。
古籏一浩です。
At 11:18 97.9.10 +0000, akiyuki wrote:
>> 先日Pictureの色深度情報を取得する話がありましたが,Toolboxの GetPixMapInfo で簡単に取得できました。
>> グループ化されたPICTの場合は,別のルーチンが用意されています。
>レス有難うございました。色々と試してみたのですが、やはりPICT HNDLからバイト決め打ちで色深度を読み込むことはできませんでした。
中 略
>やはりここは純粋に(手間はかかるが)いちどCALL DRAWPICTUREでgWorldに書き込んでから根来さんの言われたGetPixMapInfoで入手すべきなのでしょうか?
一度描画されたオフスクリーンであれば色深度は取得可能です。が、OpCodeの列記されている通常のPICTハンドルからは正しく色情報を取得することは非常に難しいか、事実上不可能とも言えます。
結構勘違いされている方も多いと思うのですが、PICT HANDLEで記録されているデータは単純な画像データではなく「OpCode+Data」という形式になっています。OpCodeはインサイドマックに掲載されていますが、PICT HANDLEの中にEPS形式やTIFF形式、JPEGなど不特定色データや任意長パレットデータを含めることが出来ます。
画像の高さや解像度は先頭に記述されることになっていますが、実際のラインやボックス、画像のデータは任意の位置に記録してよい事になっています。ですから、OpCode+Dataを求める場合は先頭からシリアルサーチをする必要があり、バイト決め打ちでは正常に動作しない場合があります。
確かFMACPROなどでも過去にこのような質問がありましたが、一度描画させない事には色深度の取得は難しいと言えます。
どうしてもという場合はOpCodeの9Aだったかを探し出して、後に続くコードを解析してrowBytesの前後にある色深度の値を読み出すと行った方法しかありません。確かrowBytesの前後の値がColorDepthだった気がします。
>もっと簡単に入手できてもよさそうな情報なのに、以外と手間がかかり疲れました。
これは、ごもっともです。
Macの日本語のプログラム書籍が少ないというのが難点ですねぇ。
某社からCode Warriorの本は出るそうですが。
こんにちは。
結構前からこのMLを読ませていただいています。
水野と申します。
メールを出すのは初めてです。
昨年10月にFBIIを買いまして、ぼちぼちプログラミングしてます。
古籏一浩さんのホームページは、よく参考にさせていただいてます。
有り難うございます。
みなさん良くおっしゃってますけど、日本にはFB関係のホームページとか、ほんとうに少ないですね。
そこで、僕も、情報発信に協力しようと、僕のページのなかに、稚拙ながらFutureBasicのページを作ってみました。
http://www.hongo.ecc.u-tokyo.ac.jp/~aa66222/fb/
でも、まだ、ほとんど何もできてません。(はは)
今年の2月くらいにつくったプログラム(ゲームですけどね)が一つだけDL出来るようになってます。
で、これからなんか作っていこうと思うんですが、Macintosh依存的な事柄については、詳しい方がいっぱいいらっしゃるようですし、僕もMacは使い初めて2年くらいで、詳しくないので、もっと、別のことを書こうかと思ってます。
プログラミング自体は、結構昔から、やってたんで。(初代PC-6001とか使ってました)
あと、STAZのホームページにあるサンプルとかテクニカルノートとかも、ちょっと翻訳したりしてたので、それでも載せようかなあとおもってます。
富山学さんのページのサンプルのリストの更新も止まったままですし。(でも、あれって、結構簡単な英語がほとんどだし、サンプルなんて、注釈行と表示メッセージを訳してあるだけなんで、見たい人なんていないかも)
うーむ。
頑張ろうと思ってますけれども、最近忙しいので、あまり大したことは出来ないかも知れないんですけれど。
それでも、見て下さるという方は宜しくお願いします。
あ、のっけてあるプログラムのソースリストも、欲しい方にはおわけします。汚いっすけど。
古籏一浩です。
At 11:43 97.9.8 +0900, Tatsuya_Miyata wrote:
>拙作ですが、Mdnに連載中のムービーワークショップ「ViMaNa07」に制作協力した際にFutureBasicIIで私が作ったプログラムが紹介されています。
>
>Mdn 10月号 p123
MdN買ってきました。
おお、素晴らしいまるまる1頁近く載ってますね。
すご〜い(^o^)
この調子だと次号も載るんですか?
古籏一浩です。
At 19:40 97.9.10 +0900, Takaaki Mizuno wrote:
>古籏一浩さんのホームページは、よく参考にさせていただいてます。
>有り難うございます。
どうもありがとうございますm(_ _)m
>そこで、僕も、情報発信に協力しようと、僕のページのなかに、稚拙ながらFutureBasicのページを作ってみました。 >
>http://www.hongo.ecc.u-tokyo.ac.jp/~aa66222/fb/
>
>でも、まだ、ほとんど何もできてません。(はは)
拝見しました。まだ工事中ですねf(^^b
ゲームはダウンロードしてきました。すでに3面で詰まりました(笑)
こんばんわ、水野です。
At 8:38 PM 97.9.11 +0900, KaZuhiro FuRuhata wrote:
>古籏一浩です。
>
>At 19:40 97.9.10 +0900, Takaaki Mizuno wrote:
>>古籏一浩さんのホームページは、よく参考にさせていただいてます。有り難うございます。
> どうもありがとうございますm(_ _)m
いえいえ、あれだけのページを一人で作ってしまわれのかと思うと、頭が下がります。
>>そこで、僕も、情報発信に協力しようと、僕のページのなかに、稚拙ながらFutureBasicのページを作ってみました。
>>でも、まだ、ほとんど何もできてません。(はは)
> 拝見しました。まだ工事中ですねf(^^b
はい・・あそこまで作って力つきてしまいまして。(うーむ)
STAZのホームページのサンプルを(安易に)日本語化したものはすでにあるので、近いうちに圧縮してのっけようと思ってますが。
でも、そんなもの、喜んでくれる人がいるだろうか・・
不安です。
みなさんどうでしょうか?
のっけたら、またお知らせします。
> ゲームはダウンロードしてきました。すでに3面で詰まりました(笑)
おお!!有り難うございます。
あれは一応、メールウエアってことになってまして、登録番号がないと5面までしか遊べなかったはずなんで、勝手に登録番号送りつけていいっすか?
因みにあれは、昔Windows3.0(3.1じゃないです)で、ボーランドCで作たものの移植版です、ってどうでもいいことですが。
こんばんわ、再び水野です。
>>>そこで、僕も、情報発信に協力しようと、僕のページのなかに、稚拙ながらFutureBasicのページを作ってみました。
>>>でも、まだ、ほとんど何もできてません。(はは)
>STAZのホームページのサンプルを(安易に)日本語化したものはすでにあるので、近いうちに圧縮してのっけようと思ってますが。
>でも、そんなもの、喜んでくれる人がいるだろうか・・
>不安です。
>みなさんどうでしょうか?
>
>のっけたら、またお知らせします。
とりあえず、ちょこっとだけ作ってみました。
いかがでしょうか。
> 古籏一浩です。
>
> At 0:56 97.8.28 +0000, Osamu Shigematsu wrote:
> >古籏さんの講座でPhotoshopのplug-inを作るものがありましたが、Netscapeのplug-inもFB-IIで作れるのではないかと思うのですが、どなたか、サンプルソースなどお持ちではありませんでしょうか?
> 作れると思いますが、誰かが雛形を作らないとわからないですね。
> フォトショップと同じ方式であれば2/3ほど変更すればよさそうですが
> はてさて(^^;
>
> >質問ついで、という訳ではありませんが、W*APIのSDKもC用のものしか見当たらないのですが、これも探しているのですが、FB-II用のものが見当たりません。
> >
> >やりたいことは、Mac用のWWWサーバ用の電子掲示板plug-inとそのクライアントの作成です。
> もう例によってC -> FBに変換するしかないでしょう。
> 一番良いのはC言語で誰かが作成した人がいたら、その人にアドバイスをもらう事でしょう。
> FBが使えるようになれば必然的にC言語も使えるようになりますし。
アドバイス、ありがとうございます。また、返信が送れて申し訳ありませんでした。
私もいろいろ探したのですが、(FBの)雛型が見つかりません。古籏さんのおっしゃるCからFBの変換、というのは、コンバータソフトか何かあるのでしょうか?とんちんかんな質問かもしれませんが、よろしくお願いいたします。
それと、最近とても不思議に思っていることがありますが、よくアバウト画面などで、ボタンなどをクリックするとネットスケープが立ち上がってそのソフトなどのホームページが表示されるものがありますが、あれはどういう仕組なのでしょうか?NetscapeにAppleEventを送っているのでしょうか?
AppleScriptなら
tell application "Netscape Communicator(I*" to OpenURL"http://www.foo.com/"
と書けばよいのですが。
お分かりの方がいらっしゃいましたら、よろしくお願いいたします。
Mdnに載った件でエール頂きありがとうございました。
件の「ViMaNa07」のディレクターズカット版にはかなりの比率で参加することになりそうなので、それが出たらまた報告しますね。
さて、EDIT FIELDに文字列を追加する件ですが頂いた関数であっさりできました。その後ウインドウサイズの変更に対応するようにEDIT文の再設定をする際に中身がクリアされてしまうのを防止するため
エディットフィールドをウインドウのリサイズに併せて変更する
x=WINDOW(_width): y=WINDOW(_height)
GET FIELD TEHndl&,1
EDIT FIELD -1,&TEHndl&,(0,42+0)-(x-1,y-0),_Framed
という一文が必要なのに気づきました。ははは。(30分くらい悩みました(^^;)
というわけでメモパッド(超カンタン機能版)ができました。
ふー、やれやれ・・・・と思っていたのですが、実はこのメモパッド、終了時に初期設定フォルダの中にメモのファイルを自動セーブするのですが、最初の一回目だけはファイルがないことを確認してファイルの読み出しをキャンセルしないとFB側のエラーダイアログがでてしまいます。
で、ファイルがないのを確認したいのですが、これはFILES$を使ってファイルサーチしてないことを確認するしかないんですかね。
err% = FILE EXIST ("filename")
というような安易な命令はないんでしょうか。
となるとやっぱりfiles$でヴォリュームの中身を総ざらいしてないことをチェックするしかないんですかね。
たぶんツールボックスの呼び出しにありそうな気がするんですけど・・・?
あと、テキストのコピー&ペーストを使いたいのですが、こりゃあどうすれば良いんでしょう?
これもまたツールボックス系だと思うんですが・・・
なんか質問ばっかりでスイマセン。
古籏一浩です。
At 3:51 97.9.12 +0000, Osamu Shigematsu wrote:
>私もいろいろ探したのですが、(FBの)雛型が見つかりません。古籏さんのおっしゃるCからFBの変換、というのは、コンバータソフトか何かあるのでしょうか?とんちんかんな質問かもしれませんが、よろしくお願いいたします。
C->FB変換ソフトはないと思います。逆はありますが(CD-ROMの中にあった気がします)
仕方がないので手動でやるというものでしょう。
誰も作っていないようですので雛形もないでしょう・・・
>それと、最近とても不思議に思っていることがありますが、よくアバウト画面などで、ボタンなどをクリックするとネットスケープが立ち上がってそのソフトなどのホームページが表示されるものがありますが、あれはどういう仕組なのでしょうか?NetscapeにAppleEventを送っているのでしょうか?
私はわからないのでパスf(^^;
マニュアルにある「RUN」命令の所とか参考になるかもしれませんが。
古籏一浩です。
At 0:21 97.9.12 +0900, Takaaki Mizuno wrote:
>> どうもありがとうございますm(_ _)m
>
>いえいえ、あれだけのページを一人で作ってしまわれのかと思うと、頭が下がります。
ちりも積もれば〜方式ですのでf(^^b
FBのページはあってもPGのページは1つしかありませんね。
他に誰か作らないのかなあ。
>> ゲームはダウンロードしてきました。すでに3面で詰まりました(笑)
>
>おお!!有り難うございます。
>あれは一応、メールウエアってことになってまして、登録番号がないと5面までしか遊べなかったはずなんで、勝手に登録番号送りつけていいっすか?
OKですよ。 お待ちしてま〜す(^0^)/
古籏一浩です。
At 2:40 97.9.12 +0900, Takaaki Mizuno wrote:
>>のっけたら、またお知らせします。
>
>とりあえず、ちょこっとだけ作ってみました。いかがでしょうか。
見てきました(^^)
元が元だけにシンプルな説明ですが、一通り訳したら結構いけると思います。冨山氏やModEさんよりかは更新速そうですし。
★久しぶりの発言です。堀です。
最近、会社にPowerBook145Bを持っていって、休憩時間や仕事の合間に(こっそり)FB2を立ちあげて勉強してます(^_^;)。おかげで、最近、ようやくSTR#リソースを呼び出して作った妙な占いソフトを作って、同僚からバカにされてます(笑)。
★さて、今回は日付を表示する関数を探しているのですが、探したら
CALL IUDATESTRING([_Time], _LongDate, LongDate$)
PRINT "今日は...";LongDate$;"'"
で、とりあえず今日の日付をちゃんと日本語でしかも曜日入りで表示するTOOLBOX関数を見つけたのですが、今日から1日前とか1週間前、はたまた15日前とか、明日8日後など、今日を基準にして目的の日を表示する方法はありますでしょうか?
自前で計算するにはうるう年とかちゃんと計算しなければ行けないので、うまいTOOLBOX関数はあるのでしょうか?
すいません、初心者質問かもしれませんが、よろしくお願いします。
どなたか脱退の仕方おしえてください。よろしくおねがいします。
古籏一浩です。
At 22:41 97.9.12 +0900, iwai msahisa wrote:
>どなたか脱退の仕方おしえてください。よろしくおねがいします。
脱退の方法はmajordomo@po.shiojiri.ne.jpあてに
unsubscribe fb-ml
end
という内容の本文をメールします。Subject:は自由です。
At 0:35 AM 97.9.13 +0900, KaZuhiro FuRuhata wrote:
>古籏一浩です。
> >At 22:41 97.9.12 +0900, iwai msahisa wrote:
>>どなたか脱退の仕方おしえてください。よろしくおねがいします。
>
> 脱退の方法はmajordomo@po.shiojiri.ne.jpあてに
>
>unsubscribe fb-ml
>end
>
>という内容の本文をメールします。Subject:は自由です。
さっそくどうもありがとうございました。
今CodeWarriorを購入したので、こちらの方に凝っています。おてあげになった際にはまたfb-mlの方にもどりたいとおもいます。
その切はどうぞよろしくおねがい、ご指導お願いいたします。
重松@Raviと申します。
古籏さんの講座で、テキストファイルをHTMLに書き出すというサンプルと、テキストエディタのサンプルがありましたが、両方を合わせて、スタイル付テキストをHTMLとして保存できる、(そのエディタで作った)HTMLをスタイル付テキストとして開いて再編集もできる、というものを作りたいと思いました。一応、漢字コードと改行コードの変換の部分についてはできてはいます。
そこで以下の件について、悩んでおります。お分かりになりましたら、アドバイスいただければ幸いです。
(1) スタイル情報のデータ形式について
スタイル情報は、一般的にstylリソースに保存されていると思いますが、いったいどのような形式なのでしょうか?ハンドブック等を探したのですが、ResEditを使えば自動的に作成される、という記載しか見当たりませんでした。
(2) 文章の位置調節について
ベンさんのPG講座のサンプルプログラムでは、文字位置をセンタリングできたり、右寄せにできますが、文章全体にわたってしまいます。ワープロ(クラリスワークス)はそんなことはないのですが、これは、独自の処理を必要とするのでしょうか?
(3) 文章中に画像を含むテキストについて
TexEditではPICTなどを含んだテキストを作成できます。あまり高機能にするつもりはないのですが、SimpleTextでも読み込み専用形式(ttro/ttxt)では画像を含んだものを表示します。(ただし、画像がセンタリングされます)
PICTからJPEGへはモードさんから買ったソフトを使おうと思っています。
(4) フォントについて
HTMLでは、フォントも指定できますが、基本的には、プロポーショナルと等幅(<TT>〜</TT>や<PRE>〜</PRE>など)の二つを使うと思います。プロポーショナルについては、Osaka(システムフォント)で問題ないと思うのですが、等幅については、Osaka-等幅をいれてない方もいるかもしれませんし、フォントは選べたほうがいいかな、と思います。このような場合、書体が和文か、とか、等幅である、とか、どのように識別するものなのでしょうか?
yukiです。
古旗さん wrote:
〜 先日Pictureの色深度情報の件
> 結構勘違いされている方も多いと思うのですが、PICT HANDLEで記録されているデータは単純な画像データではなく「OpCode+Data」という形式になっています。OpCodeはインサイドマックに掲載されていますが、PICT HANDLEの中にEPS形式やTIFF形式、JPEGなど不特定色データや任意長パレットデータを含めることが出来ます。
> 画像の高さや解像度は先頭に記述されることになっていますが、実際のラインやボックス、画像のデータは任意の位置に記録してよい事になっています。ですから、OpCode+Dataを求める場合は先頭からシリアルサーチをする必要があり、バイト決め打ちでは正常に動作しない場合があります。
うーん、単純にPICTといっても標準のPICTあり、写真圧縮(QT Transrate)あり、TIFFあり等複雑になりすぎているようなきがします。さらにPictureの情報の管轄がQuickDraw(QD)に含まれるはずが、QuickTime(QT)からでないと読めない情報なども含まれるようになっているので単純にはいかないのですね。QDの情報であればQDで完結するようにまとめてほしかった気がします。
> 確かFMACPROなどでも過去にこのような質問がありましたが、一度描画させない事には色深度の取得は難しいと言えます。
> どうしてもという場合はOpCodeの9Aだったかを探し出して、後に続くコードを解析してrowBytesの前後にある色深度の値を読み出すと行った方法しかありません。確かrowBytesの前後の値がColorDepthだった気がします。
いちどOpCodeから当たってみて、挫折したらGWorldを使います。
なんかくやしいですね。
ずいぶん前に1度だけ投稿したことがありましたが、今回改めて自己紹介させて下さい。
書きかけのメールを送ってしまいました。起動すると、受信・送信処理を自動でするようにしていたのを忘れていました。
というわけで、はじめまして。1度投稿したことはありますがその後は読んでいるだけだったので、一応自己紹介を。
Takaomi といいます。
昨年8月9日FBIIの発売日当日にFBを入手し、いままで覚えてきたMSXやPC8801などのBASICとの違いにまだ慣れませんが、ぽちぽちと勉強しています。
いままでのパソコン歴は、
・PC-6001MkII(しゃべるパソコン)
・MSX2+(確かソニーのMSX)
・PC-8801MkIIFR(ハイドライド2がやりたくて買った)
と使用してきて、4年前にLC520にたどり着きました。
去年、処分に出されていたアクセラレータ(BoosterCL40-25)を19,800円で手にいれ、いまでも十分現役のマシンとなりました。
その後、キャッシュまで付けてしまいました。
PC-6001MkIIでは、よくBASICでゲームを作って、マイコンBASICマガジンなどに載っていました。ベーマガもいまでこそ、20本そこそこですが、僕が乗っていた頃は50〜60本くらい載っていて、面白いゲームも多かったように思います。
で、Macを購入しても、やっぱりプログラミングしたかったわけです。しかし、どんな開発言語があるかもよくわからず、結局HyperCardとかで遊んでいました。そこに、FutureBasicII日本語版発売、という知らせがモモデラーズブランドから。 これだ!! と思った僕はすぐに予約注文の手配をしていました。
そして(ちょっと途中時間があいてしまいましたが)いまになってようやくプログラムらしきものが作れるようになってきました。
まだ、ほとんど中身がありませんが、ホームページも作っています。
”徒然FutureBasicII日本語版”
http://home.interlink.or.jp/~takaomi/
がトップページになっています。少しずつ、強化していきます。ゲームをつくるためのページ、と銘打っていますが、まだまだわからないことだらけですので、皆さんいろいろ教えて下さい。
宜しくお願いします。
Takaomiさん,はじめまして。
根来と申します。
先日,古籏さんやベンさんのようにスマートに質問に答えようと無理をしてみたのですが,大失敗(^^;;;に終わり自粛しておりました。(笑)
しかし,このMLも100人を越えているそうですし,100対2では負担が大きすぎますから,懲りずにオカルトなレスを付けて行きたいと思います。
まぁ,私のレスはまゆつばものとして聞いてください。
Takaomiさんは古くからのマイコンユーザーなのですね。
私が初めてさわったコンピューターは,デパートに置いてあったファミコンの前身のブロック崩しマシンです。その後,中学校の講習でIBM360という汎用機をさわりました。たしかフォートランでLINE TO命令を使いXYプロッタで絵を描くという授業内容でした。
パソコン(というより当時はマイコンですね)は,高校の時友人が8001を持っていたのが初めてでした。中古のカシオFP1100というマルチCPUマシン(苦しい)を買ってもらい,毎日夜遅くまで付属のBASICでプログラムを作っていました。 当時,BASICマガジンとかいう雑誌があったのですが,掲載されているソースを数時間かけて打ち込んだら,雑誌の誤植のため動かないという事が頻発しました。
ちゃんと校正してたのかなぁ。そういう切なく甘い思いでがあります(^^ その後すぐにFM7が発売になり,カシオはユーザーを残したまま事業撤退してしまいます。
くやしいので,今だにカシオの電卓は買いません。
その後,学校の先輩からX1-TURBOを譲り受けました。ここでオペレーティングシステムやファイルという概念を知りました。当時5インチフロッピーが一枚1000円ほどしていたような気がします。会社に入って,98というパソコンをさわりました。アトラスという主人公が出てくるロープレにはまってしまい,部長から怒られるという経験もしました。時代はすぐにダウンサイジングとなり,EWSというUNIXマシンでのRDB構築が私の本職となっていきます。カタログ販売のニ○センやいらっしゃいマシーンの会社のシステムも一部作らせて頂けました。
しかし,仕事でプログラムしててもストレスばっかり溜まりますね。
学生のときからマックが欲しかったのですが,高かったのです。(泣)
マックに良く似たX68000も高くて買えませんでした。うう,X68000欲しかった。マック自体は6100からです。ボーナス飛びますもんね。ここ数年で良い時代になりましたね。
長々とゴミレスを書いてしまいました。
今後ともよろしくお願いします。
>根来と申します。
根来さんはじめまして。
>当時,BASICマガジンとかいう雑誌があったのですが,掲載されているソースを数時間かけて打ち込んだら,雑誌の誤植のため動かないという事が頻発しました。
>ちゃんと校正してたのかなぁ。そういう切なく甘い思いでがあります(^^
当時 模型とラジオの別冊だった頃から、創刊2年くらいの間に VIC-1001とCommodore64のプログラムを掲載していただいておりました。
確かに誤植(というかリストの一部がまるまる欠けてたり・・・)は多かったですね。
版下がドットマトリックスプリンタの印字結果というのもやはり涙を誘います。(今なら電算入稿でアウトラインでしょうが・・・)
>マックに良く似たX68000も高くて買えませんでした。うう,X68000欲しかった。
X68000はプログラマーフレンドリー?な機械でしたねぇ。X1から続く血筋ですか。SHARPも今では見る影が(メビウスノートなどに思想があるものか!)ありませんね。私はわりと初期のファミコンのプログラムをやるハメになって7年ほどアセンブラ漬けの日々を送っていましたが、悪友にそそのかされマックを買い、そこからはマクロメディアディレクターのプログラムにスイッチしました。アセンブラからLingoですから劇的変化ですね。
>マック自体は6100からです。ボーナス飛びますもんね。ここ数年で良い時代になりましたね。
いやまったく。
IIvxをフルセット30万で買った過去があるだけに妙に納得してしまいます。
古籏一浩です。
At 9:10 97.9.12 +0000, akiyuki wrote:
>うーん、単純にPICTといっても標準のPICTあり、写真圧縮(QT Transrate)あり、TIFFあり等複雑になりすぎているようなきがします。さらにPictureの情報の管轄がQuickDraw(QD)に含まれるはずが、QuickTime(QT)からでないと読めない情報なども含まれるようになっているので単純にはいかないのですね。QDの情報であればQDで完結するようにまとめてほしかった気がします。
なんせ考案したのが10年以上昔ですので、あちこちにボロがあります・・・
こういう画像フォーマットとしてはIFFなどのチャンク方式が一番柔軟性があるでしょう。チャンク方式はMacがでて、AMIGAが出てAMIGAで採用された形式です。
PICTよりも難儀という形式がTIFFでしょう。TIFFをきちんと解析して表示できるソフトは、ほぼ皆無でしょう。FM TOWNSの画像形式もTIFFですが独自タグ拡張をしてあってTWONSだと解析できるもの以外は表示できません。
史上最高に難しいのがPS(EPS)。GhostScriptという逃げ道がありますが。
プログラム逐次実行して描画しないといけないのでPostScriptインタプリタがいるという凄いオチf(^^;
こういうのから、すればPICTは資料も前から出ていますし形式も定まっているので幸せだと思いますよ。
古籏一浩です。
At 23:28 97.9.14 +0000, Osamu Shigematsu wrote:
>(1) スタイル情報のデータ形式について
>スタイル情報は、一般的にstylリソースに保存されていると思いますが、いったいどのような形式なのでしょうか?ハンドブック等を探したのですが、ResEditを使えば自動的に作成される、という記載しか見当たりませんでした。
これ、私も知りたいです。
>(2) 文章の位置調節について
>ベンさんのPG講座のサンプルプログラムでは、文字位置をセンタリングできたり、右寄せにできますが、文章全体にわたってしまいます。ワープロ(クラリスワークス)はそんなことはないのですが、これは、独自の処理を必要とするのでしょうか?
ほとんどの、まっとうなエディタやワープロは自前で処理してます。
CALL DRAWTEXTを利用してなんとか作って見るというのはどうでしょう?
>(4) フォントについて
>HTMLでは、フォントも指定できますが、基本的には、プロポーショナルと等幅(<TT>〜</TT>や<PRE>〜</PRE>など)の二つを使うと思います。プロポーショナルについては、Osaka(システムフォント)で問題ないと思うのですが、等幅については、Osaka-等幅をいれてない方もいるかもしれませんし、フォントは選べたほうがいいかな、と思います。このような場合、書体が和文か、とか、等幅である、とか、どのように識別するものなのでしょうか?
等幅指定はMac512Kあたりから、固定ピッチで表示させるというツールボックスコールがあります。
問題は、この呼び出しが未だに有効かどうか、という所です。
yukiです。
根来さん wrote:
> 先日,古籏さんやベンさんのようにスマートに質問に答えようと無理をしてみたのですが,大失敗(^^;;;に終わり自粛しておりました。(笑)
> しかし,このMLも100人を越えているそうですし,100対2では負担が大きすぎますから,懲りずにオカルトなレスを付けて行きたいと思います。
昨日はどうも有難うございました。他の人への発信に恐縮ですが、私は比較的発言にはびくびくしてしまいます。でもこれはある意味ではあまりよろしくないことで、こういう人ばかりではレスもつかずに消え去るようなことが多々発生してしまうのではないのでしょうか。
わたしもこれからは、ある程度で知っていることにはできるだけレスをだして、異論/反論をいただくようにしていきます。
*私事ですが、メールアドレスが変わりました。InsideMacをダウンロードするにはBIGLOBEの15時間制限はきつかった....
古籏一浩です(^^)
懐かしいマシの名前がぞろぞろと出てきましたね。
At 2:47 97.9.17 +0900, Tatsuya_Miyata wrote:
>X6はプログラマーフレンドリー?な機械でしたねぇ。X1から続く血筋ですか。
>SHARPも今では見る影が(メビウスノートなどに思想があるものか!)ありませんね。私はわりと初期のファミコンのプログラムをやるハメになって7年ほどアセンブラ漬けの日々を送っていましたが、悪友にそそのかされマックを買い、そこからはマクロメディアディレクターのプログラムにスイッチしました。アセンブラからLingoですから劇的変化ですね。
MZ事業部の人はザウルスの方にいってしまっているので、パソコンはNOTでしょう。すでにX68000事業部長の鳥居さんも退職し別会社に勤務していますし。
私はMZ -> Macでゲームの作り安さからDirectorでゲームを作ってました。
(ダウンロードページにあります)
言語は結構いろいろやった覚えがあります。忘れたのも多々ありますが(笑)
・純粋なマシン語(ハンドアセンブルではなくコードを入れてプログラミングしていました)
・アセンブラ(Z80のみです〜)
・C言語(ANSI C以前と以後)
・PostScript(結構シンプルです)
・BASIC(MZ-700/1500/2500/2861/X1/X68K/PC88/PC98/FM7など)
・HyperTalk,Lingo
・FORTRAN(FORTRAN77以前のヤツです)
・自分で作った言語(笑)。最近のはLighStreamに搭載したヤツ(名無し)
>>マック自体は6100からです。ボーナス飛びますもんね。ここ数年で良い時代になりましたね。
>
>いやまったく。
>IIvxをフルセット30万で買った過去があるだけに妙に納得してしまいます。
私はSE/30で50万円でしたf(-.-b
長々使えるマシンだったし、投資額以上に酷使したので・・・
古籏一浩です。
At 1:13 97.9.17 +0000, 仙台7200/90 wrote:
>しかし,このMLも100人を越えているそうですし,100対2では負担が大きすぎますから,懲りずにオカルトなレスを付けて行きたいと思います。
>まぁ,私のレスはまゆつばものとして聞いてください。
雑談ネタでもよいので適当に書き込んでやってください〜
あと1ヶ月もすれば面白いネタ(?)を流しますので。
>いたのが初めてでした。中古のカシオFP1100というマルチCPUマシン(苦しい)を買ってもらい,毎日夜遅くまで付属のBASICでプログラムを作っていました。
演算精度20桁(21桁?)のマシンですね。
FP1000,FP1100と出して撤退してしまいましたが、まあ正解だったのでは。
>しかし,仕事でプログラムしててもストレスばっかり溜まりますね。
>学生のときからマックが欲しかったのですが,高かったのです。(泣)
仕事のプログラムは駄目ですね。ストレスが溜まるだけです。
Macを買うときよりも70万円のPostScriptプリンタを購入する時が一番度胸がいりました。本体よりも周辺機器にお金をかけてます。
>マックに良く似たX68000も高くて買えませんでした。うう,X68000欲しかった。
>マック自体は6100からです。ボーナス飛びますもんね。ここ数年で良い時代になりましたね。
X68000も買いました(いっぱいマシンはあるんです・・・)
おねだりすればソフトバンクからX68000が、もらえたのですが(笑)肌にあわずにMZ-700で突っ走ってしまいました。
X68Kのプログラマが現在のプレステ、サターンの土台になっていると思いますよ。
使う人に優しいMacだけどゲームを作るときだけ厳しいf(^^;;