TSynEdit のカラープロパティエディタを出すには?

解決


にゃんこ  2013-07-25 11:52:05  No: 44926

TSynEdit をご存知の方も多いと思うのですが、Lazarus のIDEから呼び出したエディタの設定のシンタックスハイライトの背景色や前景色の設定のようなダイアログをご存じないでしょうか。

参考画像:
lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20090815/d31deff2/attachment-0001.gif

これはLazarusのものなので、TSynEditのものではない気はするもののLazarusのソースはみてないのでよくわかりません。(Lazarusから流用する気は今のところありません)

TEditor(heditor.pas)をお使いの方もいらっしゃると思うのですが標準のカラー設定ダイアログがあったのを覚えていらっしゃる方もいるかと存じますが、そのような感じ物のがあったらそれを呼び出して使いたいのです。

TLazSynCustomTextAttributesなどをキーワードに検索したりソース内を探索しては見たのですが、それっぽいものが見当たらないので無いのかもしれません。

無ければ地道に作るしかないのですが、もしあったら途方もなく無駄な労力だったという事になってしまうので・・・。

ご存知でしたら教えてください。
よろしくお願いします。

コンパイル環境は 32bit で D7 です。
Lazarusも可です。


  2013-07-26 06:16:55  No: 44927

レスがつかないので1つだけ。
独自のコンポーネントエディタが作られているなら、コンポーネントに
付属しているはずです。dfmファイルを中心に探していけば、それほど
労なく有無を確認できます。

自分でも多少使ったことはありますが、そのような画面は見たことが
ありません。SynEditはデフォルトでは日本語表示に難があるので、
本気で使うならそれなりの根気が必要だと思います。過去にSynEditを
使った日本語エディタも見ましたが、文字化けが頻発していました。
Unicode版では治っているのかはわかりませんが。


にゃんこ  2013-07-31 10:33:00  No: 44928

レスありがとうございます。
dfm と lfm で探してみたのですが、なさそうです。
一応、dfm はあったものの、カラープロパティのエディタではなさそうな感じで、自分で作るしかなさそうです。

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

ちなみに、今の TSynEdit は試したところ日本語表示は特に問題なさそうです。
(といってもまだ本格的に使っているわけではなくて、適当に入力したりなどして試している段階です)


にゃんこ  2013-08-07 10:53:04  No: 44929

参考にする人がいるかわからないけど、一応、目途がついたので参考までに書いておきます。

Hilighterの色やスタイルは TSynCustomHighlighter.Attributes[]:TSynHighlighterAttributes から拾えます。

uses SynEditHilighter
var hilgihter: TSynCustomHighlighter
--
for i:= 0 to hilighter.AttrCount-1 do
begin
  with MyColorPanel.Create do
  begin
    Parent:= ScrollBox1;
    Align:= alTop;
    Caption:= hilighter.Attributes[i].Name;
    Background:= hilighter.Attributes[i].Background;
    Foreground:= hilighter.Attributes[i].Foreground;
    FrameColor:= hilighter.Attributes[i].FrameColor;
  end
end

のようにすれば名前と色やスタイルなどを列挙できます。

他に SynEdit の直接のメンバに TSynSelectedColor の
SynEdit.SelectedColor, IncrementColor, HilightAllColor, BracketMatchColor, FoldedCodeColor, MouseLinkColor, LineHighlightColor 等もあり、それらのカスタマイズも必要そうです。

とりあえず、地道にやっていけばなんとかなりそうなので解決とさせていただきます。


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

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






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