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

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

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

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

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

7F橋:2004/01/17(土) 14:15
nisiiさんのレス以上の事を思い浮かばず…(笑
超初心者さんも多分問題なく解決してると思うです
ありがとうございました

そういえば構造体の中の配列で…ファイルのfield定義するときというか…
必ず0から始まるってのを忘れてかなりハマっていたのを思い出したです

…うまく説明出来ません(笑)すいませんです

8F橋:2004/01/17(土) 14:21
「教えてください。 」のスレッドの話題がほぼ終わった様なのでこちらのスレッドに移動させて頂きました
(もちろん。こちらで続きを行って頂いて構いませんし…話題が盛り上がりそうな場合は別スレ立てます)

1 名前: ARAKI 投稿日: 2003/12/18(木) 12:17

始めましてARAKIと申します。

お世話になります。

突然とは思い投稿をさせて頂きました。

VBでCLSIDを指定する記述がありました。

Object = "{1F8E7F86-A47F-11D2-B9D7-08005A4B5E6E}#1.0#0"; "PTSVR.OCX"

F-BASICに置き換えたいのですが良く解りませんでした。
ご存じの方がおられましたら宜しくお願い致します。


2 名前: ニャン子 投稿日: 2003/12/19(金) 07:29

お世話になります。ニャン子です。

VBでのCLSIDをF−Basicで利用したいとの事ですが、結論から言うと
無理です。というのもOCXはOLEオートメーションの一種でDLLの様にプロ
シージャをコールするのとは技術的に全く違います。

OLEオートメーション(OCX含む)の詳しい説明は下記を参照してください。
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/6/oleabs/oleabs.html

で、本題の「PTSVR.OCX」ですが、これはIBMのProTALKERの事でしょ
うか?であれば、素直にVBでOCXをコールするプログラムを作り、F-Basicは
そのVBをコールする方法が一番だと思います。その他の手段としてはF-Basicか
らProTALKERを呼び出すHTML(Javaスクリプトを経由)を作成し
それを経由する方法もありますが、こちらはあまり現実的では無いと思います。

OCXをどうしてもF−Basicで対応出来ない理由の一つにイベントがありま
す。VBの場合はF−Basicの様に全てのイベントをランタイムが管理してい
る訳では無く、OCXなどからもイベントを発生させる事が出来る為OCXが簡単
に利用できますがF−Basicの場合はそう簡単には行きません。
(その代わりVBのFormモジュールはネイティブコンパイルされずランタイム
も静的リンク出来ない)

仮にC言語で直接OCXをコールするDLLを作成しF−BasicからCALL
したとしてもこのイベントが解決出来ない限り現実的では無いと思います。


3 名前: F橋 投稿日: 2003/12/19(金) 10:28

arakiさん>
ご質問投稿ありがとうございました

ニャン子さん>
ご回答ありがとうございました

-----

ひとりごと…質問も回答も分からない…申し訳ないです


4 名前: ARAKI 投稿日: 2003/12/19(金) 18:45

ニャン子 様
少し遅くなりましたが、詳細な、ご説明をして頂いたことで、結論がハッキリ致しました。
大変助かりました。ニャン子 様の言われた通りIBMのProTALKERの件です。
また。リンク先まで、記述して頂きまして、ありがとうございました。

9gobou:2004/01/18(日) 10:18
windows拡張プログラミング(プリンタをオブジェクトとして)の方で、文字をカラー印字したいのですが
どうしたらよいのでしょうか?
(lprint type "DC"なら lprintsetcolorのようですが)
choosefont関数で戻ってきた色を指定して印字したいのです。
よろしくお願いします。

10TOKO:2004/01/18(日) 16:48
gobouさん>
目的をはずしていたらゴメンナサイ・・
CHOOSEFONT関数で選択した色はLONG型変数に入るそうなので私の場合は
変数 var shared RGBCOLOR as longと指定しておき
if CHOOSEFONT(FFONT,RGBCOLOR,-1,0) then
  ・・
後、印刷時フォント選択ダイアログで色を選択し、PRT1.SETFORECOLOR RGBCOLOR で
選択した色で印刷しています。
結果的に不都合なく使っていますが、使い方が違っていたらご指摘ください。

11gobou:2004/01/18(日) 19:34
TOKOさん ありがとうございます。
それです、それが知りたかったんです!
助かりました これからもよろしくお願いします。

12F橋:2004/02/20(金) 20:49
セキュリティの都合上スレッドの制限が50になっております
極力こちらのスレッド。もしくは関連のスレッドにご投稿頂けますようよろしくお願い申し上げます

(古いスレッドは少しずつどこかに合体し、その後に消去予定です。よろしくお願いします)

13nisii:2004/03/01(月) 19:34
●Windows付属のMP3 Codecについて。●

ビットレート他を、F-BASICから設定できる方法ってないでしょうか?
レジストリから「MPEG Layer-3」を検索しましたが、それらしい値が見当たりませんでした。

なぜ欲しいかというと…。

DivXの転送レートやファイルサイズ、クリッピングやリサイズ値を、自動補正するツールを作っています。
で、計算するだけじゃもの足りず、エンコーダとDivX、MP3の設定としてすぐに反映させたいんです。

エンコーダのAviUtlと、DivXの設定はできそうなので、あと一歩。

ご存知の方、よろしくお願いします。

14荒木:2004/03/06(土) 11:05
荒木と申します。
お世話になります。
F-BASICにIBMの音声合成ソフトProTALKER 97 の合成エンジンを利用した開発者向け情報音声合成ソフトを無料でダウンロードして使用しています。
富士通(株)にもIBMの様な音声合成ソフトは有りますでしょうか。もし、ご存知で有りましたら、リンク先URLアドレスを教えて頂けませんでしょうか。
よろしくお願い致します。

15名無しさん:2004/03/31(水) 22:27
すいません。音声合成は私が分からないので的はずれになってたらすいませんです

http://www.animo.co.jp/product/fs/
>FineSpeech は富士通株式会社の登録商標です。

富士通の関連会社?よく分からないのですが関係あります?

Fujitsu Voice Series
http://pr.fujitsu.com/jp/news/1998/Nov/9-5.html
関係ありそうですがXPに対応していない予感がする(w

Googleで「富士通 音声合成」で適当に探しただけなんですがお役に立てば幸いです

16荒木:2004/04/02(金) 17:15
ご返答下さいましてありがとうございました。
わざわざ名無しさん より富士通 音声合成の関連リンク先を調べて頂きまして、お礼を申し上げます。
現在は富士通株式会社の登録商標でなく別会社に変わっていました。
IBMの音声合成ソフトProTALKER 97 は無料でダウンロードしまして
F-BASICのエディタを読み上げています。
動作OSではWindows 2000、Windows XPは適応になっていませんでした。
もしWindows 2000、Windows XPも適応できる可能性方法がありましたら
教えて頂けませんでしょうか。よろしくお願い致します。
参考としまして下記にIBMのホームページとしました。
_____________________________

IBMのホームページ
★ 動作OS:Windows95, Windows 98, WindowsNT 4.0

ProTALKER 97 エンジンのダウンロード
http://www-6.ibm.com/jp/voiceland/download/engdown.html
最小音声辞書のダウンロード        Pt97vd07.exe
エンジン モジュールのダウンロード     Pt97eng.exe

ProTALKER ActiveX コントロールのダウンロード
http://www-6.ibm.com/jp/voiceland/pt20/ocxdown.html

PTOCXのダウンロード  PTOCX.EXE

ProTALKER ActiveX コントロールのサンプル プログラム
http://www-6.ibm.com/jp/voiceland/pt20/ocxsamp.html
サンプルのダウンロード          Ptxsamps.exe

17名無し:2004/06/10(木) 00:57
F-BASIC6.0以降では、透過BMPファイルって使えないんですか?

18ねずみ男:2004/06/12(土) 13:41
私も試してみようと思ったのですが透過BMPが用意出来ずにテスト出来ませんでした(笑

Windows98SEとWindows2000のペイントで透過BMPを用意しようとして出来ずに…
ネットで調べるにどうも透過の出来るBMP形式はBMPの新しい形式(?)の様に見えるのですが…

XPだと透過BMPがあるのかな…

予想で申し訳ないのですが…透過BMPをXPで用意したのならば出来ないのかもです
(あと最近の何かのソフトで作った場合とか…)

あと…↓こちらでも別の言語でうまく行かない方が見えるみたいなんですが…
http://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200206_02060009.html

透過型BMPの説明が少しあるのでこれで出来るのかも知れませんです

あと。BMPでは無いのですが…

JPEG画像の単色透過を実現する
http://hp.vector.co.jp/authors/VA016917/tips/v3/

F-BASICではJPEGも扱えたはずなので可能ならばJPEGに変換してみるのも一つの手かも…

…私は動画、絵、音などの最新の技術(笑)はあんまり分かりませんので
この程度しかレスが出来ません。

ご存じの方。あとよろしくお願いします(笑

19F橋:2004/06/15(火) 13:44
下記をメールで頂きました。

> 初めて投稿させて頂きます。
> F−BASICを愛用しているのですが、原因不明のトラブルで困り果てたところ、
> このサイトにたどり着きました。
> 諸先輩方々のお知恵をお願いします。
>
> 関数プロシージャをいくつも作って処理しています。
> 例えば開始時刻(09:36)と終了時刻(11:52)を与えると、その所要時間を返すようなものです。
> 1000件程の開始時刻と終了時刻がありまして、繰り返し関数プロシージャを使用して(1000回程)処理しています。
>
> このプログラムが完走する時と、しない時があり困り果てています。
> まずデータは同じままで、1回目、2回目と何度かプログラムを実行してみます。
> すると途中でエラーが発生する時があります。
> 全くランダムで規則性はなさそうです。
> エラーは関数プロシージャを呼出す部分で発生し、エラーコードは『5』です。
>
> ただエラーが発生する瞬間は、メールの送受信を開始したときや、他のプログラムを起動したときなど、
> PCになんらかの負荷がかかったときがほとんどです。
> 本来F−BASICプログラムにはなんら関係なさそうですが、因果関係があるような気がします。
>
> この件、私に問題があるのか、F−BASICなのか、OSなのか、とんと見当がつきません。
> 新参者ではございますが、よろしくご教授お願い致します。
>
> 使用環境1
> Windows XP SP1 CPU:Pentium4 2.6GHz パイパースレッディング版
>
> 使用環境2
> Windows 2000 SP4 CPU:Pentium3 1.0GHz
>
> どちらも同じ現象がでます・・・・・

以下を私から返信させて頂きました

尚、私からの経験談からなのですが…
> 全くランダムで規則性はなさそうです。

WAIT関数は使っておりますでしょうか?

例えば。毎回 ":00" にのみ何らかの処理をする場合…

*LOOP
if right$(time$,2)="00" then gosub *nanikanosyori
GOTO *LOOP

では無く…

*LOOP
wait(10)
if right$(time$,2)="00" then gosub *nanikanosyori
GOTO *LOOP

の様にWAIT関数を入れると改善される(エラーが出ない)場合があります
WAITを入れないとCPU使用率100%にすぐになりやすく色々な症状が出る様です
間にWAITを少しでも入れるとCPUが休む時間が多くなり改善される場合があります

-----------

私の回答に何か間違い等あれば遠慮なくご指摘頂けると助かります
またこの件で何か解決案をご存じの方、よろしくお願いします

20F橋:2004/06/15(火) 13:45
>>17
私も透過型は申し訳ないのですがあまり分からず…
BMPファイルはOSによって違うと聞いた事がありますので
別のOSでBMPファイルを作ってみたりすると出来るかも知れないのですが…


…すいません。その程度しか分かりません

21nisii:2004/06/15(火) 15:17
メモリ管理上の問題かもしれません。
F-BASIC側の問題と考えていますが、とりあえず軽減する策を。

(1)適宜メモリを整理する。
RC& = fre( 2 )

(2)APIコールや拡張関数を呼ぶ回数を減らす。

(3)配列やオブジェクトを使用したら、プロシージャから戻る前に、明示的に開放する。
省略すると開放されないときがある。

(4)declare functionでDLL呼び出し宣言をする場合は、"xxx.DLL"と書いたほうが良い。


また、タイマイベントを使わない方が無難かもしれません。
タイマ値を記憶しておいて比較する方法なら、CPU負荷が大きくても時間に狂いがでませんし。

22nisii:2004/06/15(火) 15:19
>>21>>19 へのレスです。

23nisii:2004/06/15(火) 15:20
>>20

(1)どれか1色を透明にする、と決めて動作するソフトがあるみたい。
GIFのように規格化してれば利用しやすいんだけどね。

(2)また、BMPには32bitフォーマット(RGBA)もありますが、
通常は利用されないAプレーンを、切り抜きの型に使うソフトもあるようです。

いずれにしても、WindowsのBMP標準規格には無いので、
アプリケーション側で対応する必要があります。

しょせんは「写真」+「切り抜き型」なのですから、
別々に作成・管理しておき、最後に受け取りソフトに合わせて(1)(2)いずれかの
合成をすれば目的が達成できるのでは?

24F橋:2004/06/15(火) 20:48
nisiiさん>
ご教授ありがとうございます

>(1)適宜メモリを整理する。
>RC& = fre( 2 )
忘れていたのですが何か調子が悪いって時にこれを入れて直る症状もありましたよね
補足して頂きありがとうございました

25F橋:2004/06/15(火) 20:50
下記をメールで頂きました。

>  そのプログラムはCANONのLIPSコマンドで作画するものです。 御存知のよ
> うにLIPSのベクタモードはプロッター代わりになり重宝しています。 プリン
> ターをLIPSモード、プログラムは LPRINT TYPE "RAW" にしているのですが
> ところどころにゴミが入って悪さをしてるようです。 F-BASICのマニュアル
> にはポート直接操作にLIPSが入っていませんがそのために動かないのでしょう
> か(富士通サポ-トではそう言われてます)。
>
>  こうすればLIPSも動きますというような技が有るのでしたら是非とも教えて
> いただきたいと思いメールをいたしました。 よろしくお願いします。

私はF-BASICのマニュアルで一切書かれていないレシートプリンタ(スター製)を
動かした事があるのですが特に問題は無かったと思います
(レシートの切断。とか特殊なコマンドもありますので…)
先ほどソースを確認した所印刷ルーチンが

OPEN "LPT:" FOR OUTPUT AS #1

を使っておりました。これで印刷して不具合が無かったと思います
一度試してみて下さい

あと…通常使うプリンタにチェックが入っていなかったり
ネット上のプリンタだとトラブルがあった様な気がします
すいません。この辺りはうろ覚えです

また、ゴミがある程度ならばレーザープリンタのプロパティの設定で
回避出来る手段があるかも知れません

尚、予測でしか無いのですがそのレーザープリンタがUSB対応ならば
USBで接続して(F-BASICではRS232Cをオープンして扱う)行うと
出来るかも知れません(自信はありませんので保証は出来ません)

勝手に思っている部分なのですが。
ハードのプリンターの部分はWindowsが横取りして何かしそうな気がしてます
例えばデータを送るのを(Windowsが)ちょっと遅らせたり。
しそうな気がするのですがRS232Cの場合はタイミングがずれると
使えない機器があり得るのでWindowsが手出しせずそのまま送ると思います

ゴミが出る程度なのでデータをそのままプリンタに渡していないだけの気がします
その辺りをもう一度ご確認下さいです

違うかも知れませんが私が考えている今回の状況…
MS-DOSでは「123456」の印字データをそのままプリンタへ流す
Windowsでは「123」で保留…Windowsが別の事をしそのあとに続き「456…」
プリンタ側で「123456」と連続したデータは正常に印字出来るが
「123」(データが一瞬途絶えて)「456」の場合は失敗する…

・OPEN"LPT:" なら連続してデータを流すかもしれない
・OPEN"COM..." (RS232Cを使う場合)はハードの都合上連続して流れる「はず」
・プリンタの設定でデータが途切れても印刷できる設定があるかも知れない
(データが揃うまでプリンタが待つ→印刷が若干遅れる可能性はあります)

全て予想でしか無いのでよろしくお願いしますです

----------------

私の回答に何か間違い等あれば遠慮なくご指摘頂けると助かります
またこの件で何か解決案をご存じの方、よろしくお願いします

26たけし:2004/06/16(水) 09:44
(19)でF橋様に質問をアップしてもらった「たけし」と申します。
新参者ですが宜しくお願いします。
早速アドバイス頂いた(21)の「nishi」様、ありがとうございます。

相変わらず問題のプログラム達(何本かあります)は、普段は順調なのですが
PCに負荷がかかっているとエラーを発生します。
もう少し実験を繰り返してみて、またご報告差し上げます。

(同様の経験ありの方がいらっしゃいましたら、ぜひ教えて下さい)

27たけし:2004/06/16(水) 10:27
★解決しました!★ ご報告

(19)の質問の「たけし」と申します。
問題が解決しましたのでご報告します。

例えば次のような関数プロシージャを定義したとします。

declare function X_KANSU%( PM$ )

function X_KANSU%( PM$ )
X_KANSU% = val( PM$ ) * 16
end function

文字型の数字をパラメータに入れて呼び出すと、16倍にした数値を返します。
私は次のようにプログラム中で使用しています。

SUM%=321
A$="123"

SUM%=SUM% + X_KANSU%( A$ )

とくに難しくもなく、平凡な使い方だと思います。
この中で「 SUM%=SUM% + X_KANSU%( A$ ) 」の部分をループでまわしたり
すると、「エラー『5』」が発生する場合がありました。

※実際には上記のプログラムを書いて実行しても、エラーは起こらないようです。
 私の場合、500行位のプログラムの中で上記のような使い方をする部分で、
 不規則なエラーが発生します。

そこで次のようにしてみました。

X%= X_KANSU%( A$ ) : SUM%=SUM% + X%

関数プロシージャの戻り値を一旦変数に取り込んでから、演算に使うようにしました。
たったこれだけで、エラーの発生がなくなりました。

皆様のご参考になるかどうか判りませんが、ご報告します。
質問に目を通して頂いた方々に、お礼申し上げます。

28仙人池:2004/06/16(水) 14:10
25にて質問をアップしていただいた者です。
アドバイスしていただいたOPEN文を使ったらという事で書き換えてみました。
OPEN "LPT0:" FOR OUTPUT AS #1 を入れて LTYPE文をすべてPRINT #1に変更して実行
してみましたが結果は変わりませんでした。 プリンタに送り出したコマンドの中に時々ゴミが
混入しています。 今使っているプリンタはLBP-1310なのですがどういう訳かUSB接続が出来
ません。 まずはここから直していきたいと思います。

29仙人池:2004/06/16(水) 17:05
やっとUSB接続が出来ました。 ところでF-BASICからUSB経由でコマンドを送るには
RSを使うということですが具体的にはどうしたらいいのでしょうか。
まぬけな質問で申し訳ありません。

30F橋:2004/06/16(水) 21:19
>>27
>たけしさん
>SUM%=SUM% + X_KANSU%( A$ )
>そこで次のようにしてみました。
>X%= X_KANSU%( A$ ) : SUM%=SUM% + X%
>たったこれだけで、エラーの発生がなくなりました。

少々気になるのですが…
新規にプログラムを用意してみて sum%+sum%+x_kansu%(a$) を含めた
小さいプログラムでも症状出ますか?

というのも。他に不具合があるのでは?と考えてしまっており…

エラーの症状が出ていた↓このプログラムで…
>SUM%=SUM% + X_KANSU%( A$ )

ここはそのままにしておきプログラムの先頭の方に
DEF LEN 8192 AS dummy$
と定義するだけでもしかして不具合出ない。もしくは激減しませんか?

ちなみに。これで症状が出なくなった場合は私の場合はプログラムミスでした
(プログラムのどこかでメモリの確保ミスなどがある場合ばかりでした)

「SUM%=SUM% + X_KANSU%( A$ )」から「X%= X_KANSU%( A$ ) : SUM%=SUM% + X%」へ
変更しただけで不具合が回避されたのがどうも気になってしまっておりまして…

-----

「たまに」だったんですよね…

文字化けなどの理由で…
「SUM%=SUM% + X_KANSU%( A$ )」から「X%= X_KANSU%( A$ ) : SUM%=SUM% + X%」へ
変更して治る場合はあるのですが、この場合変更前は間違いなくエラーになるはずなので…

31F橋:2004/06/16(水) 21:58
>>28
>仙人池さん
OPEN文を使っても症状変わらずなんですね…う〜ん…
ちなみに症状は全く変わらないのでしょうか?多少の変化はありましたか?
あと「ゴミが混入」…ですよね〜…

http://cweb.canon.jp/e-support/qasearch/answer/lasershotprinters/q001000004410.html
ここを見ると文字が欠ける。等の不具合はドライバ側であったみたいなんですが…

F-BASICのアップデート情報も探してみたのですがその様なトラブルは見つかりません…
(余白などがおかしい。の様な不具合の修正はありました)

私はLIPSコマンドを知らないのですが…おそらく。ですが…
特定のLIPSコマンドを使った時のみゴミが出る症状では無いでしょうか?
新しく小さいプログラムを作って見て頂き…例えば線を引くのみ。もしくは円を描くのみ…
この場合でもゴミが出る症状は発生しますか?

ゴミが出る。ってのが私からは不思議で…
一切印字が出来ない。印字が無茶苦茶。ならともかく「ゴミが出る」程度の場合…
プリンタドライバが違う(もしくは壊れている)場合の症状に非常に似ているなぁ。と思うのですが…

>>29
>やっとUSB接続が出来ました。 ところでF-BASICからUSB経由でコマンドを送るには
>RSを使うということですが具体的にはどうしたらいいのでしょうか。
すいません。それ以上は私は分かりません
え〜と。F-BASICのHELPでRS-232Cで見て頂くと分かると思いますが…
RS-232Cでつなぐ機械の場合に前準備というか…多くのパラメータが必要になるです
(例えばモデムなどを使う場合)マニュアルに事細かく書いてあるので
それを見ながら作ればいいのですがプリンタをつなぐ場合はそれ以上分かりません
RS-232Cを使った事がある方ならば試しながらテストしてみる事は出来ると思うのですが
全く初めて使う方には…私ではちょっと説明仕切れませんです。…すいません

ただOPEN文でも症状が全く変わらないのならばUSBでも症状変わらないと思った方がいいかもです

-----

そのゴミが印字されてしまうプログラムなのですが…
その症状が出る所のみにして…100行以内にして頂きここに投稿できますか?
それが出来れば私の環境でも試してみますが…

32仙人池:2004/06/17(木) 10:04
F橋様アドバイスありがとうございます。 結果は全く同じでした。 ゴミが入ってしまう
小さいプログラムを作ってみます。 なおゴミと結果の写真をメールにて送らせていただき
ました。

33F橋:2004/06/17(木) 14:13
>>32
メール頂きました。印字結果の写真を拝見させて頂きました
01.JPGがDUMPモードでの印字で02.JPGが実際の印字結果でいいんですよね?
01.JPGのDUMPモードでは確かに異常なデータが送られているみたいですね…
で。その結果の02.JPGの実際の印字ではでは「画像が欠ける」という症状になるみたいですよね…

>>31でも少し話しましたが…
プリンタドライバの不具合でこういう症状はあるみたいなのですが
最新のプリンタドライバをダウンロードして使ってみても同じ症状なんでしょうか?

それと異常なデータには必ず 0D 0A が含まれており正常なデータに 0D 0A が見受けられません
0D 0A は改行コードですね…この辺りに何か解決のヒントがある気がします

F-BASICのバージョンはアップデートをしてU003になってますよね?
(アップデートをしていない場合はどこかで文字化けになる症状があった気が…)

↓印刷すると一部文字化けしてしまう…より
http://www.mster.co.jp/visiosquare/cgi-bin/visbbs/mibbs.cgi?fo=all&mo=p&tn=0190
>02: 名前:oki投稿日:2001/11/21(水) 12:43
>私も2002で文字化けや文字が欠けるという現象がでます。
>Canonのレーザーショットですが、ドライバのグラフィックモード
>(LIPSモード/イメージモード)を切り替えることで正常に印刷
>される場合もあります。

↑これって関係あるのかな…

なんとなくですが…F-BASIC側の問題では無い気がするのですが…

------------

掲載してよければこちらで01.JPG, 02,JPGを公開してもいいでしょうか?
他の方からも意見が聞けるかと思いますので…

34F橋:2004/06/18(金) 01:39
メールにてソース確認しました
(手元にLBP-1310が無いので)キャノンのプリンタドライバにプレビュー機能があるので
それを使ってテストしようと思っていたのですが…

…すいません。ドライバ介さず印字するのだからプレビュー出来ないっすよね(汗

(ともかく。プリンタのドライバは関係無いはずです
 何度もその話をしてしまい申し訳ございませんでした)

F-BASICで不具合があるのか(Windowsの機能も含む)それ以外なのかを
解決したいので以下の順番で試してみてください

(1)
以前OPEN "LPT0:" FOR OUTPUT AS #1の話をしたと思いますが
OPEN "AAA" FOR OUTPUT AS #1に変更してください
(プリンタに流すデータをそのままファイルにしてください)

(2)
MS-DOSプロンプトを起動し該当のディレクトリ(フォルダ)に移動し
DUMP AAA > AAA.DMP (enter)
として下さい
この段階で 0D 0A が含まれていないのを確認してください

(3)
OSはWindows98でしたよね?
MS-DOSで再起動し
TYPE AAA > PRN (enter)
とし印字してください
(CONFIG.SYSにprint.sysを組み込んである必要があります)

以上の方法でMS-DOSでの印字になりますのでどこが原因か判明すると思います

35F橋:2004/06/18(金) 01:48
上記の(1)〜(3)が何をしているかの説明と
異常だった時に何が原因かが分かるはずです

(1)〜(2)はプリンタに流すデータをファイルにしてます
ファイルに変換した場合に 0D 0A が含まれて「いない」事を確認してください

0D 0Aが含まれていないのが正常です
0D 0Aが含まれている場合…
私の環境(Windows98SE+F-BASIC Ver6.3+U003)では含まれません
何らかの環境の異常だと思われます
F-BASICのUPDATEをしていない。何らかの常駐ソフトが邪魔をしている
ネットワーク越しの印字やプリンタドライバの設定が標準では無い場合。
もしくはプログラムミス等々…

(3)はMS-DOSで印字します
これで異常(印字が欠ける等の症状)があるのならば…って考えられないんすけど(笑

印字が欠ける症状が出る場合…
プリンタケーブルやプリンタ、パソコン本体のプリンタコネクタの異常など…ハード的な異常

印字は正常…
MS-DOSでは正常に印字されWindowsでは不具合が出る。って事なので
F-BASICもしくはWindowsの不具合が考えられます

----------------

DUMPコマンドやPRINT.SYSデバイスが組み込んであるか。等は説明が長くなるので省略します
MS-DOSの知識がある方ならば分かる事ですので…
もし分からなければそのときに説明します。って事で…

36仙人池:2004/06/18(金) 09:53
F橋様、アドバイスありがとうございます。 時間が出来たらそくやってみます。 なお写真の公開は問題有りません。 あとF-BASICのバージョンですがU003、プリンタドライバも最新のを入れています。

37仙人池:2004/06/18(金) 13:37
まずお送りしたテストプログラムの結果をファイルしてみました。でダンプしたのですが
うまくいかないのでえいやとそのままプリンターに出すと見事にゴミ無しで書いてました。
そこで元プログラムの結果を同じように出力すると\(^O^)/うまくいきました。直にだ
すことはかないませんでしたがWinのF-BASICでLIPSを使える事が判明しうれしい限りで
す。F橋様、アドバイスどうもありがとうございました。大変感謝しています。

また何かありましたらその時はよろしくお願いします。

38F橋:2004/06/18(金) 20:52
>>37
>そこで元プログラムの結果を同じように出力すると\(^O^)/うまくいきました。
え〜と…一旦テキストファイルにして…それをshellか何かで…

TYPE PRFILE.TXT > PRN

の様にしてみたら出来た。って事でいいんでしょうか?

う〜ん…F-BASIC側に何かの問題がまだあるんですね…

話はずれますが…通常の文字列の場合を大量に操作すると一部エラーになる事があるらしいのですが…
F-BASICの内部ではLPRINT の命令を文字列として保管しているのでそれで今回の様にゴミがまざる場合がある…

…そんな事あるのかな(笑
(分かる方お願いしまーす)

F-BASICのみでは成功しなかったのに私的には残念なのですが
印刷するって目的は達成できたので良かったです

>F橋様、アドバイスどうもありがとうございました
非常にへたくそな…回り道の多いアドバイスで申し訳ございませんでした
初めからこの方法を提案できたはずなのに…とちょっと後悔してたです
教える方の責任も重大なんだなぁ。と思いました
私も勉強になりました。ありがとうございました

3917:2004/06/23(水) 06:10
うーんダメっぽいですねぇ…
HSPに行けば小数点が使いにくいわ、
こっちはこっちで画像関係が弱いわ、
ロートルがまともに使える言語って本当にないですねぇ…

40もじゃ:2004/07/27(火) 12:38
みなさまこんにちは。
F−BASICの達人の方々に、お知恵を拝借したく投稿させて頂きます。

WindowsXPで使用しています。(非対応との前提はご容赦下さい)
FB6.3で作成したプログラムを、常に前面に出しておく必要に迫られ、
苦戦しております。

具体的には、キーボードインターフェイスに接続したバーコードスキャナ
からの信号を、EDITボックスで受け止めたあと処理をするプログラムです。
バーコードスキャナからの信号は、実際のところキーボードを打鍵したのと
同じもので、カーソルのある位置に文字として出力されます。
デスクトップ上に「メモ帳」と「EXCEL」と「WORD」が立ち上がって
いる場合、フォーカスのあたっているアプリのカーソルのある位置に文字入力
されたのと同じ動作になります。

そこでFBのプログラムを最前面に持ってきて、フォーカスのあたった状態
にするための方法を探しています。
プログラムを立ち上げた直後は当然最前面にあるのですが、誰かが触ったり
するとマウスカーソルがデスクトップのアイコンに移動してしまったりします。
こうなるとバーコードスキャナからの信号はFBプログラムのEDITボックス
には落ちてくれません。
1分おきぐらいに自ら最前面に移動し、フォーカスを持ってくるようにしたいです。

「SETTOPMOSTWINDOW」や「SETFOREGROUNDWINDOW」という命令を試してみまし
たが、WindowsXPでは最前面にくることはなく、タスクバー内の
自タスクのボタンが点滅しクリックを促すのみとなります。
なんとか強引に、「最前面化」と「フォーカスのたぐり寄せ」を行う方法が
ないものでしょうか?

お知恵がございましたら宜しくお願い申し上げます。

41F橋:2004/07/27(火) 19:28
>>40
XPやオブジェクト関連はまだまだ勉強中なので私も分かりません

>「SETTOPMOSTWINDOW」や「SETFOREGROUNDWINDOW」という命令を試してみまし…
既にこの2つは試してあるんですね

フォームの最小化が出来たと思うのですが
フォームの最小化−元に戻すをすると前面に…来ませんよね(汗

-----

何をしてもいいのならば。ですが…
フリーソフトでキー入力やマウスのマクロを作成出来るものがあったと思います
何分かに1回、フォーム上でマウスが押された様なマクロ(の様なもの)を用意すれば
回避は出来なくはないですが…

…だめですよね(汗(笑

…お役に立たずに申し訳ございませんです

42もじゃ:2004/07/27(火) 20:09
F橋さま、さっそくのご意見ありがとうございます。

なにかいい手はないかと、今もゴニョゴニョやっています・・・・

43アラキ:2004/07/28(水) 18:33
お世話になります。
最近、インターネット接続をダイアルアップからブロードバンドLANにしました。
下記について、ご質問したく、もしご存じの方がおられましたらよろしくお願い
致します。
Webページからデータ受信速度のスピードテストを測定しています。また、
スピードを向上するためのソフトもインストールしました。それによりまして
スピードも3倍になりました。

ご質問
Win98、Win2000で使用していますが、パソコンをWinXPにしても
思ったほどスピードは期待できないと聞いた事がありまが?。
通信にはあまり関係なく、見かけ上はパソコンの内部処理が早くなっている為、
早くなったような気がすると言っていました。もしそうでありますと
ダウンロードの時間に差がないと思って良いのでしょうか。
実際はどの様になりますか。ご存じの方がおりましたらよろしくお願い致します。

44F橋:2004/07/28(水) 23:39
>>42
あまりお役に立たないレスですいません

>なにかいい手はないかと、今もゴニョゴニョやっています・・・・
あると思うんですが…私ではここまででした。すいませんです

45F橋:2004/07/28(水) 23:50
>>43
>Win98、Win2000で使用していますが、パソコンをWinXPにしても
>思ったほどスピードは期待できないと聞いた事がありまが?。
私が知っている範囲です

Windows95, 98SEは電話回線を想定した設定になっており
WindowsME, 2000, XPはブロードバンド回線を想定している様です

Windows95, 98, 98SEでブロードバンド用に(フリーソフトなどを使って)速度を速くした場合は
ME,2000,XPとそれほど変わらないはずです

ブロードバンドでのネットの早さ
←遅い                      速い→
95,98,98SE(標準)<<<<<<ME,2000,XP<全Windows+ダウンロードパラメータの調整

私の中ではこんな形だと思います(一部実体験有り)

-----


パラメータの調整の話はなんとなくしか分からないのですが…
電話回線用の設定は少しずつデータをもらっていると思ってます
(データが壊れやすいから少しずつもらっている?)
ブロードバンド用の設定はたくさんのデータを一気に読み込んでいると思ってます

1.データの受信
2.読み込んだデータのチェック
3.2のチェックでデータが正常なら次の読み込み。異常なら1から繰り返す

電話回線の場合はデータが異常で再読み込みをする時が多いから
一度に読み込むデータが少ない方が効率がいいはずで
ブロードバンドの場合は異常な場合が少ないから一括で読み込んでいる。と考えてます

ネットの速度を速くするソフトはパラメータの変更が主だと思っております
またそういうソフトは実際にパラメータを色々と変えたのを試して今の回線に一番速い
設定に変えてくれるようです
この辺りの設定が同じならばOSのみでの差は(私は)少なく感じます

46アラキ:2004/07/29(木) 10:17
ご返答くださいましてありがとうございました。
ご説明してくださいました、Windows95, 98SEは電話回線をWindowsME, 2000, XPはブロードバンド回線の想定につきましては大変参考になりました。
Windows95, 98, 98SEは速度を速くした場合はME,2000,XPとそれほど変わらない件につきましては体験の中で納得させられました。
また、電話回線用、ブロードバンド用のデータの流れ方について、とても解りやすく、ご説明されていましたので理解する事ができました。お礼を申し上げます。

47TOKO:2004/07/30(金) 01:53
42>>
もじゃさん>こんばんは
意味を取り違えていたらゴメンナサイ・・
フォームを常時前面に出すということでしたら、下記の方法はどうでしょうか?

#include "Windows.bi"

declare function SETWINDOWPOS lib "user32" alias "SetWindowPos" (byval HWND as long, byval HWNDINSERTAFTER as long, byval X as long, byval Y as long, byval CX as long, byval CY as long, byval UFLAGS as long) as long

’手前に表示するかしないかのフラグ
var shared FLG as integer

’hWndInsertAfter の設定
#define HWND_TOP 0'手前にセット
#define HWND_BOTTOM 1'後ろにセット
#define HWND_TOPMOST -1 '常に手前にセット
#define HWND_NOTTOPMOST -2'解除
’wFlags の設定
#define SWP_SHOWWINDOW &H40'表示する
#define SWP_NOSIZE &H1'サイズを設定しない
#define SWP_NOMOVE &H2'位置を設定しない

var shared MAINFORM as object
var shared BUTTON1 as object
MAINFORM.ATTACH GETHWND
BUTTON1.ATTACH GETDLGITEM("BUTTON1")

declare sub MAINFORM_START edecl ()
sub MAINFORM_START()
'初期設定(フラグ)
FLG = 1
end sub

'コマンドボタンの処理
declare sub BUTTON1_ON edecl ()
sub BUTTON1_ON()
var RST as long

if FLG = 0 then
'「常に手前に表示」を解除
RST = SETWINDOWPOS(MAINFORM.GETHWND, HWND_NOTTOPMOST, 0, 0, 0,0, SWP_SHOWWINDOW or SWP_NOMOVE or SWP_NOSIZE)
FLG = 1
BUTTON1.SETWINDOWTEXT "「常に手前に表示」する"
MAINFORM.SETWINDOWTEXT "現在は「ノーマル」状態です"
else if FLG = 1 then
'「常に手前に表示」をセット
RST = SETWINDOWPOS(MAINFORM.GETHWND, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW or SWP_NOMOVE or SWP_NOSIZE)
FLG = 0
BUTTON1.SETWINDOWTEXT "「常に手前に表示を解除」する"
MAINFORM.SETWINDOWTEXT "現在は「常に手前に表示」状態です"
end if
end sub

while 1
WAITEVENT
wend
stop
end

48もじゃ:2004/07/30(金) 10:20
>47
TOKOさま、ありがとうございました。
さっそく試させていただき、見事!にうまくいきました。

が、とても残念なことが・・・・・・
もう少し、お付き合い頂けませんでしょうか?

FBで作成したアプリを最前面(Z順の先頭)に持ってくることには成功しますが、
アクティブ(フォーカスのある状態)にはなりません。
(「SETWINDOWPOS」で調べましたら、そういう仕様だそうですねぇ)

他のスレッドがアクティブの時に、強引にこちら側をアクティブにするにはどうすれば
良いでしょうか?
かなり高度な技が必要だと思いますが、この投稿をご覧の方でご存知の方がおられましたら、
ぜひご教授お願い致します。

(聞いてばかりで、ほんとにすいません)

49TOKO:2004/07/30(金) 11:27
>>48
TIMERを使う方法ではダメですか?

var shared TIMER1 as object
TIMER1.ATTACH GETDLGITEM( "TIMER1" )

TIMER1.SETINTERVAL nnnn ←(間隔:秒数)
TIMER1.ENABLE -1

declaresub timer1_timer edecl ()
MAINFORM.SETFOREGROUNDWINDOW
end sub
トカ(^^;)

50もじゃ:2004/07/30(金) 14:24
>49
TOKOさま、アドバイスありがとうございます。

残念ながらWin2000やXPでは、「SETFOREGROUNDWINDOW」が働いてくれません。
タイマーを使用して定期的に「フォーカスひっこ抜き」をするのはいいのですが、
肝心のフォーカスは来てくれないようです。

OSの仕様で、他のスレッドからフォーカスを奪うのはなかなか大変だそうです。

しくしく・・・・・・

51TOKO:2004/07/30(金) 19:24
>>50 【SetForeGroundWindow の件】
>Win2000やXPでは、「SETFOREGROUNDWINDOW」が働いてくれません。
Windows98およびWindows2000ProはOK、WindowsXPはNGのようです。試してみました。
>1分おきぐらいに自ら最前面に移動し、フォーカスを持ってくるようにしたいです。
>タイマーを使用して定期的に「フォーカスひっこ抜き」をするのはいいのですが、
>肝心のフォーカスは来てくれないようです。
私の環境はWindowsXPですが、常時最前面表示させ、他のアプリに移動していても1分ごとに強制アクティブにする。

sub MAINFORM_START()
TIMER1.SETINTERVAL 6000
TIMER1.ENABLE -1
FLG = 0
FORM_STATE
end sub

declare sub BUTTON1_ON edecl ()
sub BUTTON1_ON()
FLG = not(FLG)
FORM_STATE
end sub

sub FORM_STATE()
var RST as long
if FLG = 0 then
RST = SETWINDOWPOS(MAINFORM.GETHWND, HWND_NOTTOPMOST, 0, 0, 0,0, SWP_SHOWWINDOW or SWP_NOMOVE or SWP_NOSIZE)
BUTTON1.SETWINDOWTEXT "「常に手前に表示」する"
MAINFORM.SETWINDOWTEXT "現在は「ノーマル」状態です"
else
RST = SETWINDOWPOS(MAINFORM.GETHWND, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW or SWP_NOMOVE or SWP_NOSIZE)
BUTTON1.SETWINDOWTEXT "「常に手前に表示を解除」する"
MAINFORM.SETWINDOWTEXT "現在は「常に手前に表示」状態です"
end if
end sub

declare sub TIMER1_TIMER edecl ()
sub TIMER1_TIMER()
MAINFORM.SETFOREGROUNDWINDOW
end sub
(一部省略)で1分ごとにアクティブになりました。自己流のためひょっとしてとんでもないことをしているかも・・

52chigaya:2004/07/31(土) 02:46
XP は使った事が無いので勝手な妄想ですが・・・
F−BASICの「SETFOREGROUNDWINDOW」が出来ないって事は、

#include "windows.bi"
declare function WinApi_SetForegroundWindow& lib "user32" alias "SetForegroundWindow"( byval hWnd& )
ApiReturn& = WinApi_SetForegroundWindow( GETHWND )

直接APIに動いて貰う事も、XPは出来ないんでしょうか?

久々のプログラミングなので、ちょっと自信が無いですが・・・。
ますます、OSのバージョンアップがし辛いなぁ・・・。

53TOKO:2004/07/31(土) 08:39
>>52
chigayaさん>
お久しぶりです。
あれ以降、chigayaさんやnisiiさんのAPI関連記事で勉強させていただいています。
APIのSetForegroundWindowを試してみましたが、windowsXPではできないようです。

54nisii:2004/07/31(土) 09:58
SDKによると SetForegroundWindow を使って欲しくないそうですね。

特にWindowsXPは、タスクバーなどの順位が上げられたみたいで、
SetForegroundWindow を発行するソフトが
アプリケーションエラーを起こしやすいなど、いっそう厄介です。

消極的ですが、ユーザーにボタン操作してもらって切り替える案ではダメですか?


#include "windows.bi"

common shared MAINFORM as object
MAINFORM.ATTACH GETHWND

var shared EDIT1 as object
EDIT1.ATTACH MAINFORM.GETDLGITEM( "EDIT1" )
EDIT1.SETFOCUS

do
WAITEVENT
loop
end

'-------------------------------------
' EDIT1がフォーカスを失ったときのイベント
declare sub EDIT1_KILLFOCUS edecl ()
sub EDIT1_KILLFOCUS()

var COUNT as long
var RC as long

' EDIT1のフォーカスを失ったら、1秒待つ
for COUNT = 1 to 100 : wait 1 : next

' トップモストのダイアログを使ってユーザーにボタン操作してもらい、
' フォーカスを強制的に戻す
MAINFORM.SETTOPMOSTWINDOW -1
RC = MAINFORM.MESSAGEBOX( "確認" , "EDIT1以外をクリックしないでください。" , 0 , 3 )
EDIT1.SETFOCUS
MAINFORM.SETTOPMOSTWINDOW 0

end sub

55F橋@役立たず管理人:2004/08/01(日) 13:47
もじゃさん>
私は分かりませんのでよろしくです

TOKOさん>
サンプルありがとうございます

chigayaさん>
お久しぶりです!ご参加ありがとうございます!

nisiiさん>
いつもいつもありがとうございます


-----
凄い。F-BASICのプロが3人もレスしている…解決できないとは思えない

56上村:2004/08/02(月) 00:14
XPで動作するかわかりませんが

フォームを最前面表示にしておいて

sub TIMER1_TIMER()
  SHOWWINDOW 0
  SETFOCUS
  SHOWWINDOW -1
end sub

こんな感じに記述してみたらどうでしょうか
Windows2000 Server では動作しました。
スマートなやり方ではないのでもっとスマートな方法も探してみます

57TOKO:2004/08/02(月) 01:10
>>56
XPでも動作します。
ただ、一旦アクティブになると他のアプリに制御を移した場合でも、キャプションバーが
アクティブのままの状態になるようです。
あぁ〜 暑くて眠れない・・・ エアコン買うまでもないし

58もじゃ:2004/08/02(月) 14:40
>51 >53 >57 TOKOさま
>52 chigayaさま
>54 nisiiさま
>56 上村さま
そして管理人のF橋さま

貴重なアドバイスを頂きまして、ほんとうにありがとうございました。
一人ではきっと解決できなかったであろう問題を、皆様の助言によりおおむねやっつける
ことが出来ましたので、お礼申し上げると共にご報告致します。

【私の環境はWinXP/Proです】

#include "WINDOWS.BI"

var shared MAINFORM as object :MAINFORM.ATTACH GETDLGITEM("MAINFORM")
var shared TIMER1 as object :TIMER1.ATTACH GETDLGITEM("TIMER1")
var shared EDIT1 as object :EDIT1.ATTACH GETDLGITEM("EDIT1")

declare function SETWINDOWPOS lib "user32" alias "SetWindowPos" (byval HWND as long, byval HWNDINSERTAFTER as long, byval X as long, byval Y as long, byval CX as long, byval CY as long, byval UFLAGS as long) as long

declare sub MAINFORM_START edecl ()
sub MAINFORM_START()
TIMER1.SETINTERVAL 1000
TIMER1.ENABLE -1
end sub

declare sub TIMER1_TIMER edecl ()
sub TIMER1_TIMER()
beep
A= SETWINDOWPOS(MAINFORM.GETHWND, -1, 0, 0, 0, 0, &H43)
MAINFORM.SHOWWINDOW 0
MAINFORM.SETFOCUS
MAINFORM.SHOWWINDOW -1
EDIT1.SETFOCUS
A= SETWINDOWPOS(MAINFORM.GETHWND, -2, 0, 0, 0, 0, &H43)
end sub

while -1 :WAITEVENT :wend


↑こんな感じでやってみました。(教えて頂いたソースを組替えてみただけですけど・・・)

メインフォーム上に、エディットボックス1個とタイマーコントロール1個を用意しました。
10秒おきにタイマーイベントが発生するようにしています。
タイマーイベントの発生時にBEEP音を鳴らしてみました。
そしてまず強制的に「最前面化(トップモースト)」を行っています。
次にメインフォームを非表示に、その状態でメインフォームにフォーカス移動、
更にメインフォームを表示に。
そしてエディットボックスにフォーカス設定。
最後に「最前面化」を解除しています。

これで私のやりたかったことが「一応」できるようになりました!

サンプルプログラムを起動したあと、1回目のタイマーイベントまで待ちます。
それ以降は、メモ帳やEXCELなどを自由に立ち上げます。
例えばメモ帳を立ち上げた場合、カーソルはそちらに移りキーボードからの入力は
メモ帳内に反映されます。
しかし、タイマーイベントが発生すると「お見事!!」、カーソルがサンプルプログラムに
戻ってきます。
これで24時間待機させているプログラムを作成し、常にカーソル(フォーカス)を獲得
し続けることができそうです。
ただ、まだ完璧ではないようで条件によっては「カーソルのたぐり寄せ」が行われない
場合もあります。

最初はまったく思い通りにいかず、あきらめようと思いましたが、皆様からいろいろなお知恵を
拝借しましてようやくここまでこれました。
これからもぜひ宜しくお願いします、ありがとうございました。

59FBASIC利用者:2004/08/29(日) 20:28
お世話になります。

IEの有無について、お尋ね致します。

F-BASIC6で作成しました本ソフトを起動しますとデスクトップ上に本ソフトのフォームが表示されます。
そのフォームで作成メニューをクリックしてデスクトップ上にInternet Explorerの有無を知り、有る事が確認できましたら
Internet Explorerのハンドルを取得したいと考えていますが、有無を調べる事は可能でしょうか。
ご存知の方がおりましたら、お教え願えれば幸いです。宜しくお願い致します。

60上村:2004/08/30(月) 00:13
ハンドルというのがWindowHandleならば

declare function APIFINDWINDOW lib "user32" alias "FindWindowA" (byval LPCLASSNAME as string, byval LPWINDOWNAME as string) as long
var IE_HWND as long
IE_HWND = APIFINDWINDOW("IEFrame",byval 0)

こんな感じのコードで取得できると思われます。

61FBASIC利用者:2004/08/30(月) 00:54
上村 様

ご返答を下さいましてありがとうございました。
ご指導頂ました IEのハンドルを取得するコードで確認しましたら
IEのハンドルが取得できました。
以前は始めダミーでタイトル名をつけてから行っていましたので
長いコードとなりました。
上村様からのご指導をして頂くまではできないものとあきらめていました。
お陰様で今後においては、大変助かりました。
貴重なご投稿をして頂きまして、本当にありがとう御座いました。
心より深くお礼を申し上げます。

FBASIC利用者

62佐藤:2004/08/30(月) 06:15
佐藤と申します。よろしくお願い致します。

テキスト部分を『メニュー』→『編集』→『すべて選択』で選択する事は出来まし
た。その後テキストの選択された全てをAPI関数で消す方法で
何かご存知の方がいましたら、教えて下さい。
宜しくお願いします。

63上村:2004/08/30(月) 16:53
APIではありませんが
F-BASICで選択部分を変更するには
REPLACESEL関数が使用できます。

選択部分を消去するには
EDIT.REPLACESEL ""
このように記述すれば消えます

もしテキスト全体を消去するのであれば
EDIT.SETWINDOWTEXT ""
で消去したほうが高速だと思います

64F橋@役立たず管理人:2004/08/30(月) 18:46
(上村さん。ご回答ありがとうございました)

65佐藤:2004/08/30(月) 19:37
上村さんより、ご回答頂きました佐藤です。
遅くなりましたが、お礼を申し上げます。
選択部分を消去するREPLACESEL関数の
EDIT.REPLACESEL ""については用いた事はありましたが、
今回により勉強になりました。ありがとうございました。
今後も、何かありましたら宜しくお願いいたします。

66佐藤:2004/09/03(金) 10:16
お世話になっています佐藤と申します。
本当に申し訳ありませんが再度下記のすべて選択を戻すにつきまして
2点の質問につきまして宜しくお願い致します。

自作ソフトでIEの画面(ホームページ)をすべて選択→コピーして
クリップボードに文字をコピーしています。

RET = POSTMESSAGE(IE_HWND,&H111,&HA044,0) 'すべて選択
RET = POSTMESSAGE(IE_HWND,&H111,&HA042,0) 'コピー

すべて選択されますと画面全体が青色になります。
すべて選択を戻す(取り消す)ためソフトでマウスをクリックしています。
メニューに戻すが有れば問題ないのですが(メモ帳には有りました)
質問1
マウスを使用しない方法ですべて選択を戻す(取り消す)方法は有りますでしょうか。

タスクバーに最小化されましたIEもすべて選択→コピーでクリップボードに
文字をコピーできます。最大化に戻した場合、すべて選択のままになっています。
マウスを移動する事が出来ないため取り消しが出来ないものと考えています。
質問2
タスクバーに最小化された状態ですべて選択を戻す(取り消す)方法は有ります
でしょうか。

以上の2点について、ご指導して頂ければと願います。

67佐藤:2004/09/04(土) 10:43
お世話になっています佐藤と申します。
2点の質問についてはウィンドウハンドルを頼りに制御する方法では
限界があることが確認できました。
大変お世話になりました。ありごとうございました。

68TOKO:2004/09/04(土) 14:05
佐藤さん>
>マウスを使用しない方法ですべて選択を戻す(取り消す)方法は有りますでしょうか。
IE画面がアクティブあるいはアイコン化されている場合でも自作ソフトではマウスを使うんです
よネ^^;
選択画面の「取り消し」のみでしたら、アクティブ画面およびアイコン化されていても
RET = POSTMESSAGE(IE_HWND,&H111,&HA043,0)で取り消されるようですが・・・
画面に現れない他の動作をしているかどうかは不明です。

それとも、マウスを使用しないで「CTRL+Z」などで「戻る」動作をさせたいのでしょうか?

69佐藤:2004/09/04(土) 15:07
TOKOさん
ご回答下さいましてありがとうございました。
ご指導して下さいましたRET = POSTMESSAGE(IE_HWND,&H111,&HA043,0)の記述を
追加してみましたら目的が達成する事ができました。それによりマウスの移動、
マウスの設定、Wait命令などの必要がなくなり、大変助かりました。
他でも今回の件で質問の問い合わせを致しました。その結果限界と判断しました。
TOKO様のご回答をして下さいましたお陰で解決する事ができました。
本当にありがとうございました。心よりお礼を申しあげます。

70佐藤:2004/09/04(土) 16:36
TOKOさん
佐藤と申します。先ほどはありがとうございました。
何度に渡り本当にすいみません。
ご回答していただきました
RET = POSTMESSAGE(IE_HWND,&H111,&HA043,0)の中で
WM_COMAND(&HA043)は何の意味なのかSPY++で
IEのメニュー項目から探しては見ましたが、探すことができませんでした。
どのようにすれば探すことが出来るのか、ご都合が良ければ、
ご指導願えればと思います。宜しくお願い致します。

71佐藤:2004/09/04(土) 17:28
マウスを使用しないで「CTRL+Z」などで「戻る」動作
のご指導でしたが、うっかりして・・・
本当に申し訳ありませんでした。

72TOKO:2004/09/04(土) 19:29
佐藤さん>
それを聞かないで!! *^^;)
フリーソフトでパラメータを指定してSendMessage(PostMessage)するデバッグ補助ツール
SendMessage V1.0というのがありますが。
それを使ってwParamを変えたらタマタマ目的(らしい)動作をしたのでお知らせしたまでです。
はじめは、マウスクリックで選択解除なのでWM_LBUTTONDOWNを試したり、UNDOなどを試し
てみたのですがダメで、最後に上記を試してみたというわけです。
動作としては、ペーストのような感じがするのですが・・・
というのは、
RES = POSTMESSAGE&(IE_HWND,WM_COMMAND,&HA044,0) 'すべて選択
'RES = POSTMESSAGE&(IE_HWND,WM_COMMAND,&HA042,0) 'コピー
として
RES = POSTMESSAGE&(IE_HWND,WM_COMMAND,&HA043,0)
を実行すると前もってコピーされていた内容がペーストされますので・・
そういうわけですので、あくまでも自己責任でお願いいたします。

73佐藤:2004/09/04(土) 21:51
TOKOさん
ご返答して頂きましてありがとうございました。
色々と試していただき、時間も割いてくださまして、この場をお借りして
厚くお礼を申し上げます。他でも問い合わせしましたが・・・
お陰様でTOKOさんのご指導により解決する事ができました。
また、タスクバーに最小化状態から最大化に戻しても、
問題なくすべて選択が消えていました。本当にありがとうございました。
私の方でお願いして、TOKOさんのご好意で教えて頂きましたので
自己責任は当然だと思います。本当にお世話になりました。

74tanaka:2004/09/05(日) 17:44
初歩的な質問で申し訳ありません。宜しくお願い致します。
F−BasicからMicrosoftメモ帳 のフォームを
アクティブ後、REC = SetForegroundWindow(MENO_HWND )
今度はF−Basic自身のMAINFORMをアクティブしてもアクティブになりません。
REC = SetForegroundWindow( FBASIC_HWND ) のFBASIC_HWNDのハンドルは
問題ありません。MAINFORM.SETTOPMOSTWINDOW (-1)、MAINFORM.SETFOCUSなど
試しはしましたがダメでした。一度、F−Basicを抜けて外部のフォーム
(Microsoftメモ帳)をアクティブしますとF−Basicで作成した
フォームはアクティブできなくなるのでしょうか。その場合は、
手動でクリックしない限りダメなのでしょうか。ご教授頂ければ幸いです。

75TOKO:2004/09/05(日) 18:39
tanakaさん>
RES = API_SETFOREGROUNDWINDOW(MENO_HWND)でアクティブ後
F-Basic自身のメインフォームをアクティブにするんですね?
RES = API_SETFOREGROUNDWINDOW(MAINFORM.GETHWND)でアクティブになりませんか?

WindowsXP、F-Basic 6.3 U003

76TOKO:2004/09/05(日) 18:53
IEのパッチをインストールするとスクロールしすぎる不具合が発生
http://support.microsoft.com/default.aspx?scid=kb;ja;832270
http://internet.watch.impress.co.jp/cda/news/2003/11/12/1095.html

9/2 WindowsXP SP2 インストール
どういう訳か本日午後から、表記の件で悩まされております。
IEに限らず、F-Basicのプログラム編集画面でもスクロールバーがひとりでに最下段まで
移動してしまうというものです。

ただ、F-Basicで作成したリストボックスは、今のところ大丈夫のようです。

77tanaka:2004/09/05(日) 19:19
TOKOさん

早々、ご教授願えましてお礼を申します。
考え方で特に問題がない事が知れました。
そこで、整理して最短で作成しましたら問題なく動作しました。
もう一度F−Basic自身を見直せば何とかなると
思えましたのでうまくいきそうです。ご教授のお陰です。
ありがとうございました。

78TOKO:2004/09/06(月) 09:30
佐藤さん>
RES = POSTMESSAGE&(IE_HWND,WM_COMMAND,&HA043,0)
一度コピーしたものをペーストしているようです。文字数の多いところで試すと時間が
かかりますし、
RES = POSTMESSAGE&(IE_HWND,WM_COMMAND,&HA042,0)の1行を抜くと選択解除にはなりま
せん。

RES = POSTMESSAGE&(IE_HWND,WM_LBUTTONDOWN,0,0)
RES = POSTMESSAGE&(IE_HWND,WM_LBUTTONUP,0,0)
のように、マウスをDOWNおよびUPの両方を送るといいようです。

79佐藤:2004/09/06(月) 12:58
TOKOさん
ご投稿下さいまして本当にありがとうございました。
あの後、TOKO さんの言われていましたペースト
(貼り付け)につきましてテキスト入力フィールド(input type="text")
で確認しましたら貼り付け、切り取りのComandを調べる事が出来ました。
貼り付けを実行しますとテキスト入力フィールドに同じ内容のものが
貼り付けされましたので安全を見て中止致しました。
せっかくご指導していただきましたが申し訳ありませんでした。
今回のTOKOさんのご指導で色々な事を学びました。
また、マウスを画面上でクリックする事も中止しました。
理由はクリックの所がボタン等でしたら飛んで行く事もありますので
(更新等でも消えますが更新中に管理者がホームページを変更することもありまので)
ご指導下さいました下記の記述で行わせてもらいます。
RES = POSTMESSAGE&(IE_HWND,WM_LBUTTONDOWN,0,0)
RES = POSTMESSAGE&(IE_HWND,WM_LBUTTONUP,0,0)
結果は、ご報告させて頂きますので宜しくお願い致します。

80佐藤:2004/09/06(月) 16:01

TOKOさん
ご報告いたします。
色々と試しましたので遅くなりました。宜しくお願い致します。
お陰様で目的が達成する事ができました。
TOKOさんの、ご指導して頂きましたお陰です。
ホームページ内でクリックする必要が無くなりました。その為に
コマンドボタンのクリックされ無いので
他のホームページに移動する心配がなくなりました。
ソフトではペースト・マウスの移動部分を外すだけで
問題ないソフトになりました。
TOKOさんのご指導を受けない限りこの方法は、
思い付かなかったと思っています。
重ねて厚くお礼を申し上げます。
幾度にも渡り、質問して申し訳ありませんが、
下記の2点●時間を入れないと読めないみたいです?
●先頭カーソル?につきまして、同じ動作現象になりますか
ご確認して頂ければ幸いであります。宜しくお願い致します。


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
var IE_HWND as long
IE_HWND = WINAPI_APIFINDWINDOW("IEFrame",byval 0)

if hex$(IE_HWND)<>"0" then

RET = WINAPI_POSTMESSAGE(IE_HWND,&H111,&HA044,0) 'すべて選択
RET = WINAPI_POSTMESSAGE(IE_HWND,&H111,&HA042,0) 'コピー

wait 350 '●時間を入れないと読めないみたいです。コピーの終了で効率良い
        wait時間を考えましたが'スタート同時にRET = 1になる為この方法としました。

R$ = GETCBTEXT

EDIT1.SETWINDOWTEXT R$

VAR CurPos As POINTAPI  ' マウス関連のAPI宣言
  var USRRECT as RECT_API

 ' ウインドウをアクティブにする
  ApiReturn& = WinApi_SetForegroundWindow( IE_HWND )
  'マウスの左ボタンを押す
MOUSE_EVENT &H2, 0, 0, 0, 0  'このようにすればNGになるRET = MOUSE_EVENT (&H2, 0, 0, 0, 0)又カッコも外す
'マウスの左ボタンを離す
MOUSE_EVENT &H4, 0, 0, 0, 0 'このようにすればNGになるRET = MOUSE_EVENT (&H4, 0, 0, 0, 0)又カッコも外す
EDIT1.SETSELTEXT 0,0,1:EDIT1.SETFOCUS '●こちらでは先頭にカーソルが正常に移る事もあります。

end if
exit sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

81佐藤:2004/09/06(月) 20:19
TOKOさん
ご報告いたします。
先頭のカーソルにつきましては
EDIT1.SETSELTEXT 0,0,1:EDIT1.SETFOCUSの前にフォアグラウンドウィンドウ
SETFOREGROUNDWINDOW(FBASIC)を追加しました。今の所は安定しています。
お陰様で落ち着きましたので少し様子を見てみます。
何度もに渡りまして、ご回答をして頂きまして誠に感謝しています。
ありがとうございました。

82佐藤:2004/09/06(月) 21:06
TOKOさん
81の追記です。
フォアグラウンドウィンドウ前に下記の3行を忘れていました。
RET = GetWindowRect( FBASIC, usrRECT ) 'FBASICウインドウ全体の座標を取得
  幅=usrRECT.left: 高=usrRECT.top
RET = SETCURSORPOS(幅,高)
を追記しました。

83TOKO:2004/09/07(火) 06:59
佐藤さん>
詳細にわたりありがとうございます。解決しているようですが、#78で転写ミスがありました。
RES = POSTMESSAGE&(IE_HWND,WM_LBUTTONDOWN,0,0)
RES = POSTMESSAGE&(IE_HWND,WM_LBUTTONUP,0,0)の部分ですが、「IEFrame」のハンドル
ではなく、「選択されている」フレームのハンドルでした。
同じプログラムで検証するのが一番だろうと思うのですが、再現のしようもなく私は下記
の方法でテストしていました。HP上でマウスは使用しないということから、
EDIT1→ペースト用
TEXT1→取得したハンドルの確認表示用
BUTTON1→全て選択・コピー
BUTTON2→「選択フレーム」のハンドル取得、マウスのDown・Upで選択解除
BUTTON3→EDIT1クリアし、EDIT1にペースト、カーソルは開始位置に

BUTTON1→BUTTON2にはタイムラグがあるので、wait のことは考えていませんでした。
MOUSE_EVENTは使っていませんので、複数フレームの場合の指定はどうしているのかと思
っていました。
これまで画像・インターネット関連の必要性を感じたことがなくやってきたものですから、
勉強になります。
また、男サザエさんのごとくオッチョコチョイですので、#76の症状が出たので検索したら
検索したら、URLが出てきました。よくよく読んでみると古い話でしたね^^;)
で、どういう訳か今は症状が治まっています。

84佐藤:2004/09/07(火) 07:38
TOKOさん
ご返答下さいましてありがとうございました。
複数フレームの場合ですがこの場合に限り直接マウスで選択画面をクリック
してます。また、BUTTON1→BUTTON2のタイムラグにつきましては
パソコンのスピード、OS、その他により違ってくると思っていますので
それぞれにあった一番良い方法(クリックボードでコピーが終了した例えばGet関数
)をいま探しています。もし良い方法が有りましたらご報告させていただきます。
色々と、ありがとうございました。

85TOKO:2004/09/07(火) 12:48
佐藤さん>
一つ気になったことがありましたので・・・
SetForegorundWindowですが#49〜#54を見ておいてください。

86佐藤:2004/09/07(火) 14:03
TOKOさん
貴重な情報を提供下さいましてありがとうございました。
言われて思い出しましたが、一度同じ事を何処かでみた覚えがあります。
#49〜#54には詳細な情報でとても参考になりました。
今のところWindows2000でも動作していますが、XPではまだ確認していません。
タイムラグに関しまして現状(Wait)で使用していきます。一応、完成と致しました。
以前から思っていた事ですが、ボタン一つでホームページ及びその他の画面の
文字を簡単にテキスト画面に表示出来れば便利かと考えていました。(実際探せば有ると思うのですが)
手動と自動で選択出来るようにもしてみました。
長期に渡りまして、ご投稿して頂けるとは思ってもみませんでした。
色々と勉強させて頂きました。心より厚くお礼を申しあげます。

87佐藤:2004/09/17(金) 17:27
前回は大変お世話になりました佐藤と申します。
ありがとうございました。

再三に渡りまして本当に申し訳ありませんが
質問させてもらいました。宜しくお願い致します。
説明に不十分な所がありましたら、お許し下さい。

Windows98のNotepad.exe(ノート)のフォームの境界部分をポイントして
この状態でドラック(左クリックで離す)するまでフォームは透明です。
Windows2000では透明でなくドラックするまでもエディタ画面(白色)
として大きくなっていました。F-Basicで作りましたソフトをWindows2000で
行いますとドラックするまでフォーム(灰色)の拡大となります。
境界部分をドラックするまでエディタ画面として大きくする事は可能なのでしょうか。
ご存知の方がいましたら、ご指導願えればと思います。

88TOKO:2004/09/17(金) 18:22
Windows2000の画面のプロパティ→効果→視覚効果で『ドラッグ中にウィンドウの内容を
表示する』にチェックが入っていませんか?

89佐藤:2004/09/17(金) 18:39
TOKOさん
ご回答して頂きましてお礼を申し上げます。
前回は何度ものご指導をして頂きましてありがとうございました。
今回の質問の件に於きましてはチェックが入っていました。
チェックを外して見ましたらWin98と同じ動作になり解決する事ができました。
重ねてお礼を申し上げます。

90Fbasic使用者:2004/09/19(日) 12:15
お世話になります。
Fbasicにつきましてお尋ねします。
Fbasicの実行ファイルを起動してメインフォームがディスクトップに
表示された場合にFbasicで作成された物かそれ以外(VB等)で作成したか
実行ファイルから見分ける事はできますか。それにつきましてご伝授ください。
よろしくお願いします。

91Fbasic使用者:2004/09/19(日) 13:03
一部記述の訂正をします。
実行ファイルから見分ける事はできますか。を
メインフォームから見分ける事はできますか。に
訂正します。

92Fbasic使用者:2004/09/20(月) 01:26
開発環境を見分けるのは難しい事がわかりました。

93Fbasic使用者:2004/09/25(土) 14:45
お世話になります。
コマンドボタン表示のサイズ変更につきまして

BUTTON1のテキスト内容を登録で表示しています。
そのテキスト内容(登録)表示のサイズ変更は可能でしょうか。
ご存知の方がおりましたら宜しくお願い致します。

94TOKO:2004/09/25(土) 15:40
Fbasic使用者さん>プログラム上で変更したいのですね?

var shared MainForm as object
var shared Button1 as object

MainForm.attach gethwnd
Button1.attach getdlgitem("Button1")

declare sub MainForm_Start edecl ()
sub MainForm_Start()
Button1.MoveWindow 100,50
Button1.SetWindowSize 80,25
Button1.SetFontName "MS 明朝"
Button1.SetFontSize 14
Button1.SetWindowText "abcde"
end sub

95Fbasic使用者:2004/09/25(土) 16:04
TOKOさん
ご回答して頂きましてお礼を申し上げます。
そうですプログラム上で変更したいのです。
説明不足がありまして申し訳ありませんでした。
リファレンス、サンプルプログラムで探しては見ましたが
探せませんでした。
ご回答して頂きました記述に従いましてプログラムの
編集に入りました。本当にありがとうございました。

96Fbasic使用者:2004/09/26(日) 20:22
お世話になります。
Windows98とWindows2000の文字サイズにつきまして
OSの文字サイズの調整は下記の方法で行っています。
フォームのコマンドボタン、テキスト、・・・
の文字サイズはWindows98と比べWindows2000は−1小さくなるために
プラットフォームのID = LPVERSIONINFORMATION.DWPLATFORMIDで
プラットフォームのIDからSETFONTSIZE 12+1 として1を加えて調整しています。
コマンドボタン等が特に数多いソフトでは、行っていません。そこで
最初にプラットフォームのIDでWindows98又はWindows2000を判断
しましたらSETFONTSIZEの調整をしなくとも簡単に出来る方法の有無
についてご指導して頂ければと思います。
宜しくお願い致します。

97TOKO:2004/09/26(日) 21:42
このHPのF-BASIC小ネタ集-Windows9xとNTのフォントサイズを揃える-で
nisiiさんが投稿されていますが明示的に指定するのが簡単な方法かと思います。

var shared text(30) as object
var shared edit(10) as object

for i = 1 to 30
text(i).attach getdlgitem("text"+trim$(str$(i)))
select case i
case 1 to 5
text(i).setfontsize 12
case 6 to 20
text(i).setfontsize 14
case else
text(i).setfontsize 20
end select
next i

for i = 1 to 10
edit(i).attach getdlgitem("edit"+trim$(str$(i)))
edit(i).setfontsize 14
next i

98Fbasic使用者:2004/09/26(日) 22:45
TOKOさん
早々と、ご返答下さいましてありがとうございました。
もしコマンドボタン等の数多いソフトでも可能になりますと、
自分にとっては大変貴重な情報となります。
今から記述の意味を調べて使用してみていきます。
前回に渡り大変お世話になりました。
本当にありがとうございました。

99Fbasic使用者:2004/09/27(月) 06:53
TOKOさん
以前から下記のeditを変数で扱えないかと思い続けていました。
今回その関数を知る事ができました。
プログラムを下へスクロールしますと32700当たりで停止状態になります。
別のパソコンでも同じでしたのでプログラムの長さの限界を感じました。
しかし、翻訳は問題無くできてます。
ご指導して頂きました関数を使えばかなり短くする事ができると思いますので
貴重な情報を提供して頂き、心よりお礼を申し上げます。

100りゅう:2004/09/27(月) 17:26
USBのモデムを使用したいのですが
232Cの制御で上手くいかないようです。
私は持っていませんが、使ってる人が、232C用のソフトでは動作しない
と言ってきたものですから。

プロトコル制御は、何か違うのでしょうか?
ボーレート指定
comfn=freefile
baud 9600,1
open "COM2:(S8N1N8)" as #comfn
出力
print #
入力
line input #
で行っています

よろしくお願い申し上げます。

101iwakifarm:2004/10/11(月) 19:22
USBを制御することはF-BASICでは無理です。
また、COM2とするとCOMポートに行ってしまいますので
基本的にUSBを通して通信出来ないことになります。
LPT0: というようにUSB0というな書式があれば使えたかもしれません。
実際にUSB経由のプリンタにF-BASICでLPT0:としても、
印刷できません。

102りゅう:2004/10/12(火) 14:51
ありがとうございました。
VBで作成したものを起動させました・・・

103Fbasic使用者:2004/10/15(金) 19:32
ユーザーID:登録の方法につきまして
お世話になります。下記の件につきまして宜しくお願い致します。
概要
C:\Winows\SYSTEM・・内にF-BASIC(TOUROKU.PRN)でファイルを作成して
登録者、ユーザーIDを登録しています。Windows98、WindowsXPをC:でありますと
C:\Winows\SYSTEMに登録されますが、Windows2000ではWinowsは
無くWINNT\SYSTEMでしたのでC:\Winows\SYSTEM・・内に(TOUROKU.PRN)の
ファイル作成を考えています。SYSTEM内のファイル作成につきましては、以前
F-BASICのサーポートセンターに問い合わせましたが特に規制は無いと言っていました
ので使用しました。その後、別の所からSYSTEM内には個人的なファイル作成の読み書きは
適当でないとも聞きました。今回Windows2000用にWINNT\SYSTEMに(TOUROKU.PRN)を
使用出来るようにするか、またレジストリを使用しない別の方法がありましたらとも
考えています。別の方法がありましたら、ご指導をお願い出来ればと思います。

104TOKO:2004/10/15(金) 20:55
WindowsおよびSystemフォルダは下記で取得できます。

#include "Windows.bi"

Declare Function Api_GetWindowsDirectory& Lib "Kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer$, ByVal nSize&)
Declare Function Api_GetSystemDirectory& Lib "Kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer$, ByVal nSize&)

var WinPath as string * 255
var SysPath as string * 255
var WinPathLen as long
var SysPathLen as long

WinPathLen = Api_GetWindowsDirectory&(WinPath, len(WinPath))
SysPathLen = Api_GetSystemDirectory&(SysPath, len(SysPath))
print "Windows フォルダ:" & left$(WinPath,instr(WinPath,chr$(0))-1)
print "System フォルダ:" & left$(SysPath,instr(SysPath,chr$(0))-1)

A$ = input$(1)
stop
end

105Fbasic使用者:2004/10/15(金) 22:07
TOKOさん
ご返答下さいましてありがとうございました。
お送り下さいました詳細なプログラム
を使用することで各OSのWindowsおよびSystemフォルダが取得できました。
お陰様でWindows2000ではWINNT\SYSTEMSフォルダにユーザーIDファイルを
作成する事ができました。
日頃から何度もに渡りまして、詳細な、ご指導をして頂きまして
厚く心よりお礼を申し上げます。

106MASUKO:2004/10/21(木) 12:31
初めまして、6.3ユーザのMASUKOと申します。
プログラム初心者のくせにゲーム作ろうという野望抱いてる野郎です。
大変恐縮ですが、質問させていただいてよろしいでしょうか?

AlphablendAPIを使って透過転送を試みたのですが、ピクチャボックスに反映されてないみたいなんです。
GetDCでピクチャボックスのデバイスコンテキスト指定して、リフレッシュをかけるだけじゃダメなんでしょうか…?
ちょっと、全体的な流れからはずれてしまう書き込みかもしれませんが、よろしければ皆様の叡智をお貸し下さい。(ぺこり)


新着レスの表示


名前: E-mail(省略可)

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

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

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

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