メインコンテンツへスキップ

(改良希望)FontSet関数

コメント

27件のコメント

  • Pu

    こんにちは Puです

    自分でユーザー定義関数を作るとか

    現在使用しているfontの種類とかは取得できないので固定になるかもしれませんが

    でわ~でわ~

  • Tanda

    Puさんの意見に賛成です。自分で関数を作ったほうが早いですよ。

  • nkmt

    それも有りかもしれませんね。

  • nkmt

    フォント番号を指定して、フォントサイズのみの指定でOKなユーザー定義関数を実現する

    とすれば、fnt_rnt.jpnの特定の行を読み込み。
    (私ならMagicのテキスト取り込みしか思い浮かばない。 )

    ○行目の情報をgetして、FontSet関数を実行するといった感じになるのかなと想像しました。

     

     

     

  • Tanda

    難しいことを考える必要はないですよ。

    FontSet()関数に2つのパラメータを渡すだけのユーザ定義関数を作ればいいですよ。

     

  • nkmt

    使用フォントも複数使ってる場合もあるので。フォントセット関数でフォントの指定は省略できますか?

  • Tanda

    省略した場合に、Windowsのデフォルトフォントになるのか、あるいはフォント定義テーブルで指定されたフォントになるのか、試してみればすぐに分かると思いますよ。

  • nkmt

    ※FontSet関数のパラメータは指定を省略するとエラーになる分もあるようです。
     ※Magic xpa 3.2 で実験。

    FontSet関数の第2パラメータ(使用フォント)を指定せずに、
    FontSet関数を発行してもエラーにはならない。 これはGood

    しかし実験の結果
    第6パラメータ  ボールド   (論理)
    第7パラメータ  イタリック  (論理)
    第8パラメータ  取消線    (論理)
    第9パラメータ  アンダーライン(論理)
    を省略する事は出来ない。エラーになる。

    FontSet()関数に2つのパラメータを渡すだけのユーザ定義関数では、
    太字、斜線、取消線、下線などを維持したままフォントの縮小、拡大を
    再現する事は出来ないと思います。

    FontSet関数を実行する場合、fnt_rnt.jpn等フォントテーブルの
    それらの設定がどうなっているのか、
    Magicのプログラムから正確に把握する必要があるように思います。

    Puさんが言われる
    「現在使用しているfontの種類とかは取得できないので固定になるかもしれませんが」
    というのは的を獲ています。

    斜体、取消線、下線の使用頻度は個人的には少ないですが、
    「字を大きくしたい、小さくしたいだけなのに、
     太字、斜体、取消線、下線まで指定しなきゃいけないのですね。
     そのフォントテーブルで設定した通りでいいのに・・・」という事です。

    このような事が想定されたていたので
    フォントサイズのみ変更できる関数の存在を望みました。

    私としてはFontSet関数は今のままではちょっと残念。

    WebだとCtrl+マウスホイールぐりぐりで画面を縮小、拡大出来ますが
    ああいった事をクラサバ、PC RIAで容易に実現出来る日が来るといいなぁ
    と思っております。

    ワイド液晶が出始めた頃にその画面に最適化した大きさのシステムを、
    お客様がスクウェア液晶で動かした場合など特に、老眼の方から字が小さい
    と苦情が出る事がありました。

    Webのようにダイナミックに画面サイズを変更する為にもFontSet関数は存在意義が
    あるような気がします。なので私はフォントサイズの指定のみで済む関数の登場
    を望みました。

    FontSet関数を使わなくてもヤングにも老眼者にも使い易くする為のノウハウは
    別でありますが、ダイナミックに画面サイズを変更するシステムはまだ
    提供しておりません。

    プラスで余談ですが、MagicでCtrl+マウスホイールをイベントキャッチできると
    いいのですが。

  • nkmt

    ISHIJIMA様、役立つ情報大変ありがとうございます。

    スケーリング・・・知りませんでした。

    4.6での開発を自分はまだやっていないのですが、オンラインタスクもまだまだ進歩しそうですね。

    4.6のヘルプ、新機能を改めて目を通します。

  • nkmt

    今から試しますが、ヘルプ見る限り良さそうですね。

    フォームのスケーリング

    フォームタイプがSDI、MDI、および子ウィンドウの場合、実行時にクライアント領域をスケーリングできるようになりました。

    ステータスバーにあるコンボボックスを使用して、100%、110%、120%、130%、140%、150%、175%、200%からサイズを選択できます。

    特殊フラグ "SpecialFormScalingByDefault" を「Y」に設定することで、デフォルトでプロジェクト内のすべてのGUI表示フォームの[スクロール許可]プロパティの値を設定することができます。

  • nkmt

    フォームのスケーリング・・・・試しました。いいですね。面白い。

    テーブル内カラムの固定化 も取り入れたいと思います。

    新規案件では4.6で作りたいと思います。

  • Tanda

    nkmtさん

    ここで解説すると長くなりますのでやりませんが、まずはユーザ定義関数の作り方をMagicのマニュアルやヘルプ等で勉強されるといいと思いますよ。

    そんなに時間は掛からないと思います。

  • nkmt

    ユーザー定義関数はだいぶ昔から沢山使用しております。

  • Tanda

    puさん

    > 現在使用しているfontの種類とかは取得できないので固定になるかもしれませんが

    フォント指定を省略すれば、現在登録されているフォントがそのまま使用されることを確認しました。

  • Tanda

    nkmtさん

    ご自分で作られたユーザ定義関数のどこがいけないのかを、ここにアップして皆さんに添削してもらうというのもひとつの解決法かもしれないですね。

  • nkmt

    今回はこの件でユーザー定義関数はチャレンジしていませんよ。

  • nkmt

    今回の件、FontSet関数の事もよく理解出来ましたし
    4.6のフォームスケーリングも教えて頂けましたし満足です。

  • Tanda

    ユーザ定義関数を使用せず、FontSet()関数だけで実行した場合も、フォント指定を省略すれば現在登録されているフォントがそのまま使用されることを確認しました。

  • Tanda

    そういえば、私の連載でも過去にユーザ定義関数の作り方の講座をやってました。有償記事なのが心苦しいですが、もしよろしければお越しください。

    第87回 ユーザ定義関数の作り方 (2015年5月31日)
    第88回 ユーザ定義関数の作り方(2) (2015年6月30日)

  • Pu

    こんにちはPuです

    fontテーブルのfontサイズを変更したら画面レイアウトがそのままの場合

    文字が切れたり、入力項目だったら表示しきれなくなったりしませんか

    そもそもなんの為にダイナックにfontテーブルのfontサイズを変更するのか理解できていません

    いままでFontSet関数なかったけど不便と感じた事がなかったので

    でわ~でわ~

  • Tanda

    Puさん、おっしゃる通りだと思います。

  • Tanda

    ISHIJIMAさん、このフォーラムの以前の書き込みでは、変更したフォームサイズが記憶されないから使い物にならない、と回答されていましたが、その後、記憶されるようになりましたか?

     

  • nkmt

    登場順にPuさん、tandaさん、ISHJIMAさん コメントありがとうございました。


    4.6でのスケーリング機能にも大きな可能性を感じます。
    あまり大きくない画面で作成しておき、お客様に画面を見せたい時に拡大表示するなど。
    Office文書、ブラウザなど拡大、縮小して使う人はいますので、我々が作成するMagicのクラサバ、RIA
    の画面を拡大できるといいなぁと感じる人もいると思います。


    スケーリングは縮小も出来るようにいずれ期待したいです。
    最近は並行起動も多用しておりますので、大画面にいろんな画面を表示して使う人も
    いると思います。


    3.x?から登場したFontSet関数も同様に使える機能だと思います。
    オンラインタスク等の一つ上に、制御バッチタスクを設ければ、
    4.6のスケーリング同様の動きを実現出来るはずです。
    太字、斜体、取消線、下線の指定を省略できないのは残念ですが。

  • Pu

    こんにちはPuです

    状況に応じて画面の解像度を変更するのではダメですか?

    でわ~でわ~

  • nkmt

    お疲れ様です。

    > 状況に応じて画面の解像度を変更するのではダメですか?

    それもいいと思います。

     

    nkmt案のオンラインタスク等の一つ上に、制御バッチタスクを設けて、

    FontSet関数で画面のスケーリングを実現する・・・手間がかかりますもんね。(自爆)

  • Pu

    こんにちはPuです

    解像度の変更ならpowershellで可能なので、わりと簡単に実現できます。

    でわ~でわ~

  • nkmt

    > 解像度の変更ならpowershellで可能なので、わりと簡単に実現できます。

    いいですね。ありがとうございました。

サインインしてコメントを残してください。