喫茶XRAYトップページ

[スレッド全体
]

[5360] Re:カンマ単位返信 削除
2011/10/3 (月) 18:28:35 たてぐや
▼ Mr.XRAYさん

> SetFont(Font1, Font2, Font3, ...)
>
> とすると,日本はFont1で,東京都はFont2で,中国はFont3の設定で表示,
> または印刷されるとか?


 こんなのだと思っていました。

procedure Textprint(x, y , p : integer; s : string);
begin
  with plprev1.Canvas do begin
    Font.Size := p;
    Textout(x, y , s)
  end;
end;

を作っておいて

Textprint(x座標,y座標,フォントサイズ,文字列);

 外してたらごめんなさい。


[5362] Re2:カンマ単位返信 削除
2011/10/3 (月) 20:10:52 Mr.XRAY
▼ たてぐやさん

おおっ,なるほど.こんなんですか.
以下のようにした方がいいと思います.
この程度なら,TplPrevに組み込む必要はないでしょう.

procedure Textprint(x, y: Integer; p : Double; s : string);
begin
  with plprev1 do begin
    FontSize := p;
    Canvas.Textout(x, y , s)
  end;
end;


[5364] Re3:カンマ単位返信 削除
2011/10/4 (火) 09:23:38 アンディ
▼ Mr.XRAYさん
> ▼ たてぐやさん
>

たくさんのアドバイスありがとうございます。


Mr.XRAYさんのフォントサイズのコンマ指定ですがソースを見らして
いただきましたがHeightにはいってしますので厳密にはコンマ単位に
なっていないような。前に実験して確かめました。

FCanvas.Font.Height:=-RoundOff(S*254.0/72.0);

VBではたしかフォント、penサイズも1/1000単位でなっていたと思います。
画面では解像度の問題で間隔が狭くなるとつぶれますが印刷では
できていました。
同じAPIでもマイクソフト仕様と違うんではないでしょうか。

それから、パス設定ですが今日は管理者権限でdelphiを起動してやって見ます。
インストールするコンポーネントは自動でパスが入るようですが
手動で入れても警告も出ずに保存されずパス画面を開くと出てきませんでした。
また報告します。

昨日、パソコンの機嫌が悪かったのか動作が鈍かったのが、今日は
快適に動いています。
もう、どうしてかと考えるのはやめてパソコンの機嫌をとるようにします。


Saraさん XPのCD情報ありがとうございます。
最初どういうことかわからなくてインターネットで調べてnLiteを
ダウンロードしましたがXPまでとありましたので、また調べると
SPというのがあると知っていましたが疲れてまだやっていませんでした
この情報は助かります。

[5365] Windows APIでの寸法指定返信 削除
2011/10/4 (火) 12:38:48 Mr.XRAY
▼ アンディさん

> Mr.XRAYさんのフォントサイズのコンマ指定ですがソースを見らして
> いただきましたがHeightにはいってしますので厳密にはコンマ単位に
> なっていないような。前に実験して確かめました。
>
> FCanvas.Font.Height:=-RoundOff(S*254.0/72.0);


まだカンマ単位の意味がよく理解できていませんが (^^;
もし,小数点以下の意味であれば,Windows APIではそのような扱いの関数類
はありません.
以下のリストのScallingのように,

   SetMapMode
   SetWindowExtEx
   SetViewPortExtEx
http://mrxray.on.coocan.jp/Delphi/plSetPrinter/ScallingDraw.htm#list1

をどう設定するかによります.
小数点以下の値で設定可能にするかは,そのアプリのコーディングによります.
したがって,前にたてぐやさんが書かれたように,関数類のルーチンを作成すれば,
大元はWindowsのAPIを使用しているのですから,いくらでも仕様は変更できます.
もちろん,実力と経験と知識にもよるでしょうけど (^^;

VBは遥か昔にか使ったことしかないですが,
VBにできて,Delphiにできないということは基本的にはないと思います.
またその逆も.ただし,非常に面倒な場合があるということは事実でしょう.

VBA(VB for Applicatio),これは主にワードやエクセル用にありますが,
こちらには,特にワードは文書をmm単位(mmの小数点以下の指定も含めて)で
扱う必要があるので,そのような指定が可能となっているハズです.
(内部でWindows APIをそのように使用可能にしている)

まっ,ここは喫茶店ですので気軽に.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82