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

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

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

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

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

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でピクチャボックスのデバイスコンテキスト指定して、リフレッシュをかけるだけじゃダメなんでしょうか…?
ちょっと、全体的な流れからはずれてしまう書き込みかもしれませんが、よろしければ皆様の叡智をお貸し下さい。(ぺこり)

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は再帰呼び出しが使えないようなので、再帰呼び出しを使わない
クイックソートか、他のソートを教えてください。


新着レスの表示


名前: E-mail(省略可)

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

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

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

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