したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

■■■20レス以内で済むF-BASICの質問はこちらへ■■■

1F橋:2003/12/19(金) 20:48
20レス以内程度(20回程度の投稿)で終わりそうなF-BASICの質問はこちらでお願いします
短い質問のスレッドがいくつも立つより1つのスレッドで固まっていた方が長期に渡り見ることができ
かつ保存も簡単かと…

(いや…私だけでなく…皆さんも簡単のはずなんですが…(汗(笑)))

掲示板の内容の長期保存にご協力頂ける様よろしくお願いします

107シマヅ:2004/10/22(金) 23:52
◆管理人・F橋様◆
 訳あって、ハンドル(シマチャン)を「シマヅ」(F-BASIC購入予定者欄も)に変更をお願いします。お手数をお掛けして申し訳ありません。
最近は質問などの書込みをしておりませんが、月に何回かは必ず本ホームページを見て勉強&情報収集させて頂き、プログラミング・レベルの向上に役立ております。また何かありましたら、書込みさせて頂きますので今後とも宜しくお願いします。

108シマヅ:2004/10/23(土) 00:03
◆管理人・F橋様 【追伸】◆
 度々、申し訳ありませんが、ハンドルの「シマヅ」への変更はF-BASIC購入予定者欄だけで結構です。舌足らずの記述で申し訳ありませんでした。

109TOKO:2004/10/23(土) 09:39
MASUKOさん>
AlphaBlendはあまり使ったことはないのですが、PICTURE1からPICTURE2へ画像を転送する
だけでしたらサンプルを載せてあります。
それ以上のことは試しておりません。^^;)
http://tokovalue.hp.infoseek.co.jp/index.htm

110MASUKO:2004/10/23(土) 11:26
TOKOさん、ありがとうございます。
おかげさまで、ようやく転送に成功することができました。(涙)

そちらのソースを見ながらイロイロいじっていて、気がついたことがありました。
…もしかして、AlphaBlendで転送すると、転送元が表示されてない場合
(フォームの外にピクチャボックスがはみでてたりすると)
その部分は他のウィンドゥ等を転送してしまうみたいで。
(デバイスコンテキストってそういうものなんでしょうか?(凹))

F-Basic標準のBitbltのような使い方をする方法って無いものなんでしょうか…?

111上村:2004/10/23(土) 11:38
MASUKO さん>
F-BASICでAPIを用いて画像を描画する際には
リフレッシュを行うと画像が消えてしまいます
ですからリフレッシュさえかけなければ画像が表示されると思います

これはF-BASIC側の仕様でリフレッシュする際に
内部にある画像を用いて再描画するため、APIを用いて書き込んだ画像が反映されていないデータで
再描画されるためです

この問題は回避しようと考えたことがありますが
F-BASICが内部で保持しているDCを取得しなければならないと思うので
内部仕様がわからないことには回避できません

無理やり回避するにはタイトルバーのないフォームを作成し
APIのSetLayeredWindowAttributes関数で作成したフォームを半透明にすれば
一応半透明なオブジェクトが作成できます
これは重いのと思うであまりお勧めできませんが

112上村:2004/10/23(土) 11:42
MASUKO さん>
デバイスコンテキストの仕様でそうなっています
BitBltのように使用したければ
開きたい画像をAPI関数で読み込んでデバイスコンテキストを保持しておく必要があります

113MASUKO:2004/10/23(土) 12:01
上村さん、ありがとうございます。
リフレッシュは使わない方が良いのですか、なるほど。
テストしてみましたが、レフレッシュさえ使わなければ描画は反映されるみたいですね。
少しDCの理解が深まったと思います。(笑)

えと…読み込んでってことはメモリにロードしてあげるって事になるのでしょうか。
ゲームの表示のために、全画面ピクチャボックスで、描画用に用意したピクチャボックスから、常時表示用ピクチャボックスにBitbltで画像を転送する、という方法をとってます。
(描画用ピクチャボックスは不可視に設定されてます。)
その読み込みAPIを探して、もうワンステップレベルアップしてみようと思います。

114毛の生えたブリーフ:2004/10/24(日) 15:02
アプリケーションアイコンの件です。

フォームを作らずにアイコンを設定する。つまり、コンソールアプリをつくると
きに、エクスプローラ上ではアプリケーションアイコンは指定したものになるのですが、
アプリケーションを起動したときの、ウインドウ左上のシステムメニューのアイコンや
タスクバー上のアイコンがOSで用意されたデフォルトアイコンのままです。

これを変更する方法はありますか?

115ニャン子:2004/10/24(日) 21:18
F-Basic上のコンソールアプリ(風)を作成する際のフォームを作られていない
との事ですが、タイトルバーのアイコンを設定したい場合はフォームをテキスト
モードで作成し、背景を黒、文字色を白に指定しリソースをリンクする事でコン
ソールアプリ(風)のタイトルバーのアイコンを自由に変更する事が出来ます。
(多分です。実験していないので明確な事は言えません)

元々F-Basicのコンソールアプリ(風)はc:\FBASIC63\Bin\f1a0dflt.rcという
リソースを使ってコンソールアプリ(風)のアプリを実現しているだけであり、
実際にはF-Basic自体がウィンドウ上でMS−DOSの互換動作を行う為に用意
したものですから、実際にはウィンドウリソースを持ったアプリです。

仮にどうしてもリソースを作らずにアイコンのみ変更されたい場合は
「c:\FBASIC63\Bin\f1a0dflt.rc」をメモ帳またはテキストエディタで開き、

// Icon file list ===
F1A0IconList RCDATA
BEGIN
    // RCDATAITEMHEADER
    "FB", 3
    "F1a0dflt.ICO\0" <-- この部分
END

上記の「f1a0dflt.ICO\0」の部分を別のアイコン名に変更します。この場合、
最後の「\0」の部分を削除してはいけません。この「\0」はC言語表記の
NULLコードであり、リソースコンパイラが生成するf1a0dflt.resファイル
で必要になる為です。(実際にはコンパイルされたRESファイルをF-Basicラン
タイムが認識する為です)

116毛の生えたブリーフ:2004/10/25(月) 00:01
>>ニャン子氏

コンソールアプリ(風)で、やっと気づきました。確かにコマンドプロンプト
上でアプリケーションファイル名を入力すると、新たにウインドウが現れて、
今までコンソールアプリケーションと思っていたものが、実はふつうのWinアプリ
だったことに気づきました。

c:\FBASIC63\Bin\f1a0dflt.rc は雛形なようで、弄るとまた面倒ですので
最初に指示された通りにしました。きちんと目的を達成しました。

ちょっと面倒だなぁ。

117毛の生えたブリーフ:2004/10/25(月) 00:13
F-BASICの場合、ウィザードが作ったリソースファイルをテキストエディタで
ゴリゴリ改造したほうが手っ取り早い気がします。

