どうも初めまして。
大変初歩的な質問で恐縮なのですが、Editを貼り付けると始めは
Textが左寄せの状態になっていると思うのですが、これを右寄せにするには
どのようにすればよいのでしょうか?
ヘルプで探してみたのですが、Textについては見つけられませんでした。
どうかよろしくお願い致します。
Editコンポーネントは、左寄せ1行編集の入力エリアを使用する場合の
コンポーネントです。つまり右寄せ入力はできません。
右寄せ入力を実現する方法はいくつかありますが、一番簡単なのは
メモコンポーネントを利用することでしょう。
メモコンポーネントで右寄せにするには、Alignmentプロパティを
taRightJustifyとすればいいでしょう。
メモコンポーネントで1行だけの入力エリアとしたいのであれば、
以下の通りもう少し手間がかかります。WantReturnsプロパティを
Falseにして、Linesプロパティを空欄にし、MaxLengthに最大入力
許容文字数を設定したあと、Ctrl+Enterキーで改行されるのを防ぐ
ためにOnKeyDownイベントでそのキーを受け付けないコーディングを
しなければなりません。
たしか…。エディットボックスのウィンドウスタイルに、そういうようなものがあったような記憶がありますけど…。
あいまいです。間違ってるかもしれません。
興味があれば、"ウィンドウスタイル"とかを検索語に入れて、
Googleなどで検索してみてください。
あと、DelphianWorld(http://home1.infonia.ne.jp/~delphian/delphi/)に、
そういう機能のついたTEditが公開されていたとおもいます。
探してみてください。
「チャミ」 あの〜(^^ゞ 私も右寄せEditが欲しいな〜ナンテ思うンですけど〜♪
「ゆうこ」 欲しかったら自分で作ればエエやん。これだけで右寄せ表示出来ルンよ。
type
TMyEdit = class(TCustomEdit)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
var
MyEdit1 : TMyEdit;
procedure TMyEdit.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or ES_RIGHT;
end;
「チャミ」 あの〜試してみても MyEditなんてな〜んにも表示されないンけど〜?
「ゆうこ」 コンポやないンから、フォームのOnCreateにコレ書かなアカンよ。
procedure TForm1.FormCreate(Sender: TObject);
begin
MyEdit1 := TMyEdit.Create(Self);
// MyEdit1のプロパティ設定
with MyEdit1 do begin
Visible := True;
Parent := Form1; // 置き場所
Height := 22;
Width := 80;
Left := 100;
Top := 20;
end;
end;
「チャミ」 じゃ〜ナカザワさんの年と同じくらいMyEdit使う時は大変ですよネ〜♪
「ゆうこ」 ウチの年と同じ数? 四捨五入して…8個くらいなんもないやん。
「チャミ」 エッエ〜?(^^;; どんな計算したら8になるんですか〜?(^^ゞ
「ゆうこ」 十の位を四捨五入したんよ。
katsuさん、たかみちえさん、ちゃーみー&ゆうこさんありがとうございます。
大変参考になりました。ちゃーみー&ゆうこさんわざわざ作って頂いてありがとう
ございます。
ツイート | ![]() |