Q&A

  • [자답] XP스타일작업시 Tedit의 MaxLength 문제...
펑션함 만들어 봤습니다. 어떤 님이 길이를 직접 읽어서 컨트롤 한다해서...
그냥 쓰기에 넘 부족한점이 많아서  여러분들의 추가 기술을 요청합니다.
감사합니다.

function TForm1.Get_Edit_Length(str,EditL:string):Boolean;
var Gstr, Astr, Hstr : string;
   i : Integer;
   k : Double;
begin
   Result := True;
   Gstr := str;
   if Gstr = '' then Exit;
   Astr := '';
   Hstr := '';
   for i := 1 to length(Gstr) do  begin
      if ord(Gstr[i]) < 161 then
         Astr := Astr + Gstr[i] else
         Hstr := Hstr + Gstr[i];
   end;
   k := length(Astr)+ (length(Hstr));
   if StrToInt(EditL) < k then begin
      Result := False;
   end;
end;
procedure TForm1.Edit2Change(Sender: TObject);
var i : integer;
begin
   if not Get_Edit_Length(TEdit(Sender).Text,inttostr(TEdit(Sender).MaxLength)) then begin
      i := TEdit(Sender).SelStart;
      TEdit(Sender).SelStart := 0;
      TEdit(Sender).Text := Copy(TEdit(Sender).Text,0,TEdit(Sender).MaxLength);
      TEdit(Sender).SelStart := TEdit(Sender).MaxLength;
      //TEdit(Sender).SelStart := TEdit(Sender).SelStart+1;
   end;
end;

문제:
  Tedit의 maxLength := 10 일때
'우리나라대' 에서 우리 뒤에 '의'를 넣고자하면 안됩니다. '우리의나라'가 어렵네요..
영문인경우 'abcdefghij'의 경우  b 뒤에 다른 문자가 안됩니다.
0  COMMENTS