16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"TEditの操り方"
この発言に対し以下のコメントが寄せられています
#01264 ぺけでび さん RE:TEditの操り方
みなさん、こんばんは。 ぺけでびと申します。
現在以下のような理解と手順で開発しておりますが、「ここが違う
」とか「こんな方法もあるよ」等のアドバイスがいただければ幸い
です。
以下のサンプルはここの情報から見つけたものです。
入力可能桁数に達したら、次のエリアにフォーカスを移動
FILE:Uts1.pas
unit Uts1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
procedure Edit1Change(Sender: TObject); // インスペクタで指定すると
// Delphiが追加してくれる
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// Edit1.Textの内容が変化するたびに呼ばれる
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text) >= Edit1.MaxLength then // 書いたのはこの
Edit2.SetFocus; // 2行のみ
end;
end.
上書きモードでの入力(全角文字未対応)
FILE:Uts2.pas
unit Uts2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
// インスペクタで指定すると
// Delphiが追加してくれる
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// 文字が入力されるたびに呼ばれる
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Edit1.Text <> '' then begin // 空の場合は実行しない
Edit1.SelLength := 1; // 1文字選択
Edit1.ClearSelection; // 選択された文字を削除
//
// つまりは追加された後に、すかさず隣の文字を削除すれば
// 上書きしたように見えるということらしいです。
//
end;
end;
end.
Original document by ぺけでび 氏 ID:(YQJ03146)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|