Q&A

  • Panel에 글자 line by line으로 뿌리려는데...
폼에 글자를 입력한 다음 Panel에 뿌려 주려고 합니다.
하지만, 아래와 같은 소스대로 하면, 쭈욱~ 일자로 나옵니다.

제가 하고 싶은 것은...
이름: 홍길동
주소: ######################
전화번호: ########

이런식으로 판넬에 뿌려주고 싶은데요.

아래 소스에서 panel1.caption := 다음에 나오는 소스를 어떤식으로 고쳐야 할까요?
'\n'도 넣어봤는데, 안 먹히더군요.

그냥 지나치시지 마시고, 꼭 조언 부탁드릴께요.
감사합니다.

procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then begin
panel1.caption := edit1.text+'님,'+'Number: '+maskedit1.text
+ 'Address: '+edit2.text+' ,'+edit3.text+' ,'+edit4.text+' '+edit5.text;
button1.SetFocus;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.clear;
maskedit1.clear;
edit2.clear;
edit3.Clear;
edit4.clear;
edit5.clear;
edit1.SetFocus;
end;
1  COMMENTS
  • Profile
    황준동 2006.11.17 19:43
    먼저 Panel 그 자체로서는 여러행을 표시할 수 없습니다.

    그 이유는 Panel의 부모인 TCustomPanel의 Paint 부분에서

    DrawText라는 API를 사용해서 글자를 화면에 뿌리는데

    Flag에 DT_VCENTER        (세로가운데)라는 값을 줘서 단일 행으로 뿌리도록 있기 때문입니다.

    따라서, '안녕하세요'#13'또만났네요' 이렇게 입력하면 첫행만 나오게 되는 것이죠.

    따라서 굳이 꼭 Panel에 나타내야만 한다면 TPanel 이나 또는 TCustomPanel을 상속 받으셔서,

    Paint 부분을 override 하시는 방법 밖에는 없습니다.

    즉, Paint 부분의 소스를 그대로 복사하셔서 DT_VCENTER 부분을 없애면 가능 하실 겁니다...

    그럼... ^^;