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; (..

    [Delphi] InputBox, InputQuery 사용법

    InputBox InputBox는 Vcl.Dialogs를 use하여 사용합니다. 아래는 샘플코드입니다. procedure TForm1.Button1Click(Sender: TObject); var sString: String; begin sString := InputBox('타이틀(Title)', '입력', '값을 입력하세요'); end; 버튼을 클릭했을 때 해당 프로시져가 실행되고 아래 InputBox가 실행됩니다. 값을 입력후에 Cancel을 클릭한다면 sString에는 아무런 값이 들어가지않고 OK를 클릭한다면 sString에는 입력한 값이 들어가있을 것입니다. inputQuery InputQuery는 True, False와 같은 Boolean을 반환합니다. procedure TForm1.Butto..

    [Delphi] abstract 와 virtual

    1. abstract abstract 추상화하여 해당 클래스의 implementation에서는 사용하지 않겠다는 것. 자식클래스에서 이를 override해서 사용해야 한다. 2. virtual 상위 클래스에서 virtual로 정의된 메소드는 하위 클래스에서 상속받을 때 하위클래스에 반드시 override로 정의 해야한다. // 하지만 override로 상속받을 경우 반드시 부모클래스의 해당 메소드에는 virtual 이 선언되어 있어야 한다.

    VAlign := ctaCenter 가 안먹히는 경우

    TMS Component TAdvStringGrid에서 vertical 가운데 정렬을 하고자 할 때 AdvStringGrid의 OnGetAlignment Event에서 VAlign := vtaCenter; 를 했는데 정렬이 안되어 찾은 구글링 결과를 적는다. Properties의 WordWrap 을 False로 바꾸면 된다.

    StrGrid to QuickReport

    QuickRep 컴포넌트의 Object inspector 의 Event OnNeedData 추가 procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean); begin MoreData := i < StringGrid.RowCount; end; QuickRep 컴포넌트의 Object inspector 의 Event BeforePrint 추가 procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); begin i := 0; // 변수 초기화 end; DetailBand 에 QRLabel 추가, BeforePrint 추가 proced..