Delphi XE2의FireMonkey 입문(20) - TstyleBook(스킨, 스타일 관련)
2936 단어 Delphi
FMX에서 컨트롤은 임의로 그릴 수 있고 각 위젯의 개성화된 속성은 하나의 *로 통일적으로 저장할 수 있다.스타일 파일.
XE2는 "...\Program Files\Embarcadero\RAD Studio\9.0\Redist\styles\Fmx\"에서 다음과 같은 스타일 파일을 제공합니다.
Air.Style
Amakrits.Style
AquaGraphite.style
Blend.Style
dark.style
FMX.Platform.iOS.style
FMX.Platform.Mac.style
FMX.Platform.Win.style
GoldenGraphite.Style
iOS.Style
MacBlue.Style
MacGraphite.Style
RubyGraphite.style
Windows7.Style
파일은 TstyleBook에서 읽고 관리할 수 있는 텍스트 형식으로 창 파일과 유사합니다.그러나 프로그램에 스타일을 적용하려면 확실히 매우 간단하다.
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.StyleFileName := ' '; // exe ,
end;
창에 TstyleBook(StyleBook1)을 추가하면 스타일을 로드, 편집, 저장할 수 있습니다.StyleBook1을 편집한 후 창의 StyleBook 속성에 직접 부여할 수 있습니다.
procedure TForm1.Button1Click(Sender: TObject);
begin
Self.StyleBook := StyleBook1; //
end;
창의 StyleBook 등록 정보도 TstyleBook 객체이므로 직접 사용할 수 있습니다.
procedure TForm1.Button1Click(Sender: TObject);
begin
StyleBook := TStyleBook.Create(Self); // , StyleBook
StyleBook.FileName := ' '; //
//StyleBook.Resource.LoadFromFile(' '); //TStyleBook Resource(TStrings)
end;
컨트롤 스타일을 개별적으로 수정하면 다음과 같은 StyleLookup 속성을 사용할 수 있습니다.
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.StyleLookup := 'checkbox';
end;
//
*.style 파일의 StyleName 이름에는 규칙이 있습니다(이것은 내가 예상한 것).
1、 ( T) + 'style' //
2、 ( T) //
3、 , , StyleLookup
4、 StyleLookup , StyleName( StyleName ).
컨트롤 하위 위젯의 StyleName이 읽을 수 있는 것을 발견했습니다.
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Memo1.HScrollBar.StyleName);
ShowMessage(Memo1.VScrollBar.StyleName);
end;
ApplyStyleLookup(), UpdateStyle(), FindStyleResource()와 같은 다른 방법은 일반적으로 자동으로 호출됩니다.프로그램은 리소스에 기본 스타일을 포함합니다(이름:defaultstyle, 형식:RT RCDATA). 프로그램의 기본 스타일을 복원할 때는 다음을 수행합니다.
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.StyleFileName := ''; //
Form1.StyleBook := nil; // ,
end;
전에 어떤 학우가 창 제목 표시줄의 스타일을 어떻게 수정하느냐고 물었다.학습 과정에서 나는 매우 직접적인 방법을 발견하지 못했다.
당분간 제목 표시줄을 숨기고 다시 그릴 수밖에 없어요.
창체의 더 많은 메커니즘을 알게 되면 아마도 *.스타일 파일에서 방법을 찾습니다.
매우 천박해서, 누가 더 많은 것을 알고 있는지, 나에게 알려주기를 바란다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Delphi] TStringBuilder그리고 꼭 사용해야만 할까? 그림처럼 Heap 영역에 "Hello" 공간을 생성하고 포인팅을 한다. "Hello World" 공간을 새로 생성한 후 포인팅을 하게 된다. 결국 "Hello" 라는 String 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.