2013-04-16 4 views
0

기본 페이지의 RichEditorViewer의 글꼴 색 속성을 변경해야하지만 컨트롤 이름이나 속성 이름을 찾을 수 없습니다. 이걸로 도움이 필요합니다 ...InnoSetup, RichEditorViewer의 색을 변경하는 방법

InfoBeforePageRichEditorViewer (I 글꼴 색상을 변경해야) :

const 
    Custom_Height = 570; 
    Custom_ProgressBar_Height = 30; 
    Page_Color = $7b2b68; 
    Page_Color_Alternative1 = clblack; 
    Page_Color_Alternative2 = clwhite; 
    Font_Color = $fffbff; 

var 
    DefaultTop, 
    DefaultLeft, 
    DefaultHeight, 
    DefaultBackTop, 
    DefaultNextTop, 
    DefaultCancelTop, 
    DefaultBevelTop, 
    DefaultOuterHeight: Integer; 

procedure InitializeWizard(); 
begin 

    DefaultTop := WizardForm.Top; 
    DefaultLeft := WizardForm.Left; 
    DefaultHeight := WizardForm.Height; 
    DefaultBackTop := WizardForm.BackButton.Top; 
    DefaultNextTop := WizardForm.NextButton.Top; 
    DefaultCancelTop := WizardForm.CancelButton.Top; 
    DefaultBevelTop := WizardForm.Bevel.Top; 
    DefaultOuterHeight := WizardForm.OuterNotebook.Height; 

    // Pages (Size) 
    WizardForm.Height := Custom_Height; 
    WizardForm.InnerPage.Height := WizardForm.InnerPage.Height + (Custom_Height - DefaultHeight); 
    WizardForm.LicensePage.Height := WizardForm.LicensePage.Height + (Custom_Height - DefaultHeight); 

    // Pages (Color) 
    WizardForm.color := Page_Color_Alternative1; 
    WizardForm.FinishedPage.Color := Page_Color; 
    WizardForm.InfoAfterPage.Color := Page_Color; 
    WizardForm.InfoBeforePage.Color := Page_Color; 
    WizardForm.InnerPage.Color := Page_Color; 
    WizardForm.InstallingPage.color := Page_Color; 
    WizardForm.LicensePage.Color := Page_Color; 
    WizardForm.PasswordPage.color := Page_Color; 
    WizardForm.PreparingPage.color := Page_Color; 
    WizardForm.ReadyPage.Color := Page_Color; 
    WizardForm.SelectComponentsPage.Color := Page_Color; 
    WizardForm.SelectDirPage.Color := Page_Color; 
    WizardForm.SelectProgramGroupPage.color := Page_Color; 
    WizardForm.SelectTasksPage.color := Page_Color; 
    WizardForm.UserInfoPage.color := Page_Color; 
    WizardForm.WelcomePage.color := Page_Color; 

    // Controls (Size) 
    WizardForm.InfoAfterMemo.Height := (Custom_Height - (DefaultHeight/2)); 
    WizardForm.InfoBeforeMemo.Height := (Custom_Height - (DefaultHeight/2)); 
    WizardForm.InnerNotebook.Height := WizardForm.InnerNotebook.Height + (Custom_Height - DefaultHeight); 
    WizardForm.LicenseMemo.Height := WizardForm.LicenseMemo.Height + (Custom_Height - DefaultHeight); 
    WizardForm.OuterNotebook.Height := WizardForm.OuterNotebook.Height + (Custom_Height - DefaultHeight); 
    WizardForm.ProgressGauge.Height := Custom_ProgressBar_Height 
    WizardForm.ReadyMemo.Height := (Custom_Height - (DefaultHeight/2)); 
    WizardForm.Taskslist.Height := (Custom_Height - (DefaultHeight/2)); 
    WizardForm.WizardBitmapImage.Height := (Custom_Height - (DefaultHeight - DefaultBevelTop)); 
    WizardForm.WizardBitmapImage2.Height := (Custom_Height - (DefaultHeight - DefaultBevelTop)); 

    // Controls (Location) 
    WizardForm.BackButton.Top := DefaultBackTop + (Custom_Height - DefaultHeight); 
    WizardForm.Bevel.Top := DefaultBevelTop + (Custom_Height - DefaultHeight); 
    WizardForm.CancelButton.Top := DefaultCancelTop + (Custom_Height - DefaultHeight); 
    WizardForm.LicenseAcceptedRadio.Top := WizardForm.LicenseAcceptedRadio.Top + (Custom_Height - DefaultHeight); 
    WizardForm.LicenseNotAcceptedRadio.Top := WizardForm.LicenseNotAcceptedRadio.Top + (Custom_Height - DefaultHeight); 
    WizardForm.NextButton.Top := DefaultNextTop + (Custom_Height - DefaultHeight); 
    WizardForm.Top := DefaultTop - (Custom_Height - DefaultHeight) div 2; 
    //WizardForm.ProgressGauge.Top := (DefaultHeight/2) 

    // Controls (Back Color) 
    WizardForm.DirEdit.Color := Page_Color_Alternative2; 
    WizardForm.GroupEdit.Color := Page_Color_Alternative2; 
    WizardForm.InfoAfterMemo.Color := Page_Color_Alternative2; 
    WizardForm.InfoBeforeMemo.Color := Page_Color_Alternative2; 
    WizardForm.LicenseMemo.Color := Page_Color_Alternative2; 
    WizardForm.MainPanel.Color := Page_Color; 
    WizardForm.PasswordEdit.Color := Page_Color_Alternative2; 
    WizardForm.ReadyMemo.Color := Page_Color_Alternative2; 
    WizardForm.Taskslist.Color := Page_Color; 
    WizardForm.UserInfoNameEdit.Color := Page_Color_Alternative2; 
    WizardForm.UserInfoOrgEdit.Color := Page_Color_Alternative2; 
    WizardForm.UserInfoSerialEdit.Color := Page_Color_Alternative2; 

    // Controls (Font Color) 
    WizardForm.FinishedHeadingLabel.font.color := Font_Color; 
    WizardForm.InfoafterMemo.font.Color := Font_Color; 
    WizardForm.FinishedLabel.font.color := Font_Color; 
    WizardForm.DirEdit.font.Color := Page_Color_Alternative1; 
    WizardForm.Font.color := Font_Color; 
    WizardForm.GroupEdit.font.Color := Page_Color_Alternative1; 
    WizardForm.InfoBeforeMemo.font.Color := Page_Color_Alternative1; 
    WizardForm.LicenseMemo.font.Color := Page_Color_Alternative1; 
    WizardForm.MainPanel.font.Color := Font_Color; 
    WizardForm.PageDescriptionLabel.font.color := Font_Color; 
    WizardForm.PageNameLabel.font.color := Font_Color; 
    WizardForm.PasswordEdit.font.Color := Page_Color_Alternative1; 
    WizardForm.Taskslist.font.Color := Font_Color; 
    WizardForm.UserInfoNameEdit.font.Color := Page_Color_Alternative1; 
    WizardForm.UserInfoOrgEdit.font.Color := Page_Color_Alternative1; 
    WizardForm.UserInfoSerialEdit.font.Color := Page_Color_Alternative1; 
    WizardForm.WelcomeLabel1.font.color := Font_Color; 
    WizardForm.WelcomeLabel2.font.color := Font_Color; 
    WizardForm.ReadyMemo.font.Color := Page_Color_Alternative1; 
