PageControlのタブを縦置きで文字も縦書きにするには

解決


武田  2015-10-23 06:08:13  No: 47707

よろしくお願いします。Win8.1  環境はdelphi6  Personalです。
質問
PagecontrolをTabPositionをtpTopで使用していたのを
タブを横に置いてタブの文字を縦書きにしたいのです。、
下記コードのように色づけと文字セットをPageControl1DrawTabでやっています。

procedure Txxxxx.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
    with Control.Canvas do
    begin
        if Active then  
            Control.Canvas.Brush.Color := clAqua
        else
            Control.Canvas.Brush.Color := RGB(216,255,255);
        FillRect(Rect);
        TextRect(Rect,Rect.Left+4,Rect.Top+2,PageControl1.Pages[TabIndex].Caption);
    end;
end;

今回TabPositionを横に置くためtpLeftで使いたいと思います。
ところがタブに表示する文字を縦書きにしたいのですがうまくいきません。
教えていただければ幸いです。


通りすがり  2015-10-23 06:57:24  No: 47708

Orientationを2700(=270度)にした@付きフォント("@MS  ゴシック")を自分で生成して、Canvas.Font.Handleに入れてからTextRect、
でいかがですか?


武田  2015-10-23 07:55:32  No: 47709

通りすがりさん返事ありがとうございます。
すみません
>Orientationを2700(=270度)にした@付きフォント("@MS  ゴシック")を自分で生成して・・
斜めにした文字を作成するということですか?
ただ小生は芸術的センスがなく斜めの文字など作成する自信がありません。
具体的にどうすればいいのか見当が付きません。
何か参考になるサイトでもありましたら教えてください。
では。


通りすがり  2015-10-23 09:32:23  No: 47710

https://msdn.microsoft.com/ja-jp/library/cc428368.aspx
http://www.geocities.jp/asumaroyuumaro/program/tips/CreateFont.html

270度は斜めじゃありませんよw(WindowsではX軸から反時計回りで計るので、垂直に上から下に向かう方向になります)

Delphi 縦書き とかで検索するといいと思います。


武田  2015-10-23 20:46:20  No: 47711

通りすがりさんありがとうございました。
概要が見えてきました。
半年ぐらい Delphi TPageControl タブ縦置き  文字表示のような
的外れな検索をやっていました。
知識がないということは検索さえできませんね。
なかなかサイトを発見できないので思い余って質問しました。
ありがとうございました。
糸口がつかめましたので、これからやってみます。
では。


Mr.XRAY  2015-10-23 22:54:48  No: 47712

解決済みということですが,他の方にも参考になるかと思いますので.

>的外れな検索をやっていました。

決して的外れではないと思います.
具体的な用語で検索するのは普通だと思います.

デフォルトではない描画は,一般的に「カスタム描画」といいます.
描画は,文字列,図形,画像も Canvas に描画します.
文字は,Font (フォント) を設定します.
そこで例えば,以下のような語句で検索するということが考えられます.

[delphi canvas font 縦書き - Google検索]
https://www.google.co.jp/search?num=100&biw=1030&bih=693&noj=1&site=webhp&q=delphi+Canvas+font+%E7%B8%A6%E6%9B%B8%E3%81%8D&oq=delphi+Canvas+font+%E7%B8%A6%E6%9B%B8%E3%81%8D&gs_l=serp.12...0.0.2.31.0.0.0.0.0.0.0.0..0.0....0...1c..64.serp..6.3.252.guqX0R5F1gQ
(ちょっと長すぎるかな ?)

こんな記事を掲載しています.参考になれば

[カスタム描画における TCanvas ( 入門者用 )]
http://mrxray.on.coocan.jp/Delphi/Others/A_UltraIntro02.htm

[クラス名のプリフィックスの T ( 入門者用 )]
http://mrxray.on.coocan.jp/Delphi/Others/A_UltraIntro03.htm


武田  2015-10-24 02:52:51  No: 47713

Mr.XRAYさん返事をありがとうございました。

delphi canvas font 縦書き  で検索したら多くのサイトが見つかりました。
一つのサゼッションより多くの情報を与えられたほうが
自分のレベルにあう情報をセレクションできます。
結果をすぐに報告できませんが、いまからじっくりやってみます。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加