喫茶XRAYトップページ


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

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

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

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



[5732] Re:TEditに関して教えて下さい返信 削除
2012/2/8 (水) 13:51:17 TS
▼ snail3さん
> 某メーリングでも聞いたのですが

レスが付かない訳はTEditは普通こうゆう使用方法は必要ない
から考えてみようと思われないからだと思われます。

表示文字の編集が必要ないならMr.XRAYさんのラベルでも
代用可能では、編集が必要ならStringGridでセルを1つに
設定してTEditの様に見せるのでしたら、過去に色々な
表示方法が検討されていると思いますが。


[5736] Re2:TEditに関して教えて下さい返信 削除
2012/2/8 (水) 16:57:07 snail3
▼ TSさん

お返事ありがとうございます。

> > 某メーリングでも聞いたのですが
>
> レスが付かない訳はTEditは普通こうゆう使用方法は必要ない
> から考えてみようと思われないからだと思われます。


今まであまり気にしないようにして、効率第1でアプリを作ってい
ましたが、今回はVBの焼き直しということもあって、少し見栄え
も気にして作ってみようと思って作業を始めました。

そうすると変に気になって、自分なりにも色々と調べてみましたが、
むなしく時間ばかり過ぎてしまいました。 (>_<)

 
> 表示文字の編集が必要ないならMr.XRAYさんのラベルでも
> 代用可能では、編集が必要ならStringGridでセルを1つに
> 設定してTEditの様に見せるのでしたら、過去に色々な
> 表示方法が検討されていると思いますが。


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

StringGridなども考えてみましたが、これだと他の部分での作業量
が膨大になりそうで、すぐにあきらめました。

できるできないがハッキリすれば、すっきりして仕事に集中できる
とは思って、皆さんのご迷惑をかえりみずに聞いてみました。



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

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