end; 
,536,913 :

Setup screenshot

이것은 내가 사용하는 코드입니다 TWizardForm (TSetupForm)의 속성입니다 페이지

이 페이지 InfoBeforePage (NewNotebookPage)에있는 TRichEditViewer 구성 요소 : 63,210

+1

이 페이지의 올바른 이름은 InfoBeforePage이며 다음과 같습니다. InfoBeforePage : TNewNotebookPage; 독서; TWizardForm = class (TSetupForm) – Slappy

+0

수정 해 주셔서 감사합니다. – ElektroStudios

답변

1

많은 속성을 가진 간단한 RTF 문서가 변경

{\ rtf1 \ ansi \ ansicpg1250 \ deff0 \ deflang1051 {\ f0 \ fnil \ fcharset0 Calibri;} {\ f1 \ fnil \ fcharset0 Times New Roman;}} { \ colortbl ; \ red0 \ green77 \ blue187; \ red255 \ green0 \ blue0;} {* \ 발전기 Msftedit 5.41.21.2510;} \ viewkind4 \ uc1 \ pard \ sa200 \ sl276 \ slmult1 \ lang9 \ f0 \ fs22 안녕하세요. 이것은 \ cf1 파란색 텍스트 \ cf0입니다. \ cf2 그리고이 텍스트는 빨간색 \ cf0입니다. 이것은 \ i 기울임 꼴 \ i0 & \ b bold \ b0입니다. \ par \ f1 글꼴을 번으로 변경하는 것도 가능합니다. 색상을 변경 \이 텍스트는 22 사이즈입니다 fs44. \ F0의 \의 fs22 \ 파 \ 파 \ 파}

는 CFX 여기에 텍스트 X가 원하는 색상 번호입니다 \ (CF0) \ 플래그 가능합니다 .

색상 (RGB 값으로, 블랙 누락) 문서 헤드 colortbl에 저장되어

{\colortbl;\red0\green77\blue187;\red255\green0\blue0;} 

때문에 블랙 = CF0 블루 = CF1 적색 = CF2 등

에 새 텍스트를 사용하면 RTFText 변수에 새 텍스트를 할당하기 만하면됩니다.

WizardForm.InfoBeforeMemo.RTFText := '{\rtf1\ansi\ansicpg1250\deff0\deflang1051{\fonttbl{\f0\fnil\fcharset0 Calibri;}{\f1\fnil\fcharset0 Times New Roman;}} 
{\colortbl ;\red0\green77\blue187;\red255\green0\blue0;} 
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\sa200\sl276\slmult1\lang9\f0\fs22 Hello. This is \cf2 blue text\cf0 . \cf2 And this text is red\cf0 . This is \i italic \i0 & \b bold\b0 .\par 
\f1 Even changing font to Times is possible. \fs44 This text is 22 size.\f0\fs22\par 
\par 
\par 
}'; 

위 예제에서 파란색 텍스트의 색상을 빨간색으로 변경했습니다.

+0

예를 들어, 많이 배웠습니다, 고맙습니다. 속성 값에 변수를 사용할 수 있는지 알고 있습니까? 예 :'const Font_Color = cf0; WizardForm.InfoBeforeMemo.RTFText : = '{\ rtf1 \ blablabla \ Font_Color}' '¿? – ElektroStudios

+0

오, 또 다른 작은 질문입니다. .RTFText 속성을 변경할 때 텍스트 데이터를 보존 할 수 있습니까? InfoBeforeFile.txt 문서를 RichEditor 내부의 텍스트로 유지하려면? 미안하지만 너무 많이 묻는다면 웹에서 정보를 찾을 수 없습니다. 어쩌면 내가 뭔가 "SaveStringToFile()"함수하지만 역방향 "SaveFileToString()"필요합니다. – ElektroStudios

+0

예, 변수를 사용할 수 있습니다. 예 : const FontColor : AnsiString = 'cf0'; WizardForm.InfoBeforeMemo.RTFText : = '{\ rtf1 \ blablabla \'+ FontColor + '}' – Slappy

1

당신은 아마 InfoBeforeMemo 찾고 있습니다.

여기에 우리가 간다 :
TRichEditViewer = class(TMemo) 
    property RTFText: AnsiString; write; 
    property UseRichEdit: Boolean; read write; 
end; 

그래서 당신은 순수를 AnsiString입니다 재산 RTFText을 변경해야합니다.

즉 순수 텍스트이고 '글꼴'또는 이와 유사한 속성이 없음을 의미합니다. RTF 텍스트 특수 다음과 같습니다 형식의 간단한 텍스트입니다 :

{\ rtf1 \ ANSI {\ fonttbl \ F0 \ fswiss 돋움;} \ F0 \ PARD이 일부 {\ B 굵은} 텍스트입니다. \ par}

글꼴을 변경해야하는 경우 수동으로 구문 분석해야합니다. 예 : fswiss Helvetica을 원하는 글꼴로 변경하고 모든 것을 다시 저장하십시오. 여기 RTF에 대한

상세 정보 :

그리고 여기에 적합한 코드 : 여기 http://en.wikipedia.org/wiki/Rich_Text_Format

+0

** 수동으로 구문 분석해야하는 글꼴을 변경해야하는 경우 - 예 : fswiss Helvetica를 원하는 글꼴로 변경하고 모든 것을 다시 저장하십시오. ** 답변을 주셔서 감사합니다.하지만 그 부분을 이해하지 못합니다. 글꼴 색상을 변경하는 방법을 보여줄 수 있습니까? 그런 다음 속성 값 ** RTFText **를 어떤 값으로 변경해야합니까? – ElektroStudios