喫茶XRAYトップページ

[スレッド全体
]

[5730] TEditに関して教えて下さい返信 削除
2012/2/8 (水) 10:02:44 snail3
某メーリングでも聞いたのですが

TEditで上下方向の真ん中表示する方法知りませんか

無理だと思う。逆にこうすればできるかもしれない?

程度でかまいません。なにとぞ、お知恵をお貸し下さいませ。m(._.)m



[5733] Re:TEditに関して教えて下さい返信 削除
2012/2/8 (水) 14:07:50 Mr.XRAY
▼ snail3さんこんにちは.

> 某メーリングでも聞いたのですが

TSさんがレスしていますが,MLの発言私も読んでいます.
レスしようかどうか悩んでいました.今もですか.
う〜む.ちょっと待ってください.


[5734] Re2:TEditに関して教えて下さい返信 削除
2012/2/8 (水) 16:33:54 Mr.XRAY
▼ snail3さんこんにちは.

> う〜む.ちょっと待ってください.

いつまでも考えていてもしょうがないので  (^^;

>無理だと思う。逆にこうすればできるかもしれない?

標準のコンポに希望する機能がない場合
「なければ作る」がDelphiの基本的なインスタンスだと思います.
つまり,コンポーネントを作るということです.
クラスヘルパーを使うというのもありますが,この場合はコンポーネント
ではないかと思います.

この,縦方向のアライメントが可能なコンポーネントは,Office YUAiに
ありましたが(ソースなし,dcuのみの配布),2年前からリニューアル中
でダウンロードできないようです.
http://www.officeyuai.com/

もしかしたらここにあるかも知れません.
http://www.vector.co.jp/soft/winnt/prog/se329224.html

じゃぁ,何故MLでそうレスしてくれないんだよー,
と思うかも知れませんが,そこは,駆け引きなんじゃないかと思います.
将棋や囲碁と同じで,こうレスしたら,次はどうくるか,とか.. (笑)
某掲示板もそういうことがあります.

例えば
>Delphiを使った他の技術ってどんなものがありますか?
>http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+201201/12010010.txt


というのがありました.これをレスしたら,何か永遠に続く気がします.
どこかで逃げるタイミングが必要です.
(ただし,これは,あのスレッドの展開からの予想です)


TSさんのレスのように,多くの方は,TEditは,文字サイズで縦方向が
自動調整のサイズでいいと考えているのかも知れません.

では,がんばってください.


[5735] TEditを拡張したコンポーネントの作成返信 削除
2012/2/8 (水) 16:39:53 Mr.XRAY
> 「なければ作る」がDelphiの基本的なインスタンスだと思います.

もしコンポーネントを作成する場合,TEditから派生するのではなく,
TCustomControlからのコンポーネントがよろしいかと思います.
というのは,Paintメソッドを実装しないと,無理があります.
ここで,独自のカスタムの描画コードを書くわけです.

TCustomControl = class(TWinControl)
 
TEdit = class(TCustomEdit
              TCustomEdit = class(TWinControl)

となっています.
TEditはTCustomEditのprotectedなプロパティをpublicにしているだけです.
したがって,本体のコードは,TCustomEditにあります.
TCustomEditもTCustomContolもTWinControlの直接の子クラスです.
TCustomControlには,Canvasプロパティもあります.

TCustomControl = class(TWinControl)
TCustomEdit = class(TWinControl)



[5737] Re:TEditを拡張したコンポーネントの作成返信 削除
2012/2/8 (水) 17:38:24 snail3
▼ Mr.XRAYさん
お返事ありがとうございます。

> > 「なければ作る」がDelphiの基本的なインスタンスだと思います.

TEdit もしくは TCustomEdit から簡単に派生させてもできない事が
解って。すっきりしました。

簡単に TEdit もしくは TCustomEdit から変更すればできるかもしれない
と、らくをしようとの想いから結果として無駄な時間と
皆さんにもご迷惑をおかけしました

実は TNumEdit という数値入力用のコンポーネントが手元にあります。
これはTCustomControlから派生して作られています。
コメントを入れて約2800step。こいつの数値以外をカットしている部分を
外せば希望する機能はできると最初は思っていたのですが。、、、

ご迷惑をおかけしました。

[5738] Re2:TEditを拡張したコンポーネントの作成返信 削除
2012/2/8 (水) 17:50:54 Mr.XRAY
▼ snail3さん

> TEdit もしくは TCustomEdit から簡単に派生させてもできない事が

このあたりは,Delphi開発当時のポリシーというか,なんだかの理由で
こうなっているのかと思われます.
今,この仕様を変更してしまうと,混乱が生じてしまうと思うんです.
このまま受け入れるしかないでしょう.

この意味で,Fire Monkey(FMX)にいろいろな仕様変更があったのは
ある意味やむを得ないのではないかと思っています.

> ご迷惑をおかけしました。

全く迷惑ではありません.なんせここは「喫茶」ですから.
MLとは違いますから (^^)
あっ,そうそう,MLの方にも一言入れておいた方がいいと思います.

もし,その際,このスレッドのリンクが必要なら,以下ですので.
http://mrxray.on.coocan.jp/bbs/DelphiBBS/mrxray_delphifan_coffe.cgi?tree=s5730


[5740] Re3:TEditを拡張したコンポーネントの作成返信 削除
2012/2/8 (水) 20:08:10 TS
▼ snail3さん

>添付した画面のコピーは設計時と実行時に表示されるTEditとTEdit
>コンポーネントです。設計時はあまり気にならないけど実行時は
>TEdit の文字が下方向に、TLabelのLayoutプロパティを触ると逆に
>設計時の位置が気になってしまって。


この画面ではTEditの文字の位置は変更がありません。
TLabelの位置が上に上がっています。

Delphi2010でTEditとTLabelを配置して実行しても設計時と実行時に
位置の変更はありませんでした。


[5743] Re4:TEditを拡張したコンポーネントの作成返信 削除
2012/2/8 (水) 21:33:15 snail3
▼ TSさん

> Delphi2010でTEditとTLabelを配置して実行しても設計時と実行時に
> 位置の変更はありませんでした。


5736の画像を見て下さい。XE2 で実行しました。

上段の画像が設計時、下段が実行時のキャプチャーです。
実行時は商品の文字が少し下がっているように見えませんか?

目の錯覚では無いと思うのですが、いかがでしょう


[5744] Re5:TEditを拡張したコンポーネントの作成返信 削除
2012/2/8 (水) 21:50:33 TS
▼ snail3さん

線を入れてみました、赤線の幅は上下同一です。
見にくいかも知れませんが上下に2本づつ赤線があります。

TLabelの位置が違っていると思いますが。

[5747] Re6:TEditを拡張したコンポーネントの作成返信 削除
2012/2/9 (木) 06:47:07 Mr.XRAY
▼ TSさん

なるほど,こうして図にすると明確ですね.
本当にコンポを作成する必要があるか,考えた方がいいかも知れません.
コンポの作成は,小規模ならともかく,大変です.(^^;
プログラムは何にしても大変ですが.


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