[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さんの文章と,図,参考になりますね.
デブキャンプのネタにもなるかも.


[5763] 見栄え,デザイン,体裁返信 削除
2012/2/13 (月) 14:32:29 Mr.XRAY
MLの方にもたくさんレスがついていますね.
参考のために,リンク貼っておきます.

http://www.freeml.com/delphi-users/2412/latest?sid=82ddb54a4eec30e9d90a5cb6a19518ea

中々面白いというか,興味ある話題です.
多くのアプリ開発者にとっても「体裁」「デザイン」というのは興味ある話題
ではないでしょうか.
川上さんのレスにありますが,クライアントも,以外と体裁等を指摘することも
ありますが,時間が経つとあまり気にしないということもあるかも知れません.

我々も,結構体裁を気にしないで使っているアプリとかありますし.
それでも,結構体裁は重要な要素であることも事実でしょうね.
アプリに限らず.

[5764] Re:見栄え,デザイン,体裁返信 削除
2012/2/13 (月) 14:36:01 Mr.XRAY
[D6] FormのSize
http://delphi.arcadiangarden.com/delphilounge/webconv.dll/body?No=22557

もある意味,そうなのかな?
状況がよく理解できませんが.


[5766] Re2:見栄え,デザイン,体裁返信 削除
2012/2/13 (月) 19:50:15 DEKO 〔HomePage
> [D6] FormのSize
> http://delphi.arcadiangarden.com/delphilounge/webconv.dll/body?No=22557
> もある意味,そうなのかな?


気持ちは解ります。

iPhone や iPad 等は画面サイズ決め打ちで作れるので、ボタンなんかを画像で作ったりもできるのですが、
マルチウィンドウの OS ではあらゆるサイズのディスプレイを想定しなくてはなりません。

例えば、昔作ったアプリケーションがリサイズに対応していて、
800x600 以上だったら大抵ちゃんと表示されるというものであっても、

・ワイドディスプレイ
・マルチディスプレイ
・中途半端な解像度のディスプレイ

で "体裁良く" というのはなかなか難しい物があります。
VCL のスケール変更では、特定のフォントサイズの時に表示がおかしくなったりしますし。

# FireMonkey のスケール変更では、グリッドの幅等も追従します。

[5771] Re3:見栄え,デザイン,体裁返信 削除
2012/2/13 (月) 21:11:59 Mr.XRAY
▼ DEKOさん

> VCL のスケール変更では、特定のフォントサイズの時に表示がおかしくなったりしますし。

あっ,これ,昔MLかNiftyのフォーラムで見たような.
奇数サイズとか偶数サイズ関係もあったような

> # FireMonkey のスケール変更では、グリッドの幅等も追従します。

ムムムッ.恐るべし,FireMonkey!!


[5765] Re:見栄え,デザイン,体裁返信 削除
2012/2/13 (月) 15:36:10 snail3
▼ Mr.XRAYさん

> 多くのアプリ開発者にとっても「体裁」「デザイン」というのは興味ある話題
> ではないでしょうか.


工数=お金がからむ問題ですからね。通常目的とする機能が十分なら
それ以上お金を出さないのが普通。

> 川上さんのレスにありますが,クライアントも,以外と体裁等を指摘することも
> ありますが,時間が経つとあまり気にしないということもあるかも知れません.
>
> 我々も,結構体裁を気にしないで使っているアプリとかありますし.
> それでも,結構体裁は重要な要素であることも事実でしょうね.
> アプリに限らず.


実際に使う人は機能重視なんだけど、横から見ている人は細かい人が多いと
思います。



[5767] Re2:見栄え,デザイン,体裁返信 削除
2012/2/13 (月) 20:01:28 DEKO 〔HomePage
> 工数=お金がからむ問題ですからね。通常目的とする機能が十分なら
> それ以上お金を出さないのが普通。


ある意味真理です。
ま、急がせるくせに 「見栄えはよくしろ」 というお客さんはたまにいます。

# 予算の範囲内でやってあげる事が多いですけど、
# プライオリティ的には後回しですね。

> 実際に使う人は機能重視なんだけど、横から見ている人は細かい人が多いと
> 思います。


実際に使う人もデザインがよければそれに越したことはない訳ですが、
結局は予算とのトレードオフです。ただ、

「上役が見て予算に納得するようなビジュアル的な何かを作ってくれ」

と言うのはままあります。現場のヒトは画面を見て理解できるのですけど、
上役のヒトには "それが何を意味しているのか?" が理解出来ない事がありますので。

そこで、ビジュアル的に "見えるもの" を作らされる事になる訳です。
あまり生産性向上には寄与しなかったとしてもです...ま、大人の都合ですね (w


[5768] Re2:見栄え,デザイン,体裁返信 削除
2012/2/13 (月) 20:36:53 snail3
コンポーネントを TLabel から TStatic に置き換えてみました。
とりあえず画面の一部をキャプチャしてしてみました。

TLabel FontSize = 12 の時の標準 Height は 22、TEdit の Height は 24、
行間サイズは 26 でレイアウトしてあります。

図の上段と下段は横線有無の違いだけです。

標準 Height では TEdit と並べた TLabel は行間が空きすぎているように
感じます。Heightを TEditと合わせ、Layout を tlCenter にすると文字位置
はTEdit と違いがわかりません。フォントサイズを変えてみましたが
文字位置の違いはわかりません。

まとめ
☆TLabel TEdit 並べた時に文字位置の違いを気にならないようにするポイント☆
1.Autosize プロパティは False
2.TLabel TEdit のFont プロパティは同じにする。
3.Height は TEdit に合わせる
4.TLabel Layout は tlCenter にする。


お騒がせしましたが、新しいコンポを作らなくても、
単純にプロパティ設定で気にならないようになりました。

さんざん騒いで、結論はこれだけでした。 m(._.)m

お騒がせしました。



[5770] Re3:見栄え,デザイン,体裁返信 削除
2012/2/13 (月) 21:06:59 Mr.XRAY
▼ snail3さん

> お騒がせしましたが、新しいコンポを作らなくても、

いやいや,そんなもんですよ.
DEKOさんも言っていますが,結構重要だったりする体裁というかデザイン
ですから.
結構時間がかかったりするもんだと思います.

それに,MLでレスが中々つかなかったことを考えれば,いい話題提供だったん
じゃないかと思います.よくぞこの喫茶XRAYにおいでいただいたものです.
コンポを作成するのもいいですが,標準のコントロールで出来るにこした
ことはないと思います.
この[5768]の記事は意味あるというか,参考になると思いますけど.

お疲れ様でした.これに懲りずまたお越しくださいませ.
コーヒーはでませんけど.


INCM/CMT
Cyclamen v3.82