118Fbasic使用者:2004/11/03(水) 14:14
お世話になります。
下記と同じ経験をされた事はありませんでしょうか?
BASファイルは40000ステップありまして各Windows 98,2000,XPで
BASファイルを開き下の方へスクロールしていきますと32000当たりで
スクロールが止まってしまいます。サポートへ問い合わせしたらF-BASICの
エディタは1MBまでしか使用できませんと言っていました。
(デバックは問題なくできます。)たまたま、Windows95でBASファイルを
開いてみましたら40000ステップの最後までスムーズにスクロールできました。
その違いが解りません。ご存知の方がおりましたら教えて頂けませんでしょうか。
宜しくお願い致します。

119nisii:2004/11/06(土) 10:34
WindowsXP/2000では、付属エディタで下に行くほどスクロールが遅いですね。
行番号表示をしなければ、かなりマシになります。

120 Fbasic使用者:2004/11/06(土) 17:49
投稿してくださいましてありがとうございました。
Windows95では、行番号表示でも最後までスムーズにスクロールできます。
その違いが解ればWindows98,2000,XPも行番号表示が最後までスムーズに
スクロールできるのではと思いサポートに問い合をしましたが、
はっきりした事はわかりませんでした。
FBASIC.EXEの中にエディタが入っていると言っていました。
確かに行番号表示をしなければ最後までスムーズにスクロールできました。
しばらくの間行番号表示をしないで作業に問題がないか試してみようと思っています。

121Fbasic使用者:2004/11/11(木) 01:00
日頃から大変お世話になりまして、ありがとうございます。
下記につきましてよろしくお願い致します。
IBMのPROTALKであります読み上げソフトを開始しますとダイアログボックスが表示がされます。
__________________
再生        ▲
停止        ■→□
一時停止      ‖
__________________
読み上げが開始しますと□→■になります。読み上げが終了しますと■→□になります。
■及び□のどちらかになっているか調べる事のできますAPI関数はありますでしょうか。
SPYでダイアログボックス情報を調べますとでキャプション・クラス名は
キャプション・・・クリップボード リーダー クラス名 ・・・ClipReadWC でした。
ご存知の方がおりましたら、ご指導を願えませんでしょうか。よろしくお願い致します。

122F橋:2004/11/12(金) 01:27
Fbasic使用者さん>
F-BASIC標準のエディタでは色々と問題があり別のエディタを使っている方が少なくないみたいです
フリーソフトで評判がいいエディタはTeraPadみたいっすねー
http://www.vector.co.jp/magazine/softnews/031227/n0312273.html

