喫茶XRAYトップページ

[スレッド全体
]

[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さん

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


[5748] Re6:TEditを拡張したコンポーネントの作成返信 削除
2012/2/9 (木) 10:52:54 snail3
▼ TSさん

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

この画像は上が設計時、それをコンパイルして実行したときの画像をキャプチャ
してTImageに貼り付けた絵が下のイメージです。途中でプロパティは触ってい
ません。実行すると位置が変わってしまうんです。

ソースを見直しても、、、、あれソースが無い。

もう一度作り直して、あれ、実行しても変化しない?

こういうときは冷静になってやらないといけません。

でも会議資料もまだできていない。


すみません。自分で言い出しておいて、

もう一度問題点をまとめてみます。

[5749] Re7:TEditを拡張したコンポーネントの作成返信 削除
2012/2/9 (木) 16:21:26 Mr.XRAY
▼ snail3さん

> こういうときは冷静になってやらないといけません。

んだ,んだ.

> もう一度問題点をまとめてみます。

まぁ,あせらずに,会議資料の作成もあることですし.


[5754] Re8:TEditを拡張したコンポーネントの作成返信 削除
2012/2/11 (土) 10:11:16 snail3
▼ Mr.XRAYさん
> ▼ snail3さん
>
> > こういうときは冷静になってやらないといけません。
>
> んだ,んだ.
>
> > もう一度問題点をまとめてみます。
>
> まぁ,あせらずに,会議資料の作成もあることですし.


仕事が遅い snail3 です。
メーリングまでフォローしていただいてありがとうございます。

土日に少し落ち着いてから、調べようという気持ちはあったんですよ。
(只今は当面の3つの懸念事項、その1をやっています。
ちなみに Teditの件は、その3で予定しています。)
 

[5757] Re9:TEditを拡張したコンポーネントの作成返信 削除
2012/2/11 (土) 13:45:56 Mr.XRAY
▼ snail3さん

> メーリングまでフォローしていただいてありがとうございます。

いえいえ,気にしてください.失礼,間違えました.気にしないでください(笑)
ゴキブリじゃないですが,一匹見つけたら,最低10匹はいると言います.
今回の疑問も,多分,おそらく同じようなことを考えている方がいるかも
知れません.そのためにも,ですね.ハイ.

高木さんが,MLでレスしていますが,おそらく高木さんと同じように
どうレスしようかと思った方がいると思います.
コミュニティの場でレスするというのは,結構考えるものです.
何か助言してはあげたいが,と考えているうちに日数が経過してしまう...

# 非常に嫌われるゴキブリですが,寒い地方にはいないらしいです.


[5759] 仕切り直し返信 削除
2012/2/13 (月) 09:24:56 snail3
▼ Mr.XRAYさん

> # 非常に嫌われるゴキブリですが,寒い地方にはいないらしいです.

そうです。厳しい寒さに耐えきれず、私が住んでいる地方では冬に
死んでしまいます。

というのは少し昔の話、最近は家の断熱性が上がって越冬する
ゴキブリが増えています。
(当然我が家では無理です、先週のある朝、台所で0.2度、同じ日
愛知県豊橋のお客さん(マンションの中位階)は16.2度だったらしい)
今は電熱線が巻いてあるので、めったに凍りませんが昔は水道水も、
朝出ない日が多かった。内陸部の冬は厳しいです。

ストーブをつけて、10度を超えると暖かくて幸せを感じます。

話変わって、画面のコピーを添付しました。

 TLabel と TEdit をフォームに貼り付け、TLabelのColorプロパティ
を触っています。標準ではフォーム色と同じなので気にならない
のですが、色を変えることで画面全体の見栄えは良くなるのですが、
個々に見ると文字位置が不揃いで不格好です。

Top位置を合わせると、文字の位置が、文字位置を合わせると枠の
高さが違うため、不格好です。文字位置は TLabel と TEdit 共に
上付なんですが、 TLabel は Layout プロパティで中間に持ってくる
ことが可能、TEdit は Layout プロパティ無し。それで最初の質問に
繋がっていきます。
(リプレース元のVBプログラムもよく見ると文字サイズが小さかった
ので目立たないだけで文字位置は不揃いでした。)

[5760] Re:仕切り直し返信 削除
2012/2/13 (月) 11:15:39 TS
▼ snail3さん

私が同じく1行表示の見栄えを気にするのであれば
TLabel を使用せず、TLabelの代わりにTEditを使用して
Colorで背景色を変更、編集は不可で使用すると思います。

なにしろ、めんどくさがりやな者で。


[5762] Re2:仕切り直し返信 削除
2012/2/13 (月) 14:16:58 Mr.XRAY
▼ TSさん

> TLabel を使用せず、TLabelの代わりにTEditを使用して

TEditの代りにTMemoを使ったことがあります.
簡単に右寄せとかできるので.今はいろいろ方法がありますけど.
コントロールの名前にとらわれることはないですよね.


[5761] Re:仕切り直し返信 削除
2012/2/13 (月) 14:14:20 Mr.XRAY
▼ snail3さん

> そうです。厳しい寒さに耐えきれず、私が住んでいる地方では冬に
> 死んでしまいます。


ハハハッ.後で読み返してみたら,

>ゴキブリじゃないですが,一匹見つけたら,最低10匹はいると言います.
>今回の疑問も,多分,おそらく同じようなことを考えている方がいるかも
>知れません.そのためにも,ですね.ハイ.


ひどいこと書いてしまいました.
これじゃ,Delphiプログラマーはゴキブリ扱いですね (^^;

この一連のsnail3さんの文章と,図,参考になりますね.
デブキャンプのネタにもなるかも.


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