Delphi

[Delphi] SelStart, SelText 사용법

반응형

SelStart 사용하기

Edit의 Text에 문자를 작성하고자 할 때 밑의 코드대로 작성한 경우 항상 포커스가 맨 앞으로 가게되어 원하는 글자를 쓸 수 가 없었습니다. (목표 글자 : ABCDEFG)

procedure TForm1.EditChange(Sender: TObject);
var i: Integer;
begin
  (Sender as TEdit).Text := UpperCase((Sender as TEdit).Text);
end;

 

 

해당 버그를 수정하기 위해 다음과 같이 코드를 수정하였고 버그를 해결할 수 있었습니다.

 

procedure TForm1.EditChange(Sender: TObject);
var
  i: Integer;
begin
  i := (Sender as TEdit).SelStart;
  (Sender as TEdit).Text := UpperCase((Sender as TEdit).Text);
  (Sender as TEdit).SelStart := i;
end;

 

 

원하는 구간 블록 지정하기

 

procedure TForm1.Button1Click(Sender: TObject);
begin
  edit.Text := '1234567890';
  edit.SetFocus;
  edit.SelStart  := 4;
  edit.SelLength := 5;
end;

 

다음과 같이 4번째부터 길이가 5만큼 블록이 생깁니다.

 

SelText

procedure TForm1.FormShow(Sender: TObject);
begin
  Edit1.Text := '00000';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.SelStart := 3;
  Edit1.SelText  := 'ABC';
end;

 

 

위 사진은 실행한 직후 사진입니다. 여기서 Button1을 Click하게 되면

 

 

다음과 같이 '00000' 사이 세번째 자리에 'ABC'가 들어가게됩니다.

 

SelText대신 아래와 같이 쓸 경우

Edit1.Text := 'ABC';

 

Edit1에는 'ABC' 만이 남게됩니다.

반응형

'Delphi' 카테고리의 다른 글

[Delphi] InputBox, InputQuery 사용법  (0) 2021.07.01
[Delphi] abstract 와 virtual  (0) 2021.04.29
VAlign := ctaCenter 가 안먹히는 경우  (0) 2021.04.20
StrGrid to QuickReport  (0) 2021.04.19