名前 題名 ▼ Mr.XRAYさん > > MaxLength := 100; > > の時,半角だったら 100 文字, > > 全て全角だったら 50 文字ですね. > > Delphi 2007 以前であれば,こんな感じですか. > Delphi 2009 以降では > if ByteType(Text, MaxLen) = mbLeadByte then > の部分を変える必要がありますね.あるいは... > > procedure TForm1.FormShow(Sender: TObject); > begin > Memo1.Lines.Clear; > Memo1.MaxLength := 10; > end; > > procedure TForm1.Memo1Change(Sender: TObject); > var > MaxLen: Integer; > begin > MaxLen := SendMessage((Sender as TCustomEdit).Handle, EM_GETLIMITTEXT, 0, 0); > if MaxLen <= 0 then > Exit; > with (Sender as TCustomEdit) do > begin > if Length(Text) <= MaxLen then > Exit; > if ByteType(Text, MaxLen) = mbLeadByte then > Dec(MaxLen); > Text := Copy(Text, 1, MaxLen); > SelLength := 0; > SelStart := MaxLen; > end; > end; > > [MaxLength をどうにかする (Delphi 7 〜 Delphi 2007)] > http://ht-deko.minim.ne.jp/tech043.html GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link