私的には好きじゃないけど(笑
(2ストロークキーが使えないから。それを使わない人には関係ないけど)


>IBMのPROTALK・・・
途中で検索を挫折したのですが。ヒントや参考になれば嬉しいっす

「IBM PROTALK API」でGoogleで検索すると
Microsoft Speech API準拠ってのが検索できました

「microsoft speech api サンプル」でGoogleで検索すると↓こんなのを見つけました
http://www.google.co.jp/search?q=cache:MU93g1MCuH0J:www.microsoft.com/japan/whdc/hwdev/tech/audio/default.mspx+Microsoft+Speech+API+��泣�潟�����&hl=ja&lr=lang_ja

この中でうまくキーワードを検索するとVBとかでのAPI例が見つかるかも・・・
それをうまく利用すれば(分からなければVBのサンプルソースをここで公開すれば)
F-BASICの玄人がF-BASICで使う場合のサンプルを教えて頂けるかもです

お役に立たずにすんませーん

123Fbasic使用者:2004/11/12(金) 05:20
F橋さん
日頃からF-BASIC掲示板を活用させて頂きましてありがとうございます。
この場をおかりしましてF橋さん(管理人)、皆様方に心よりお礼を申しあげます。
ヒントや参考になればと「IBM PROTALK API」を検索して下さいましてありがとうございました。
F-BASIC標準のエディタについて質問したいのですがご都合が良ければよろしくお願い致します。
プロジェクトのMAKファイルを起動後プログラムのBASを開きますとF-BASICのエディタになります。
そのエディタを別のエディタ(例えばTeraPad、MIFES)でF-BASICのエディタの代わりで直接開く事は可能なのでしょうか。
もし可能でありましたら、組み込み方法の手順を教えて頂けませんでしょうか。
お手数をお掛けしますが、よろしくお願い致します。

124Fbasic使用者:2004/11/16(火) 13:48
お世話になります。
Internet Explorerのバージョンを調べるAPI関数を探して見ましたが。
どのような関数にすれば良いのかご存知の方がいらっしゃったら教授願
いたいのですが、宜しくお願いします。

125TOKO:2004/11/16(火) 18:05
レジストリの内容を読むようです。
nisiiさんが書いておられるレジストリの読み書きの『読む』ほうを使って
ROOTKEY& = HKEY_LOCAL_MACHINE
SUBKEY$ = "Software\Microsoft\Internet Explorer"
VERNAME$ = "Version"
で、取得できます。

126Fbasic使用者:2004/11/16(火) 18:40
TOKOさん
ご返答ありがとうございました。
レジストリの読み書きの『読む』ほうを使っての情報を下さいまして
お礼を申しあげます。以前から検索で色々とAPI関数で探して見ましたが
探せませんでした。レジストリに有るとは考えもつきませんでした。
レジストリについては知識はありませんので、レジストリについて調べ
バージョンの取得に取りかかる事ができますので本当にありがとうございました。

127akira:2004/11/19(金) 20:18
F-BASICで作ったプログラムで数字を入力するとき、電卓のような入力が
できないか考えていたんですが、実現した人はいるのでしょうか?
手続き型ではできるんですがイベントドリブン型では自分の力では不可能です。
いい方法があったら教えてください!よろしく

128TOKO:2004/11/19(金) 21:14
たとえば、エディットボックスを
複数行入力:あり
テキストの配置:右揃え
などとは意図するところが違うかな?

129akira:2004/11/19(金) 23:10
TOKOさん、どうもありがとうございます。
思い込みでエディットボックスではできないと
きめつけていました。
もっと早く掲示板に書き込めばよかった。
ほんとうにありがとうございました。

130Fbasic使用者:2004/11/25(木) 12:25
お世話になります。
クリップボードの確認方法につきまして
F-BASICのプログラムにより他のテキストデータをクリップボードにコピー後
wait 時間を設けてF-BASICのテキスト画面に転送しています。
wait 時間の代わりにクリップボードにコピーが完了されたかを確認してから
テキスト画面に転送したいと思っています。
クリップボードにコピーが終了されたか確認する方法は有りますでしょうか。
ご存知の方がおりましたら、宜しくお願い致します。

131TOKO:2004/11/25(木) 14:24
「クリップボード 監視 VB」で検索・・・
が、該当するのではないかと・・思うのですが・
一部のサンプルをVBで動作の確認をしています。

132Fbasic使用者:2004/11/25(木) 14:40
TOKOさん
早速アドバイス頂きまして、ありがとうございました。
以前から検索していましたが・・。「クリップボード 監視 VB」で
検索してみましたらサンプルが閲覧できました。
お礼を申し上げます。本当にありがとうございました。

133Fbasic使用者:2004/11/26(金) 14:30
日頃からお世話になりありがとうございます。
サンプルに挑戦してみましたが力不足で解決できませんでした。
それで、今使用していますクリップボードに関するAPI関数でそれぞれで試してみました。
クリップボードのコピーが完全に終了しないと
RET = POSTMESSAGE(HWND,&H111,&HA042,0) 'コピー
if ISCLIPBOARDFORMATAVAILABLE(CF_TEXT) = 0 then
・・・・指定したデータ形式がクリップボードに存在するかどうかを判定する
(CF_TEXT) の内容が変わらない事がこちらでは確認できました。完全にコピーする
までの時間は(例:WIN98 ・・32000バイトで3秒、500000バイトで8秒)でした。
もっと長いバイトではかなりの時間がかかります。F-BASICでは文字制限数が32000
バイトですので約40000バイト越えましたら途中でクリップボードのコピーを止める
ようにする必要から今回の質問としました。ありがとうございました。

134Fbasic使用者:2004/11/29(月) 20:04
幾度にも渡り大変お世話になります。ありがとうございます。
以前から疑問の一つであります、エディタに文字を縦(上→下)に
表示する事はF-BASICでも可能なのでしょうか。
例: 
   か あ
   き い
   く う
   け え
   こ お

もし、その点につきまして、ご存知の方がおりましたら、宜しくお願いいたします。

135のぶちゃん:2004/12/01(水) 18:45
いま、FBASIC VEr4を使っていますが、98、MEでは
BASファイル、が呼びこめますが、XPでは、失敗しましと
エラーがでます。何かいい方法があるのでしょうか?
掲示板を見ていると、VER6では問題ないみたいですね!
VER4とVER6のファイルの互換性はありますか?

136TOKO:2004/12/01(水) 22:59
Ver4を探して、試してみました。
読込に失敗しますね・・
とりあえず、失敗した状態で、他のエディタで読み込んだbasをコピペし、
翻訳するとOKのようです。
sampleのBCALCでテストしました。

137TOKO:2004/12/02(木) 06:51
>>136 続・・
V4.1 L10 アップデートディスクインストールで解決しました。
別々に保管してあり#136ではCD-ROMのみのインストール状態でした。^^;)
のぶちゃん さんはアップデートした状態ですか?

138シマヅ:2004/12/03(金) 22:18
◆管理人・F橋様◆
 何度も同じ書込み(前回10月22日)をして、誠に恐縮です。
 訳あって、F-BASIC(V7)購入予定者のハンドル(シマチャン)を「シマヅ」に変更をお願いします。お手数をお掛けして大変申し訳ありませんが、宜しくお願い致します。

139Fbasic使用者:2004/12/04(土) 13:56
お世話になります。
end sub以降で下記の症状が発生します。end sub以降はどのような処理しているの
かもし、ご存知の方がおりましたら参考程度で教えて頂けませんでしょうか。
宜しくお願い致します。
症状
Win95では特にテスト_Onを起動後STOPまでは問題ありませんでしたが、end subを
実行しますと即終了するはずがメニューに設置してありますビットマップボタン
(BMPBUTTON)の部分が数秒間色抜け(白色)状態になります。その後、終了状態に
なります。
declare sub テスト_On edecl ()
sub テスト_ON()
   ・
   ・
STOP
end sub

140nisii:2004/12/04(土) 18:36
>>139
これってイベントプロシージャなのでは?

イベントを抱えた状態だと、ウィンドウのリフレッシュはできないし、
プロセス系のコマンド・APIなどに悪影響を与えるので、
通常のサブプロシージャに変えてみましょう。

イベントプロシージャでは処理コードだけ返し、メインルーチンから
その処理をするサブプロシージャを呼び出せばOKです。

141Fbasic使用者:2004/12/04(土) 19:33
nisii さん
ご返答を頂きましてありがとうございました。
殆どイベントプロシージャ使用でサブプロシージャは過去に一度だけ使用したことが
あります。問題の所をサブプロシージャにして確かめてみたいと思い取りかかる事に
しました。貴重な情報のご指導をして下さいまして本当にありがとうございました。
心よりお礼を申し上げます。

142Fbasic使用者:2004/12/08(水) 12:08
お世話になります。
受信箱中に存在するメールのメールIDを獲得しますサンプルプログラムがあります。
FBASICV63\Sample_I\READMAILを実行しますと受信トレイ.dbxの更新日時が変更されます。
仮に受信トレイ.dbxのプロパティ→属性→読み取り専用にして実行しますと、
MSGID$=""と判断されます。
MSGID$=MAILFINDNEXT( SEEDMSG$, 0 )
if MSGID$="" then exit
              ・
              ・
MAILFINDNEXTは読み取りと思っていますが、同じデータを書き換えているのでしょうか。
もしMAILFINDNEXTが読み取りでしたら属性を読み取り専用にしても書き換えない限り更新日時
が変更されないとものと思いますが、その点につきまして、ご存知の方がおりましたら、
教えて頂けませんでしょうか。宜しくお願い致します。

143F橋:2004/12/09(木) 13:10
>>138
シマヅさん>
レスを見落とし更新が遅くなり申し訳ございませんでした
先日トップページを修正させて頂きましたのでご確認お願いします

また何か私が忘れていた場合とか遠慮なく教えて頂けますようよろしくです

144Fbasic使用者:2004/12/09(木) 15:08
お世話になります。
>>139
イベントプロシージャにおきまして
declare sub テスト_On edecl ()
sub テスト_ON()
   ・
   ・
STOP
end sub

end sub関数の機能を実現するためにより呼び出しているWindows
提供のDLLがあると思いますのでどのようなDLLを使用
しているのかend subを実行した場合の流れを調べる方法は
F-BASIC V6.3でも可能でしょうか。
宜しくお願い致します。

145nisii:2004/12/09(木) 19:54
>>144
イベントプロシージャ内で数秒以上の処理や停止は、しないことを強く薦めます。
もちろん途中に stop があることも、です。
その状態で発生する症状・エラーは、ほとんど解決できません。

イベントプロシージャの書き換えで困った、ということでしょうか?


#include "windows.bi"

declare sub テスト()
var shared G_TESTON as long

G_TESTON = 0
do
WAITEVENT
if G_TESTON then テスト
G_TESTON = 0
loop
end

' イベントが発生したら、フラグを立てて即イベント処理を抜ける
declare sub テスト_ON edecl ()
sub テスト_ON()
G_TESTON = 1
end sub

sub テスト()
'<目的の実行部>
stop
end sub

146Fbasic使用者:2004/12/09(木) 21:59
>>145
nisii さん
返信ありがとうございました。
説明不足がありましたので追記致しました。大変申し訳ありませんでした。
Windows98、2000、XPではWindows95のような現象はおきていません。
また、記憶が定かでないのですが、Windows95を再インストール後、
このような現象になったような気がしました?。
関係有るか解りませんがWindows95のアップデートも行いました。
以前は電話回線でしたのでWindows95のアップデートもできましたが、
今は光回線にしていますので再インストール後、Windows95のアップデートはしていません。
またイベントプロシージャ内で数秒以上の処理や停止は行っていません。
今回のSTOPは見き分ける為に使用しました。

while 1
WAITEVENT

if G_TESTON then テスト
G_TESTON = 0

wend

declare sub テスト_ON edecl ()
sub テスト_ON()

'<目的の実行部>
G_TESTON = 1
end sub

if G_TESTON then テストで テストの代わりにstopまたendなどを設けてテストしました。
endは即終了されます。stopは即停止になります。stopを実行しますと数秒後になって停止状態になります。
詳しい事は解りませんが、イベントの停止する為のSystem内のdllが関係しているのかと思っていますが?

147ラオウ:2004/12/09(木) 23:18
100個ぐらいの項目の1行が長いCSVファイルを作成したいのですが、1行が
256文字の制限に引っかかるみたいでうまくいきません。
write #FILENUM11,A1,A2,A3,・・・・・,A100
対応方法がありましたら、よろしくお願いします

148nisii:2004/12/10(金) 19:09
>>146
endは、保留イベントも破棄し、全てのリソースを開放するので処理が早いのでしょう。

>>146 ではイベントプロシージャ内に<目的の実行部>が入ったままです。
それとも、>>145 と同等に書き換えても反応が鈍いのでしょうか?

一見無駄に見えるかもしれませんが、>>145 は経験上最もトラブルの出ない方法です。
まずはお試しください。

また、互換性を大事にされるのでしたら、下手にシステムに干渉しないほうが安全です。

149nisii:2004/12/10(金) 19:13
>>147
あらかじめ1つの文字列に連結しておけばどうでしょう?
数値であっても、文字化しておけばいいわけですし。

150Fbasic使用者:2004/12/10(金) 22:51
nisii さん
返信ありがとうございます。
>>145 方法で挑戦してみましたが、while 1・・WAITEVENT間が
かなり長くしましたので簡単に変更出来ませんでした。
今後は、経験上最もトラブルが無く、また、殆どプログラム容量の
心配する必要も考えなくてすむと思いますので145 方法と考ます。
色々とご指導下さいまして本当にありがとうございました。

151ラオウ:2004/12/10(金) 22:57
nisiiさん
ありがとうございます
100個の項目の中に文字列があったので、次のように書いてみると
文字列にダブルクォーテーションがつきません
A1=10
B="ABC"
IN$=STR$(A1) + "," + B$
PRINT #FILENUM, IN$
結果 10,ABC
"ABC"のように、文字列の両側にダブルクォーテーションをつけるには、
どうすればいいのでしょう

152nisii:2004/12/11(土) 11:12
>>151
IN$ = chr$( &h22 ) + trim$( STR$( A1 )) + chr$( &h22 ) + "," + chr$( &h22 ) + B$ + chr$( &h22 )

短く書く工夫は適当に…。(笑)
def fnで文字の両側に"を付ける関数を作るとか、
chr$( &h22 )を #defineで短い名前の定数にするとか。

私の好みだと、見やすくしたいのが優先なので、
1行で1つの値を追加し、必要な数だけ行数を用意します。

153Fbasic使用者:2004/12/11(土) 11:34
お世話になります。
256を越えるAPI関数がありますがAPI関数も文字化にする事が可能なのでしょうか。
例 declare function API_XYZ & lib "ABC" alias "XYZ" ( byval A$ , byval ・・・・ )

154TOKO:2004/12/11(土) 15:05
API見習い中のTOKOです・・
>例 declare function API_XYZ & lib "ABC" alias "XYZ" ( byval A$ , byval ・・・・ )
上記の場合
API_XYZと&の間に空白が入っていないとしてAPI_XYZ&は自由に変更することができます。
DLLの部分"ABC"および関数名"XYZ"は変数に置き換える人はいないでしょうが
#define Z$ "ABC"
#define W$ "XYZ"
declare function API_XYZ& lib Z$ alias W$ ( byval A$ , byval ・・・・ )でも動きます。

例えば下記のAPIをF-BASICで使いたい場合、
Public Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" _
(ByVal dwExStyle As Long, ByVal lpClassName As String, _
ByVal lpWindowName As String, ByVal dwStyle As Long, _
ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal hWndParent As Long, _
ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long

普通、制限文字数に収まるよう下記のように書き換えすネ。

declare function Api_CreateWindowEx& lib "user32" alias "CreateWindowExA" _
(byval dwExStyle&, byval lClassNm$, byval lWinNm$, _
byval dwStyle&, byval x&, byval y&, byval nWidth&, _
byval nHeight&, byval hParent&, byval hMenu&, _
byval hInstance&, byval lParam&)

Ret = Api_CreateWindowEx(・・・・)

極端にいえば

declare function Z& lib "user32" alias "CreateWindowExA" _
(byval A&, byval B$, byval C$, byval D&, _
byval E&, byval F&, byval G&, byval H&, _
byval I&, byval J&, byval K&, byval L&)

Ret = Z(・・・・)

これでも動きますが、制限文字数内でできる限り元の名前を残すようにしています。
http://www.arcpit.co.jp/winapi/api_01/index.htm

155Fbasic使用者:2004/12/11(土) 16:48
TOKOさん
返信ありがとうございます。
F-BASICでは以前から256を越えるAPI関数は使用できないものと思い
あきらめた事がありました。
特に制限文字数に収まるようにする為の書き換え方法は今後、
256を越えるAPI関数を使用する場合の参考になりました。
今まで使用できないものとあきらめていただけに一つ勉強になりました。
色々とご指導下さいまして本当にありがとうございました。

156ラオウ:2004/12/11(土) 22:29
ありがとうございます
IN$ = chr$( &h22 ) + trim$( STR$( A1 )) + chr$( &h22 ) + "," + chr$( &h22 ) + B$ + chr$( &h22 )
PRINT #FILENUM, IN$
これで、100個ぐらいの項目の1行が長いCSVファイルを作成できました
でも、よく考えると、このCSVファイルを読むには、どうすればよいのでしょう
input #FILENUM, IN$じゃ、おかしいし
すみません、お知恵をください

157TOKO:2004/12/12(日) 08:46
>ラオウさん
間違えて『20レス以内で済むF-BASIC質問の件#23』に書き込んでしまいました。(^^;)

158ラオウ:2004/12/12(日) 12:11
読込は1行100項目をを一度に読み込まなくてもいいんだ
そうなんだ
昔からずっと勘違いしていました
ありがとうございました

159Fbasic使用者:2004/12/14(火) 14:37
お世話になります。
__________________________
F$ = WINOPENDLG( "メモ帳",CRDIR$("")+"\メモ帳\*.TXT", "テキスト(*.TXT);全てのファイル(*.*)", 0 )
●ここでデバックのブレークを設定
__________________________
上記でダイアログボックス( WINOPENDLG)を実行後、●ここでデバックの
ブレークを設定の所でフォームに設けてありますビットマップボタン
(BMPBUTTON)のビットマップ全てが色抜け状態(白色)になります。
ブレークからデバックのトレースボタンを一個でも実行しますとビットマップ全ての
色抜け状態はなくなり本来のビットマップに戻りました。
何故このような事になるか解りませんがプログラムで本来のビットマップに
戻す方法は可能でしょうか。何かご存知の方がおりましたら、
教えて頂けませんでしょうか。宜しくお願い致します。

160Fbasic使用者:2004/12/14(火) 16:46
>>159 FBASICサンプルでも確認できました。
FBASICV63\Sample_B\BmpBtnにメニューを設けFBASICV63\Sample_B\Edit
サンプルの開く(o)sub OPEN_ON()・・・・end sub部分を追加しました。
__________________________
F$ = WINOPENDLG( APPNAME, "*.TXT", "テキスト(*.TXT)", 0 )
●ここでデバックのブレークを設定
________________________

161Fbasic使用者:2004/12/15(水) 19:52
お陰様で解決することができました。
ダイアログボックスがビットマップボタンと重なる所が
色抜けになりました。F$ = WINOPENDLG・・・の後に
CLS 0(テキストとグラフィックを消去)を追加することで
再描画される様になりました。

162Fbasic使用者:2004/12/23(木) 10:02
日頃から大変お世話になりまして、ありがとうございます。
再度、下記につきましてよろしくお願いいたします。
フォームにビットマップボタンを作成後、プログラムで作成しました
ビットマップボタンを取り除いてフォームにビットマップボタンを無く
する事は可能でしょうか。
________________________________________________
コントロールID BMPBUTTON21
項目
ビットマップ  XXXXX 
   ・
   ・
ツールチップ XXXXX
__________________________________________________

ご存知の方がおりましたら、教えて頂けませんでしょうか。よろしくお願いたします。

163TOKO:2004/12/23(木) 10:38
BmpButton21のハンドルを取得し、APIのDestroyWindowで破棄できるようですが、
単に、ShowWindow 0では不都合があるのでしょうか?

164Fbasic使用者:2004/12/23(木) 15:25
TOKOさん
早々と、返信くださいましてありがとうございました。
少し遅くなりまして本当に申し訳ありませんでした。
ビットマップボタンを作成後、プログラムでビットマップボタンを取り除
きたい理由はタイマーイベントを発生して切り取り、コピー、張り付けを
ビットマップボタンとして利用しています。Windows98、2000、
XPではよいのですがWindows95ですと遅いため切り取り、コピー、
張り付けを実行しますと全体的にかなり遅くなります。それでWindows
95の場合はタイマーの使用をしない為別に切り取り、コピー、張り付けをビ
ットマップボタンを別に設け上に重ねています。
Windows95以外では上に重ねたビットマップボタンを取り除ければと
思っています。タイマーイベントは周期的に他でも使用していますので停止す
る事はできません。幾度もなくご指導くださいまして深くお礼を申しあげます。
少し早いと思いますがよい年をお迎え下さい。
今後とも宜しくお願い致します。

165Fbasic使用者:2004/12/23(木) 16:25
TOKOさん
APIのDestroyWindowのご回答によりまして
作成後のビットマップボタンをプログラムで取り除く事ができました。
if (GETDLGITEM("Bmpbutton21"))<>0 then RET=winapi_DestroyWindow(GETDLGITEM("Bmpbutton21"))
お陰様で目的通りのものが出来ました。
心より厚くお礼を申しあげます。
本当にありがとうございました。

167芳博:2004/12/28(火) 18:56
早速助言頂きました ありがとうございます

前回も書き込もうとしたのですが出来ませんでした
また
具体的な プログラムで一部教授願うときはどのようにすればよいでしょうか

168延ちゃん:2005/01/08(土) 19:13
lprint 命令を使うには
どうしたらいいでしょうか?
使っているのはFBASIC VER.4
です。

169TOKO:2005/01/08(土) 21:19
プリンタにもよりますが、

#include "Windows.bi"

txt1$ = "abcdefghij"
txt2$ = "漢字の出力"
print txt1$
print txt2$

'(A)Windowsの印刷機能を使用する場合
lprint type "DC"

'(B)F-BASICインストール配下のBINフォルダにあるCHECHPRN.EXEを実行し、漢字が印刷
できるプリンタの場合プリンタポートを直接操作できます。(例:PC-PR201G)
'lprint type "PC-PR"

lprint txt1$
lprint txt2$

'これを入れないと排紙されない
lprint chr$(12);

stop
end

(A)、(B)どちらかを生かして試してみてください。

170ラオウ:2005/02/12(土) 06:12:00
 件数が5万件の配列のソートをしたいのですが、バブルソートでは時間がすごく
かかります。

 F−BASICは再帰呼び出しが使えないようなので、再帰呼び出しを使わない
クイックソートか、他のソートを教えてください。

171TOKO:2005/02/12(土) 17:21:29
http://tokovalue.hp.infoseek.co.jp
のソートテストは参考になりませんか?

172iwakifarm:2005/02/12(土) 18:41:50
ソートする場合すべてのレコードを比較するのかな?
それとも何バイト目から10バイトとか。。。。
一度組んだことがあります。
どこかにソースがありますので探してみます。

173ラオウ:2005/02/12(土) 21:50:31
171さん
 参考にさせていただきます。ありがとうございました。

172さん
 固定長ではなく、配列を次のように設定し、D列の昇順でF列の降順というように
したいと思っています。
 var shared HAIRETU(A,B,C,D,E,F) AS LONG

174初心者:2005/02/12(土) 23:45:05
はじめまして。いつも拝見させていただいております。
申し訳ありませんがお力を拝借したくて書き込みをさせていただきます。

HTTPGETで、"xxx.pl"のようにperlのURLを指定して、
その出力ファイルを得たいと思っています。

実行してみると、html形式の出力は得られるのですが、
なぜかファイルサイズが4096バイトのところまでしか
GETできないようで困っています。

"xxx.html"のように、htmlファイルを指定したときは
ちゃんとEOFまで取得してくれるのですが、
なぜこうなるのでしょうか…。

175F橋:2005/02/13(日) 01:33:50
>>173
私は頭が悪いので(理解力が本当に弱いので)ちょっと確認したいのですが・・・
(速度はとても遅いし配列のソートでは無く「D列の昇順でF列の降順」で表示するのみですが)

>配列を次のように設定し、D列の昇順でF列の降順というように・・・
>var shared HAIRETU(A,B,C,D,E,F) AS LONG

との事ですので

D列の昇順でF列の降順に配列の変数の中身を出力してみてますが・・・

var shared HAIRETU(A,B,C,D,E,F) AS LONG

'HAIRETU(a,b,c,d,e) の aの最大値を max_a, bの最大値を max_b ... とした場合

for d=0 to max_d
 for f=max_f to 0

  for a=0 to max_a
   for b=0 to max_b
    for e=0 to max_e
     print hairetu(a,b,c,d,e)
    next e
   next b
  next a

 next f
next d


D列の昇順でF列の降順に配列の変数の中身を出力してみましたが・・・
要はこんな形で変数の中身を順序よく取り出せればいいだけなんでしょうか?

>>170でソースはある用なので可能ならばそれをここに投稿して頂けると助かります

-----
おそらくですが。こんな巨大な6次元配列で50000件って事は
ファイルから読み込んだものだと想定しております
従って読込時に別配列をキーとして用意すれば高速に並び替える手段が
思いつくような気が・・・少ししますです

-----
今、泥酔中で・・・なんか凄いとんちんかんなレスをしている気が・・・(おい

176F橋:2005/02/13(日) 01:45:52
>>174
多分解決しないと思いますが・・・少々思った事を・・・

1)wait入れたらどうなりますか?(CGIが動ききってない場合を想定)
HTTPGET ID, "xxx.pl"
wait(100)
HTTPGET ID, "xxx.pl"

2)もし xxx.pl が自作ならば・・・
xxx.plの実行結果をxxx.htmlに出力する様に変更してみては如何でしょう?

-----
ネットの読込の何かで4096バイトって何かで聞いた気が・・・
ルーターの有無、別のプロパイダ、OSによって4096バイトでは無い場合が
考えられるのですが・・・(でもその場合の解決策が思いつかない)

Windows95,98とWindowsME,2000,XPで結果が違う気がする・・・
(95系、NT系では無くブロードバンド用の設定のOSとナローバンド用の設定のOSの違い)

177ラオウ:2005/02/13(日) 06:26:11
>>175
すみません。
この表現(var shared HAIRETU(A,B,C,D,E,F) AS LONG)は間違っています。

実際はvar shared SORTWORK1(J&, ITI)で、SORTWORK1の中のITIは6個(1:氏
名、2:年齢、3:住所、4:電話、5:性別、6:金額)があり、年齢を昇順、金額を
降順に並べ替えたいとき

SORT 50000,2,"U" '年齢を昇順
SORT 50000,6,"D" '金額を降順

SUB SORT(TOTALCNT1&,ITI,ZYUN$)
SELECT CASE ZYUN$
CASE IS = "U"
for L& = TOTALCNT1& to 1 step -1
for J& = 1 to L& - 1
if SORTWORK1(J&, ITI) > SORTWORK1(J& + 1, ITI) then
for M = 1 to 6
swap SORTWORK1(J&, M), SORTWORK1(J& + 1, M)
next
endif
next
next
CASE IS = "D"
For L& = TOTALCNT1& to 1 step -1
for J& = 1 to L& - 1
if SORTWORK1(J&, ITI) < SORTWORK1(J& + 1, ITI) then
for M = 1 to SORTKOUMOKU
swap SORTWORK1(J&, M), SORTWORK1(J& + 1, M)
next
endif
next
next
END SELECT
ENDSUB

というふうに、ITIで並べたい項目を指定し、ZYUN$で昇順か降順を指定します。
なお、このサブプロを実行すると2時間以上かかります。

171さんの例を元に、クイックソートで作ってみたのですが、年齢を昇順、金額
を降順に並べ替えたいとき、1回目の年齢を昇順にはきれいにソートできるので
すが、2回目の金額のソートをすると、金額は降順になるのですが、年齢がばら
ばらになってしまいます。
クイックソートでは、もともと無理があるのでしょうか。

長文になりましたが、お知恵をお貸しください。

178iwakifarm:2005/02/13(日) 13:26:27
ラオウさん了解です。
両方共昇順であれば可能です。
そうしてもと言う場合は、昇順されたファイルと降順されたファイル
を同じデータかどうかを調べてでないとでてきません。
そうなると年齢を基準にするか、金額を基準するかでプログラムを
組めば、可能かと思います。

179F橋:2005/02/14(月) 01:51:48
>>177
私の会社と似たようなデータみたいですね(笑
F-ISAMやBtrieve、もしくはアクセスなどのデータベースならファイルを読み込むときに
年齢昇順で金額降順に読み込む。って事が簡単なんですけどね
(私の会社ではある程度の件数以上(1000件以上くらい)はこのようにしてます)

データベースが使えなくて配列でなんとか行わなければならないのなら・・・
別の検索用のキー配列を用意するのがとりあえずは早くなるかと・・・

'/// 年齢昇順、金額降順用のsortキー用の配列を作成(ファイル読込時に作成するといいかも)
for j&=1 to 50000
 nen$=right$( space$(3)+str$( SORTWORK1(J&, 2) ),3 )
 kin&=1000000&-val( SORTWORK1(J&, 6) ) '金額は0〜999999(6桁)の場合
 kin$=right$( space$(6)+str$( abs(kin$) ),6 )
 sortkey$(j&)=nen$+kin$+right$( space$(5)+str$(j%),5 )
next j&

'/// sortkey$()をsortするルーチン・・・はいくつか方法あるので後ほど

'/// sotrkey$()を参照しながらsort結果を出力
for j&=1 to 50000
 code&=val( right$( sortkey$(j&),5 ) )
 for m=1 to 6
  SORTWORK1(code&, 6)
 next m
next j&

(↑一切テストしてないのでプログラムが間違っていたらすいませんです)

sortの方法はいくつか考えられますが・・・
配列のsortkey$()をのみをsortすればいいだけなので単純になるので
どこぞでクイックソートのサンプルでも探して簡単に出来るのでは無いかと・・・

それとF-BASICのサンプルにsortのサンプルが(こっそりと)あるので
それを利用して見ると早いと思います
(\fbasicv63\sample_b\ccall\sortを見てみてください)

クイックソートのサンプルが見つからないとかdllの使い方が分からない場合は
sortkey$()をテキストファイルに書き出してテキストファイルを別のソフトを使用し
(フリーソフト sort テキストなどでGoogleで検索してみてください)
ソート後のテキストファイルを順次読み込む。等が考えられます
テキストファイルのソート専用のソフトは50000件でも数分だと思いますので
ファイルの読込時間や書込時間を考えてもトータルでかなり高速ではないかと・・・

で。どの方法を使うか。使いたいのかが分からないので今回は詳細は省略しますが
1.クイックソートのサブルーチンを使うのか
2.F-BASICのサンプルを使うのか(使った事ないけど多分お勧め)
3.テキストファイルにしてソートを他のソフトに任せるのか

の返答を頂ければもう少々細かくお話しますです

180F橋:2005/02/14(月) 02:10:14
>>177
金額の項目の範囲がどのくらいなのか(マイナスがあるのか、最大でいくらくらいなのか、小数点があるのか)
が分かればさらに高速にする話が出来る。かも知れないです

多分ですが。50000件かつたくさんの項目を持つのならF-BASICでは少々厳しいはず・・・
(配列はメモリの許す限りと書いてありますが件数多いと(F-BASICでは)劇的に遅くなりますので)
別の何かにsortを任せるのが一番だと思います

先に話したF-BASICのsortサンプルがベストだとは思いますが
(私と同じで)dllの呼び出しはよく分からないからしたくない。って場合は
↓が一番簡単で効果が高いかと思います



open "sort.txt" for output as #1
for j&=1 to 50000
 nen$=right$( space$(3)+str$( SORTWORK1(J&, 2) ),3 )
 kin&=1000000&-val( SORTWORK1(J&, 6) ) '金額は0〜999999(6桁)の場合
 kin$=right$( space$(6)+str$( abs(kin$) ),6 )
 print #1, nen$+kin$+right$( space$(5)+str$(j%),5 )
next j&
close #1

shell "sort.exe","sort.txt > sort.out" ... 'shellの使い方忘れた。調べてください(笑
' OSによって標準で sort.exeがついているのを忘れてた。
' sort.exeの使い方はsort/?等で調べてみてください
' 上記の例はsort.exeの使い方を調べずに適当に書いてます
' この方法を使うのなら調べ直すのでご返答下さいです。
'
' 現状でどの方法を使いたいのかが分からないので詳細まで書くと長くなるので省略してます

open "sort.out" for input as #1
while not eof(1)
 line input #1, buf$
 code&=val( right$( sortkey$(j&),5 ) )
 for m=1 to 6
  print SORTWORK1(code&, 6)
 next m
wend

尚、私の知識内では上記の用に何らかの方法で検索用のキーを作り
それをsortする方法しか思いつかないです
キーを作らずに高速にソートをしたい場合が思いつきませんのでご了承下さいです。

181F橋:2005/02/14(月) 02:14:39
ひとりごと

お?今試してみたんだけど。sort.exeは予想以上に早かった(笑

dir /s \ > a.txt でテキストファイル(60000行 3Mbyte)を
sort a.txt > a.out にしたら数秒・・・10秒かかってなかった(Win2000 Pen3 900MHz 256Mbyte環境)

これはsort.exeを利用したが簡単で早そうだ・・・
(書込、読込の時間がかかるだけくらいかな・・・)

182F橋:2005/02/14(月) 02:18:06
>>181の続き

数秒っつーか・・・2秒?2秒以内かも。

Windowsを作ったメーカーがWindowsで標準で用意したSortってのは流石に凄まじく高速っすねー

183ラオウ:2005/02/14(月) 04:24:47
レスありがとうございます。

昇順と降順を含む2つ以上の検索キーをまとめるやり方は勉強になりました。

SORT.EXEをつかってみようとSORT/?をしたのですが、開始位置の指定は/+Nだと
わかったのですが、桁数の指定がわからないので教えていただけないでしょうか。

ファイルを20桁目から昇順にする場合はうまくいきました。
shell "SORT.EXE","C:\A.TMP /+20 /R /O C:\B.TMP"

184nisii:2005/02/14(月) 11:20:49
F-BASIC付属のXSRVC_QSORT(F1A0QSRT.DLL)を愛用しています。
メモリ上で受け渡すので、結構速いよ。
検索キーの位置と長さも指定できますからお試しを。

公開中のツールのほとんどで、ファイル名ソートほかに使ってます。
15万件ソートでも耐えてますよ。(WinXP)

…え?ダウンロードしたファイルに添付されてないって?
実はこっそり埋め込んでます。(苦笑)

私は、sortを始め、shell(DOSコール)を避けるようにしています。
というのも、わずか数百回のコールで、致命エラーが発生することが多いから。
メモリクリアや、メモリ配置の工夫程度では、解決できませんでした。

185ひろ:2005/02/14(月) 18:28:51
FBASICの諸先輩方教えて下さい。
ボタンを押したらFORM2を表示したいのですが実行時にコントロールが見つからないとエラー
が出ます。リソースには登録してあるのですが.....
初歩的な質問で恐縮ですがどなたかお願いします。

#include "WINDOWS.BI"
var shared MAINFORM as object
MAINFORM.ATTACH GETDLGITEM("MAINFORM")

var shared FORM_2 as object
FORM_2.ATTACH GETDLGITEM("Form2") ' エラー発生行 [コントロールが見つかりません]

declare sub BUTTON1_ON edecl ()
var shared BUTTON1 as object
BUTTON1.ATTACH GETDLGITEM("button1")

while X=0
WAITEVENT
wend

sub BUTTON1_ON()
FORM_2.SHOWWINDOW -1

end sub

186ひろ:2005/02/14(月) 18:29:08
FBASICの諸先輩方教えて下さい。
ボタンを押したらFORM2を表示したいのですが実行時にコントロールが見つからないとエラー
が出ます。リソースには登録してあるのですが.....
初歩的な質問で恐縮ですがどなたかお願いします。

#include "WINDOWS.BI"
var shared MAINFORM as object
MAINFORM.ATTACH GETDLGITEM("MAINFORM")

var shared FORM_2 as object
FORM_2.ATTACH GETDLGITEM("Form2") ' エラー発生行 [コントロールが見つかりません]

declare sub BUTTON1_ON edecl ()
var shared BUTTON1 as object
BUTTON1.ATTACH GETDLGITEM("button1")

while X=0
WAITEVENT
wend

sub BUTTON1_ON()
FORM_2.SHOWWINDOW -1

end sub

187nisii:2005/02/14(月) 20:07:07
FORM_2.ATTACH GETDLGITEM("FORM_2") ' エラー発生行 [コントロールが見つかりません]

FORM_2.CREATEWINDOW "FORM2" , 0

188ひろ:2005/02/14(月) 21:50:30
nisiiさん
どうもありがとうございました。

お蔭様で目的が実現できそうです。
FORM_2.SETTOPMOSTWINDOW (-1) 
で手前に表示もできました。
本当にありがとう御座いました。

189F橋:2005/02/15(火) 00:47:09
>>183
>桁数の指定がわからないので教えていただけないでしょうか。
すいません。分かりません。
私の考えで申し訳ないのですがOSによってオプションが変わる可能性もあり得るので
私の場合はオプションを付けずにSORTさせる場合が多いのですが・・・

>>184
致命的エラーが出やすいのは知りませんでした。
私はテストでしか使った事が無いのでこれを納品するとハマる所だったかも知れません
ありがとうございました

nisiiさんの意見のF-BASICサンプルのSORT DLLを使うのに私も賛成は賛成っす
ただDLL呼び出し恐怖症(=数年前の私)の方も見えるし
Windows起動後数回程度しか使わない作り方もあり得るのを考えるとSORTの方向もありかな。と思うですので・・・

あの。nisiiさんの意見を否定してる訳じゃないですよー(涙
(今の私ならDLLを呼び出すのを真っ先に考えるので・・・)

どういうシステムか。開発者がどのレベルか。どういう使い方をユーザーがする予定なのか。等々
条件によって様々考えられるので現段階ではどれが正解かってのは分からないっすよねー(汗

190nisii:2005/02/16(水) 17:39:10
>>179
年齢と金額の2つのキーがあり、それぞれ昇順と降順でソートする方法案。

ソートの優先順を1年齢、2金額と想定します。
元データはカンマ区切りなどのテキストファイルと想定します。

氏名,年齢,住所,電話,性別,金額(改行)
氏名,年齢,住所,電話,性別,金額(改行)


まず、各行の先頭に固定長のキーを加えたファイルを作ります。()内は例。

年齢(023)金額(000010000)氏名,年齢,住所,電話,性別,金額[改行]
年齢(031)金額(000021500)氏名,年齢,住所,電話,性別,金額[改行]


このとき、金額が最大9桁なら、キーの値は(999999999 - 金額)とする。
金額に負の値が存在しうるなら、(999999999 - ( 金額 + 499999999))とする。(最大値に注意)
SORT.EXEなどテキスト対応のソートプログラムがあれば、このままソート。

最後に、先頭のキーを取り除きます。


------------------------
高速なバイナリソートをするなら、レコードを固定長にします。

連番(000001)年齢(023)金額(000010000)
連番(000002)年齢(031)金額(000021500)


これをソートし、最後に連番を元に氏名・住所ほかを取り出します。

メモリが充分あるなら、次のレコードでもOKでしょうか?

年齢(023)金額(000010000)氏名,年齢,住所,電話,性別,金額…長さをそろえるスペース
年齢(031)金額(000021500)氏名,年齢,住所,電話,性別,金額…長さをそろえるスペース


------------------------
参考までに、DOS用のソートプログラム。
http://www.vector.co.jp/vpack/filearea/dos/util/text/sort/index.html

191F橋:2005/02/16(水) 22:56:24
>>190
さらに分かりやすいソートをご紹介頂きありがとうございました
これをchr$()やmki()で圧縮するとさらに速そうですね

>参考までに、DOS用のソートプログラム。
あ。こういうフリーソフトのジャンルがあったんだ・・・
私も嬉しかったりしたです(笑

sortの日付(公開日)が古いのが多いですねー
やはり最近はデータベースとかのsortが主流なんすかね

覚えなければならない事がどんどん増えてる気がする(涙

192ラオウ:2005/02/16(水) 23:15:55
sort.exeを使うことにより、2時間以上かかっていた作業が10秒で終わりました。

nisiiさん F橋さん
どうもありがとうございました。

193亀谷 弘之:2005/02/21(月) 14:37:17
fbasic6.3で簡単なProgを作成し次のような命令をしたところ
 Locate 10,10:input "",A$ A$には漢字を入れたいところ、locateにかかわらず
画面の左上に変換された漢字が出てきます、その後enterキーにより所定の場所に移動しますが
しますが、最初からlocate文の場所に表示させることは出来ないのでしょうか?
教えてください。

194亀谷 弘之:2005/02/21(月) 14:38:14
fbasic6.3で簡単なProgを作成し次のような命令をしたところ
 Locate 10,10:input "",A$ A$には漢字を入れたいところ、locateにかかわらず
画面の左上に変換された漢字が出てきます、その後enterキーにより所定の場所に移動しますが
しますが、最初からlocate文の場所に表示させることは出来ないのでしょうか?
教えてください。

195akira:2005/02/21(月) 22:48:09
教えてください!FBASIC6.3をWinXP上で使っています。
統合環境でフォームにコントロールを配置するとき一つ配置すると
フォームが一番下に行ってしまいます。
今日気がついたんですが、前回までは普通に連続で配置できました。
ほかのウインドウをすべて最小化すれば普通に使えます。
FBASICを上書きしてみましたが直りません。どうかよろしくお願いします。

196F橋:2005/02/22(火) 02:05:26
>>194
このHPのトップページでリンクしてある

F-BASICでAPI
http://www.geocities.co.jp/SiliconValley-SantaClara/1866/index.html

↑の
http://www.geocities.co.jp/SiliconValley-SantaClara/1866/FB/toukou/FV63LIB.html
をご参照下さい



>>195
え?そんな症状があるんですか?
その症状はF-BASICだけなんでしょうか?

うろ覚えですが似たような症状でハード(キーボードかマウス)の故障だった事があったような無かったような・・・
相変わらずお役に立たずにすいません

197akira:2005/02/22(火) 15:59:36
>>その症状はF-BASICだけなんでしょうか?
そうなんです!ほかのアプリでは何でもないようなんです。
前回は上書きしてみたけどだめだったので、今度は完全に
アンインストールして入れなおしてみようかな。

198nisii:2005/02/22(火) 17:59:55
>>197
フォームのプロパティで、トップモーストを指定していませんか?
これをしてると、統合環境のダイアログが隠れて操作できなくなることもあります。
トップモーストは、プログラムから指定することをお勧めします。

199akira:2005/02/22(火) 20:52:50
nisiiさん、いつもありがとうございます。
>>フォームのプロパティで、トップモーストを指定していませんか?
してないです。今回一度削除して再インストールしたんですが
まったく変わりませんでした。
どうも常駐プログラムが悪さしているような気がしてきました
最近セットアップしたSKYPUとB's Recorder GOLD8を止めてもう一度
テストしてみます。

200akira:2005/02/22(火) 22:40:06
やっぱりだめでした。しくしく
ただタイトルバーをワンクリックしてからコントロールの配置位置を
決定すればメインフォームが隠れなくなることがわかったので、とりあえず
そうやって見ます。残念!!

201F橋:2005/02/23(水) 02:49:33
>>200
全然関係ない可能性が高いですが・・・
ウイルスとスパイウェアのチェック(特にスパイウェア)をしたらどうなります?


ウイルスバスター オンラインスキャン
http://housecall.antivirus.com/housecall/start_jp.asp?i=n

Spybot (スパイウェアのチェック)
http://www.dream-seed.com/pukiwiki/index.php?Windows%2FSpybot%A4%CE%BB%C8%A4%A4%CA%FD

202akira:2005/02/23(水) 08:38:40
スパイウエア・ウイルス共にいませんでした。

203F橋@役立たず管理人:2005/02/24(木) 20:25:45
>>202
お騒がせしてしまい申し訳ございませんでした

204nisii:2005/02/25(金) 11:45:21
>>199
ある日を境にこの症状が起きるようになったのであれば、
その直前にやったことが原因ですよね。

WindowsXP SP2を入れた。
DirectXを更新した。
ディスプレイドライバを更新した。
「タスクバーをほかのウィンドウの手前に表示する」などの設定を変えた。
キー・マウス操作の補助ツールを入れた。
トップモースト属性のウィンドウを持つ常駐ソフトを入れた。
気づかずに何かのソフトを入れた。

・そのプロジェクトファイルにフォームを2つ以上登録しているなら、
属性を比較してみる。

・セーフモードではどうでしょう?
セーフモードで正常なら、常駐ソフトが原因の可能性大。

205akira:2005/02/25(金) 19:47:36
nisiiさんいつもありがとうございます。
>>WindowsXP SP2を入れた。
SP2を入れた後も正常に動いていました。
>>DirectXを更新した。
これは意識的には更新していないんですが、テストで
Desktop On-CallというIBMのアプリを組み込んだとき
DirectXを更新したかもしれません。
後前にも書きましたが、B'SとSKYPUを入れたんで削除してみたんですが
やはり変わりませんでした。
まだセーフモードではやっていないのですぐやってみます。
フォームにコントロールを配置するときって最初のうちにやっているので
最近はづっとコーディングばかりだったので気がつくのがおくれてしまい
原因がつかめません。
また報告します。

206akira:2005/02/26(土) 14:54:19
セーフモードでやってみましたが、全く同じ動きでした。
後はDirectXぐらいしか思いつきません。ヒロシですヒロシです・・・・


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板