자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey [XE8] 컴포넌트 동적생성이 오동작합니다.
2015.10.30 09:17
본 게시판 사용시 당부 사항
* 이 게시판은 누구나 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
항상 수고가 많으십니다..
컴포넌트를 동적으로 생성할 일이 많아서, 작업하던 도중 신기한 현상을 겪었습니다.
아직도 해결은 못한상태구요..
TText 같은 컴포넌트는 동적생성할때 폰트크기가 적용되는 반면, TMemo 나 TEdit TLabel 은
동적생성시 폰트크기가 적용되지 않네요..
아래의 예를 보면, 폰트크기를 지정해서 동적생성 하고 있는데.. 폰트 속성이 전혀 먹지않습니다.
그리고 신기하게 폼에 Parent 한 이후에도 폰트속성이 적용이 안되더군요..
그냥, Tool Palette 에서 Memo1을 폼에 올리면, 폰트 속성등이 잘되는데.. 아래처럼
동적으로 올렸을때는 속성이 안바뀌는 이유를 모르겠습니다..
procedure TForm1.Button4Click(Sender: TObject);
var
txt_answer : TMemo;
a : TText;
begin
txt_answer := TMemo.Create(form1);
txt_answer.Position.x := 10;
txt_answer.Position.y := 10;
txt_answer.Width := 300;
txt_answer.TextSettings.Font.Size := 30;
txt_answer.TextSettings.FontColor := $FF717171;
txt_answer.Lines.Text := 'text';
txt_answer.Parent := form1;
a := TText.Create(nil);
a.Text := 'aaa';
a.TextSettings.Font.Size := 30;
a.Parent := form1;
end;
Firemonkey [XE8] 컴포넌트 동적생성이 오동작합니다.
2015.10.30 09:17
본 게시판 사용시 당부 사항
* 이 게시판은 누구나 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
항상 수고가 많으십니다..
컴포넌트를 동적으로 생성할 일이 많아서, 작업하던 도중 신기한 현상을 겪었습니다.
아직도 해결은 못한상태구요..
TText 같은 컴포넌트는 동적생성할때 폰트크기가 적용되는 반면, TMemo 나 TEdit TLabel 은
동적생성시 폰트크기가 적용되지 않네요..
아래의 예를 보면, 폰트크기를 지정해서 동적생성 하고 있는데.. 폰트 속성이 전혀 먹지않습니다.
그리고 신기하게 폼에 Parent 한 이후에도 폰트속성이 적용이 안되더군요..
그냥, Tool Palette 에서 Memo1을 폼에 올리면, 폰트 속성등이 잘되는데.. 아래처럼
동적으로 올렸을때는 속성이 안바뀌는 이유를 모르겠습니다..
procedure TForm1.Button4Click(Sender: TObject);
var
txt_answer : TMemo;
a : TText;
begin
txt_answer := TMemo.Create(form1);
txt_answer.Position.x := 10;
txt_answer.Position.y := 10;
txt_answer.Width := 300;
txt_answer.TextSettings.Font.Size := 30;
txt_answer.TextSettings.FontColor := $FF717171;
txt_answer.Lines.Text := 'text';
txt_answer.Parent := form1;
a := TText.Create(nil);
a.Text := 'aaa';
a.TextSettings.Font.Size := 30;
a.Parent := form1;
end;
자답 :
StyledSettings에 변경하시려는 옵션을 빼주셔야합니다.
폰트크기와 폰트색상을 변경하시려면
아래의 코딩처럼 두옵션을 뺀 나머지만 넣어주시면 됩니다.
txt_answer.StyledSettings := [TStyledSetting.Family,
TStyledSetting.Style,
TStyledSetting.Other];