お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"RE:TEditの操り方"

この発言は
#01263 ぺけでび さんのTEditの操り方
に対するコメントです

この発言に対し以下のコメントが寄せられています
#01265 ぺけでび さん RE:TEditの操り方

Widthの計算  新規作成のファームに、Labelを1つ、Editを2つ Buttonを1つ置きました。 FILE:Uts3.dfm object Form1: TForm1 Left = 192 Top = 107 Width = 308 Height = 227 Caption = 'Form1' Color = clBtnFace Font.Charset = SHIFTJIS_CHARSET Font.Color = clWindowText Font.Height = -12 Font.Name = 'MS Pゴシック' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 12 object Label1: TLabel Left = 64 Top = 24 Width = 59 Height = 12 Caption = 'オートWidth' end object Edit1: TEdit Left = 64 Top = 64 Width = 121 Height = 20 MaxLength = 2 TabOrder = 0 end object Edit2: TEdit Left = 64 Top = 128 Width = 121 Height = 20 MaxLength = 20 TabOrder = 1 end object Button1: TButton Left = 216 Top = 16 Width = 75 Height = 25 Caption = '実行' TabOrder = 2 OnClick = Button1Click end end FILE:Uts3.pas unit Uts3; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Edit2: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.DFM} // ボタンが押された時に呼ばれる procedure TForm1.Button1Click(Sender: TObject); var s: String; DrawRect: TRect; // 位置と大きさを格納するための型 begin // なぜ'0'かというと、横に広そうだったから // '1'なんかだと足りなくなるかもしれないと考えたから s := StringOfChar('0', Edit1.Maxlength+2); // 2はマージン // Win32APIで、なんと大きさを計算してくれるのだ DrawText(Label1.Canvas.Handle, PChar(s), -1, DrawRect, DT_CALCRECT); // 計算した幅に更新する Edit1.width := (DrawRect.Right - DrawRect.Left + 1); s := StringOfChar('0', Edit2.Maxlength+2); DrawText(Label1.Canvas.Handle, PChar(s), -1, DrawRect, DT_CALCRECT); Edit2.width := (DrawRect.Right - DrawRect.Left + 1); end; end. DrawText  Win32APIヘルプを参照しましょう Label1.Canvas.Handle  上のコールをするためのハンドル。 TEditにはなかったので、 Labelのハンドルを借りました。 フォントの種類とサイズによっ て幅が変化するようなので、フォントを一致させないとうまく動か ないと考えられます。 PChar(s)  これがうわさのポインタですね。 これを覚えると面白いです。 -1  Win32APIヘルプを参照しましょう DrawRect  ここに結果が格納されます。 DT_CALCRECT  Win32APIヘルプを参照しましょう。 計算要求の意味らしい。  Original document by ぺけでび 氏 ID:(YQJ03146)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum