HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0327
いくすフォントの一覧16解決


いくす

リンク

2007/3/27(Tue) 09:01:24|NO.6584

前にも同じ記事あったと思いますが、
フォントの一覧の取得方法を教えください
前記事ですとフォント全部ではなく条件付だったと思います(多分;
どんな方法でもかまいません(APIでもレジストリでも
APIであれば質問なんですが ハンドルって言うのはポインタと解釈してもいいのでしょうか?
構造体ってのは何ですか?(EnumFontFamiliesEx関数でCHOOSEFONT構造体が出てきて…
あとコールバック関数っていうのはHSP3で実装できるものですか?(そもそもコールバック関数とは?

多重質問をお許しください…(メインはフォント一覧取得方法です。すいません…



この記事に返信する


GAM-22

リンク

2007/3/27(Tue) 19:15:55|NO.6592

こんにちは、GAM-22です。


chdir dirinfo ($10014) dirlist list, "*.*", 0 mesbox list, ginfo(12),ginfo(13)

このようにすれば、インストールされたフォントの一覧を取得できると思います。



いくす

リンク

2007/3/27(Tue) 20:04:17|NO.6596

ありがとうございます。
この方法ですと書体名の一覧ではなく事実的なフォントファイル名の一覧になってしまい、
わかりにくさもありますし、ファイル名をfont命令のパラメーターに渡すというのは心配要素になってしまいます。
ですが 協力してくださったことについて大変感謝しております。



Kpan

リンク

2007/3/27(Tue) 21:20:49|NO.6601

>あとコールバック関数っていうのはHSP3で実装できるものですか?
現状のHSP3では対応していない機能なので、拡張プラグインorマシン語を
利用します。

ちょくとさんの拡張プラグインhscallbk.dllにサンプルが付属してます。

あとは、HSP Help Centerさんのマシン語利用。
http://smile.poosan.net/perl-bin/hsp/ver3/hsp3.cgi?print+200510/05120037.txt



いくす

リンク

2007/3/27(Tue) 21:38:34|NO.6603

あ、すごいできますよ!!"05120037.txt"
しかし読んで理解できないのが悔しい…
あと2番目3番目のパラメータに何を渡してよいのやら…
でも私の求めていたものはこれです!!
ありがとうございます。



GAM-22

リンク

2007/3/28(Wed) 00:07:53|NO.6617

既に、解決したと思いますが、フォントをユーザに選択させるだけなら
「フォント選択ダイアログ」が便利だと思います。

http://hspwiki.nm.land.to/?%A5%D5%A5%A9%A5%F3%A5%C8%C1%AA%C2%F2%A5%C0%A5%A4%A5%A2%A5%ED%A5%B0
http://yokohama.cool.ne.jp/chokuto/urawaza/fontdlg.html



いくす

リンク

2007/3/28(Wed) 08:04:46|NO.6623

どうもありがとうございます。参考にさせていただきます。



いくす

リンク

2007/3/28(Wed) 22:40:25|NO.6640

"http://yokohama.cool.ne.jp/chokuto/urawaza/fontdlg.html
のスプリクトをHSP3.0に移植させてみようと思ったのですが、うまくいきません…
教えていただけないでしょうか?

#uselib "comdlg.dll" #func ChooseFont "ChooseFontA" int mref bmscr, 67 ; HSPウィンドウのBMSCR構造体取得 ; CHOOSEFONT 構造体 chfont.0 = 60 ; 構造体サイズ(=60) chfont.1 = bmscr.13 ; ウィンドウハンドル chfont.3=varptr(logfont) ; LOGFONT 構造体アドレス chfont.5 = 0x01000141 ; CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT ; | CF_EFFECTS | CF_NOVERTFONTS ; フォント選択ダイアログボックスの表示 pm=varptr(chfont) ChooseFont pm if stat == 0 : stop style=0 if (chfont.12 & 0x0100):style=style+1 ;スタイル 1 太文字 if (chfont.12 & 0x0200):style=style+2 ;スタイル 2 イタリック体 if (logfont.5 & 0x0000FF00):style=style+4 ;スタイル 4 下線 if (logfont.5 & 0x00FF0000):style=style+8 ;スタイル 8 打ち消し線 size=chfont.4/10 sdim fontname, 32 peek fontname,logfont, 28 font fontname,size,style mes "ひらがな漢字ABCabc" stop



anonimo

リンク

2007/3/29(Thu) 00:05:05|NO.6652

勝手に移植を始めたかと思えば「うまくいきません、教えてください」かよwww教えねーよ。自分でにらめっこしてればこれくらい気づくだろ。あとな、出来もしないのにスクリプトそのままコピるのやめたほうがいいよ。
chfont.3=varptr(logfont)	; LOGFONT 構造体アドレス

ってただのlogfont変数を指定して
if (logfont.5 & 0x0000FF00):style=style+4		;スタイル 4  下線
ってどうして配列要素に参照できるのとかぜんぜん読んでないだろ?こういうのは"移植"とは言わず"丸写し"っていうんだよ。コードの意図を読み取っていないわけ。
コードの意図を読み取って自分流の書き方と文法と仕様に沿った書き方にするのが移植なわけ。つまり「うまくいきません、教えてください」って掲示板にポストする前にちゃんと読んで意味を理解しなきゃいけねーんだよ!!出直してこい!!!

  あ。きれてる?

きれてないですぉ*^−^*



いくす

リンク

2007/3/29(Thu) 00:17:07|NO.6654

すいません。知識不足なもので…

anonimo様はどのようにHSPを学ばれたのですか?

出直してきます…



anonimo

リンク

2007/3/29(Thu) 01:17:25|NO.6655

症状は自分の言葉で説明すること。端折ってはいけない。実行結果が自分と相手と一致すると過信してはいけない。使用バージョンが違っていたら?考えて書かなきゃいけないことたくさんある。「うまくいきません、教えてください」情報量ゼロ。わかった?



リンク

2007/3/29(Thu) 04:06:13|NO.6658

>勝手に移植
お前に許可を取れと?

>自分でにらめっこしてればこれくらい気づくだろ。
初心者には分からないんじゃね?

>掲示板にポストする前にちゃんと読んで意味を理解しなきゃいけねーんだよ!!
勝手にそんな義務を作るな。



リンク

2007/3/29(Thu) 05:02:55|NO.6660

あは無視して「うまくいきません、教えてください」の"うまくいかない"とは何がうまくいかないのか、それを説明してくだぁぃ☆*^−^*



いくす

リンク

2007/3/29(Thu) 08:03:27|NO.6661

---------------------------
Error
---------------------------
#Error 38 in line 13 ([9iu@io.hsp)
-->外部DLLの呼び出しに失敗しました

---------------------------
OK
---------------------------
この様になっております。

理解しようと努力したのですが、どうしてもわからなかったので、助けを求めてしまいました。
私のような知識不足者に返信していただきありがとうございます。



リンク

2007/3/29(Thu) 08:38:57|NO.6663

それじゃぁ「DLLの呼び出しに失敗した」って書いてあるんだから「ChooseFont(ChooseFontA)」というDLL関数の呼び出しに失敗してこたぁわかる?ここまでおk?
んじゃまずこの関数が指定したdllにあるかどうか、そこからチェックしないとだめなわけよ。わけもわからず丸写ししている人わ。
いろんな講座とかちらばってるけどね、大事な部分て最初に説明してあるわけ。たいがい。そこ読み飛ばして途中から読み始めるのが失敗のもと。
とりあえずここ読みなしゃれ。
*’A`)つhttp://yokohama.cool.ne.jp/chokuto/urawaza/call-api.html
裏ワザの最初から読みなしゃれってことでそのホムペのトップページはここ。
*’A`)つhttp://yokohama.cool.ne.jp/chokuto/
まDLLんとこだけ直したってもすこしエラーでると思うけど。



いくす

リンク

2007/3/29(Thu) 11:30:07|NO.6666

分かりました。hsp2.61のHSP HELP browserでcomdlg32.dllのはずがcomdlg.dll
となっているからでした。
エラーはなくなりましたが、ダイアログが表示されません…無反応です



いくす

リンク

2007/3/29(Thu) 13:39:02|NO.6670

紹介してくださったページで勉強させていただきました。
多少ましになったと思います。


#uselib "comdlg32.dll" #func ChooseFont "ChooseFontA" int mref bmscr, 67 ; HSPウィンドウのBMSCR構造体取得 dim chfont,16 dim logfont,16 sdim fontname,32 ; CHOOSEFONT 構造体 chfont.0 = 60 ; 構造体サイズ(=60) chfont.1 = bmscr.13 ; ウィンドウハンドル chfont.3=varptr(logfont) ; LOGFONT 構造体アドレス chfont.5 = 0x01000141 pm=varptr(chfont) ChooseFont pm if stat == 0 : stop style=0 if (chfont.12 & 0x0100):style=style+1 if (chfont.12 & 0x0200):style=style+2 if (logfont.5 & 0x0000FF00):style=style+4 if (logfont.5 & 0x00FF0000):style=style+8 size=chfont.4/10 memcpy fontname,logfont,32,0,28 font fontname,size,style mes "ひらがな漢字ABCabc" stop
hspで
font "MS UI Gothic",10,1

(標準設定のタイトルバーと同じフォント・サイズ・スタイル) としても実際それより小さくなってるのですが何が原因でしょうか?



ONION software Copyright 1997-2023(c) All rights reserved.