반응형
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 |