X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=Option.pas;h=f1b0d88e608f03de473259e7d448833d4e1c33c2;hb=c9d418efda13d0e394ffa174957d77994188a183;hp=cc8ba6bfa934875701677408d24b752b1f3d093a;hpb=f98426a85cf3fe335653943414dbb4b465081131;p=gikonavigoeson%2Fgikonavi.git diff --git a/Option.pas b/Option.pas index cc8ba6b..f1b0d88 100644 --- a/Option.pas +++ b/Option.pas @@ -13,7 +13,7 @@ uses SHDocVw_TLB, MSHTML_TLB, {$IFEND} - BoardGroup; + BoardGroup, BrowserRecord; type TOptionDialog = class(TForm) @@ -22,170 +22,217 @@ type FontDialog: TFontDialog; ColorDialog: TColorDialog; OpenDialog: TOpenDialog; - Label26: TLabel; - CroutOption: TButton; - OptionTab: TPageControl; - ConnectSheet: TTabSheet; - ReadProxyGroupBox: TGroupBox; - ReadAddressLabel: TLabel; - ReadPortLabel: TLabel; - ReadUserIDLabel: TLabel; - ReadPasswordLabel: TLabel; - ReadProxyCheck: TCheckBox; - ReadProxyAddressEdit: TEdit; - ReadPortEdit: TEdit; - ReadProxyUserIDEdit: TEdit; - ReadProxyPasswordEdit: TEdit; - WriteProxyGroupBox: TGroupBox; - WriteAddressLabel: TLabel; - WritePortLabel: TLabel; - WriteUserIDLabel: TLabel; - WritePasswordLabel: TLabel; - WriteProxyCheck: TCheckBox; - WriteProxyAddressEdit: TEdit; - WritePortEdit: TEdit; - WriteProxyUserIDEdit: TEdit; - WriteProxyPasswordEdit: TEdit; - Font1Sheet: TTabSheet; - Bevel1: TBevel; - Bevel2: TBevel; - Label19: TLabel; - Bevel5: TBevel; - Label20: TLabel; - Label21: TLabel; - Label22: TLabel; - Label23: TLabel; - lblSFont: TLabel; - CabinetFontBotton: TButton; - CabinetColorBotton: TButton; - CabinetDefaultButton: TButton; - CabinetMemo: TMemo; - ListMemo: TMemo; - ListFontBotton: TButton; - ListColorBotton: TButton; - ListDefaultBotton: TButton; - HintFontButton: TButton; - HintBackButton: TButton; - HintDefaultButton: TButton; - HintMemo: TMemo; - EditorMemo: TMemo; - EditorFontBotton: TButton; - EditorColorBotton: TButton; - EditorDefaultBotton: TButton; - BrowserTabMemo: TMemo; - BruwserTabFontButton: TButton; - BrowserTabDefaultButton: TButton; - OddResNumCheckBox: TCheckBox; - OddResNumColorBox: TColorBox; - CSSTabSheet: TTabSheet; - GroupBox12: TGroupBox; - CSSListLabel: TLabel; - CSSCheckBox: TCheckBox; - CSSListView: TListView; - CSSBrowser: TWebBrowser; - CSSFontCheckBox: TCheckBox; - CSSBackColorCheckBox: TCheckBox; - CSSFontButton: TButton; - CSSBackColorButton: TButton; - TabSheet3: TTabSheet; - GroupBox9: TGroupBox; - ThreadListIconCheckBox: TCheckBox; - GroupBox16: TGroupBox; - CreationTimeLogsCheckBox: TCheckBox; - FutureThreadCheckBox: TCheckBox; - GroupBox5: TGroupBox; - BrowserMaxLabel: TLabel; - BrowserMaxCombo: TComboBox; - GroupBox17: TGroupBox; - SelectIntervalLabel: TLabel; - Label4: TLabel; - Label6: TLabel; - SelectIntervalEdit: TEdit; - GroupBox18: TGroupBox; - DatOchiSortCombo: TComboBox; - ThreadSheet: TTabSheet; - GroupBox1: TGroupBox; - ShowMailCheckBox: TCheckBox; - ResRangeHoldCheckBox: TCheckBox; - ResRangeHoldComboBox: TComboBox; - GroupBox2: TGroupBox; - AppFolderLabel: TLabel; - URLAppCheckBox: TCheckBox; - AppFolderEdit: TEdit; - AppFolderButton: TButton; - OpenMailerCheckBox: TCheckBox; - GroupBox6: TGroupBox; - LogDeleteMessageCheckBox: TCheckBox; - ResAnchorGroupBox: TGroupBox; + Label26: TLabel; + CroutOption: TButton; + OptionTab: TPageControl; + ConnectSheet: TTabSheet; + ReadProxyGroupBox: TGroupBox; + ReadAddressLabel: TLabel; + ReadPortLabel: TLabel; + ReadUserIDLabel: TLabel; + ReadPasswordLabel: TLabel; + ReadProxyCheck: TCheckBox; + ReadProxyAddressEdit: TEdit; + ReadPortEdit: TEdit; + ReadProxyUserIDEdit: TEdit; + ReadProxyPasswordEdit: TEdit; + WriteProxyGroupBox: TGroupBox; + WriteAddressLabel: TLabel; + WritePortLabel: TLabel; + WriteUserIDLabel: TLabel; + WritePasswordLabel: TLabel; + WriteProxyCheck: TCheckBox; + WriteProxyAddressEdit: TEdit; + WritePortEdit: TEdit; + WriteProxyUserIDEdit: TEdit; + WriteProxyPasswordEdit: TEdit; + Font1Sheet: TTabSheet; + Bevel1: TBevel; + Bevel2: TBevel; + Label19: TLabel; + Bevel5: TBevel; + Label20: TLabel; + Label21: TLabel; + Label22: TLabel; + Label23: TLabel; + lblSFont: TLabel; + CabinetFontBotton: TButton; + CabinetColorBotton: TButton; + CabinetDefaultButton: TButton; + CabinetMemo: TMemo; + ListMemo: TMemo; + ListFontBotton: TButton; + ListColorBotton: TButton; + ListDefaultBotton: TButton; + HintFontButton: TButton; + HintBackButton: TButton; + HintDefaultButton: TButton; + HintMemo: TMemo; + EditorMemo: TMemo; + EditorFontBotton: TButton; + EditorColorBotton: TButton; + EditorDefaultBotton: TButton; + BrowserTabMemo: TMemo; + BruwserTabFontButton: TButton; + BrowserTabDefaultButton: TButton; + OddResNumCheckBox: TCheckBox; + OddResNumColorBox: TColorBox; + CSSTabSheet: TTabSheet; + GroupBox12: TGroupBox; + CSSListLabel: TLabel; + CSSCheckBox: TCheckBox; + CSSListView: TListView; + CSSBrowser: TWebBrowser; + CSSFontCheckBox: TCheckBox; + CSSBackColorCheckBox: TCheckBox; + CSSFontButton: TButton; + CSSBackColorButton: TButton; + TabSheet3: TTabSheet; + GroupBox9: TGroupBox; + ThreadListIconCheckBox: TCheckBox; + GroupBox16: TGroupBox; + CreationTimeLogsCheckBox: TCheckBox; + FutureThreadCheckBox: TCheckBox; + GroupBox5: TGroupBox; + BrowserMaxLabel: TLabel; + BrowserMaxCombo: TComboBox; + GroupBox17: TGroupBox; + SelectIntervalLabel: TLabel; + Label4: TLabel; + Label6: TLabel; + SelectIntervalEdit: TEdit; + GroupBox18: TGroupBox; + DatOchiSortCombo: TComboBox; + ThreadSheet: TTabSheet; + GroupBox1: TGroupBox; + ShowMailCheckBox: TCheckBox; + ResRangeHoldCheckBox: TCheckBox; + ResRangeHoldComboBox: TComboBox; + GroupBox2: TGroupBox; + AppFolderLabel: TLabel; + URLAppCheckBox: TCheckBox; + AppFolderEdit: TEdit; + AppFolderButton: TButton; + OpenMailerCheckBox: TCheckBox; + GroupBox6: TGroupBox; + LogDeleteMessageCheckBox: TCheckBox; + TabSheet1: TTabSheet; + TabAddRadioGroup: TRadioGroup; + GroupBox8: TGroupBox; + Label14: TLabel; + Label15: TLabel; + Label16: TLabel; + PreviewVisibleCheckBox: TCheckBox; + PreviewSizeComboBox: TComboBox; + PreviewWaitEdit: TEdit; + GroupBox10: TGroupBox; + UnActivePopupCheckBox: TCheckBox; + ResPopupBoldCheckBox: TCheckBox; + TabSheet2: TTabSheet; + GroupBox7: TGroupBox; + Label3: TLabel; + Label11: TLabel; + URLDisplayCheckBox: TCheckBox; + AddressHistoryCountEdit: TEdit; + TabStopAddressBarCheckBox: TCheckBox; + LinkAddCheckBox: TCheckBox; + GroupBox15: TGroupBox; + ShowDialogForEndCheckBox: TCheckBox; + AllTabCloseCheckBox: TCheckBox; + SambaGroupBox: TGroupBox; + UseSambaCheckBox: TCheckBox; + TabAutoSaveLoad: TGroupBox; + TabLoadSave: TCheckBox; + SoundSheet: TTabSheet; + SoundEventGroupBox: TGroupBox; + SoundListView: TListView; + SoundReferButton: TButton; + SoundFileEdit: TEdit; + SoundPlayButton: TBitBtn; + FolderSheet: TTabSheet; + FolderGroupBox: TGroupBox; + Label1: TLabel; + Label2: TLabel; + Label5: TLabel; + LogFolderEdit: TEdit; + LogFolderButton: TButton; + NGwordSheet: TTabSheet; + GroupBox14: TGroupBox; + RloCheckBox: TCheckBox; + ReplaceulCheckBox: TCheckBox; + PopUpAbonCheckBox: TCheckBox; + ShowNGLineCheckBox: TCheckBox; + AddResAnchorCheckBox: TCheckBox; + DeleteSyriaCheckBox: TCheckBox; + UserIDSheet: TTabSheet; + GroupBox3: TGroupBox; + Label9: TLabel; + Label10: TLabel; + ForcedLoginLabel: TLabel; + UserIDEdit: TEdit; + PasswordEdit: TEdit; + AutoLoginCheckBox: TCheckBox; + ForcedLoginCheckBox: TCheckBox; + GroupBox4: TGroupBox; + Label13: TLabel; + BoardURLComboBox: TComboBox; + AddURLButton: TButton; + RemoveURLButton: TButton; + OkBotton: TButton; + SpamFilterGroupBox: TGroupBox; + SpamFilterAlgorithmComboBox: TComboBox; + TabSheet4: TTabSheet; + GroupBox13: TGroupBox; + UseUndecidedCheckBox: TCheckBox; + Tora3URLLabel: TLabel; + Label12: TLabel; + GroupBox11: TGroupBox; + Label7: TLabel; + BeUserIDEdit: TEdit; + Label8: TLabel; + BeCodeEdit: TEdit; + BeAutoLoginCheckBox: TCheckBox; + GroupBox19: TGroupBox; + Label17: TLabel; + MaxRecordCountEdit: TEdit; + Label18: TLabel; + UnFocusedBoldCheckBox: TCheckBox; + IgnoreKanaCheckBox: TCheckBox; + UseKatjuTypeSkinCheckBox: TCheckBox; + GroupBox20: TGroupBox; + AutoSortCheckBox: TCheckBox; + Label24: TLabel; + GroupBox21: TGroupBox; + StoredTaskTrayCB: TCheckBox; + GroupBox22: TGroupBox; + LoopBrowserTabsCB: TCheckBox; + GroupBox23: TGroupBox; + IgnoreContextCheckBox: TCheckBox; + GroupBox24: TGroupBox; + gppRightTopRB: TRadioButton; + gppTopRB: TRadioButton; + gppLeftTopRB: TRadioButton; + gppLeftRB: TRadioButton; + gppRightRB: TRadioButton; + gppLeftBottomRB: TRadioButton; + gppBottomRB: TRadioButton; + gppRighBottomRB: TRadioButton; ResAnchorCheckBox: TCheckBox; - TabSheet1: TTabSheet; - PopupPositionRadioGroup: TRadioGroup; - TabAddRadioGroup: TRadioGroup; - GroupBox8: TGroupBox; - Label14: TLabel; - Label15: TLabel; - Label16: TLabel; - PreviewVisibleCheckBox: TCheckBox; - PreviewSizeComboBox: TComboBox; - PreviewWaitEdit: TEdit; - GroupBox10: TGroupBox; - UnActivePopupCheckBox: TCheckBox; - ResPopupBoldCheckBox: TCheckBox; - TabSheet2: TTabSheet; - GroupBox7: TGroupBox; - Label3: TLabel; - Label11: TLabel; - URLDisplayCheckBox: TCheckBox; - AddressHistoryCountEdit: TEdit; - TabStopAddressBarCheckBox: TCheckBox; - LinkAddCheckBox: TCheckBox; - GroupBox15: TGroupBox; - ShowDialogForEndCheckBox: TCheckBox; - AllTabCloseCheckBox: TCheckBox; - SambaGroupBox: TGroupBox; - UseSambaCheckBox: TCheckBox; - TabAutoSaveLoad: TGroupBox; - TabLoadSave: TCheckBox; - SoundSheet: TTabSheet; - SoundEventGroupBox: TGroupBox; - SoundListView: TListView; - SoundReferButton: TButton; - SoundFileEdit: TEdit; - SoundPlayButton: TBitBtn; - FolderSheet: TTabSheet; - FolderGroupBox: TGroupBox; - Label1: TLabel; - Label2: TLabel; - Label5: TLabel; - LogFolderEdit: TEdit; - LogFolderButton: TButton; - NGwordSheet: TTabSheet; - GroupBox14: TGroupBox; - RloCheckBox: TCheckBox; - ReplaceulCheckBox: TCheckBox; - PopUpAbonCheckBox: TCheckBox; - ShowNGLineCheckBox: TCheckBox; - AddResAnchorCheckBox: TCheckBox; - DeleteSyriaCheckBox: TCheckBox; - UserIDSheet: TTabSheet; - Tora3URLLabel: TLabel; - Label12: TLabel; - GroupBox3: TGroupBox; - Label9: TLabel; - Label10: TLabel; - ForcedLoginLabel: TLabel; - UserIDEdit: TEdit; - PasswordEdit: TEdit; - AutoLoginCheckBox: TCheckBox; - ForcedLoginCheckBox: TCheckBox; - GroupBox4: TGroupBox; - Label13: TLabel; - BoardURLComboBox: TComboBox; - AddURLButton: TButton; - RemoveURLButton: TButton; - OkBotton: TButton; - GroupBox11: TGroupBox; - SpamFilterAlgorithmComboBox: TComboBox; + IgnoreLimitResCountCheckBox: TCheckBox; + GroupBox25: TGroupBox; + Label25: TLabel; + BoukenComboBox: TComboBox; + BoukenModButton: TButton; + BoukenDelButton: TButton; + BoukenEdit: TEdit; + GroupBox26: TGroupBox; + UseUnicodeCB: TCheckBox; + Label27: TLabel; + DispImageCheckBox: TCheckBox; + GroupBox27: TGroupBox; + ThreadTitleTrimCheckBox: TCheckBox; + GroupBox28: TGroupBox; + NGTextEditCheckBox: TCheckBox; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure ApplyButtonClick(Sender: TObject); @@ -231,9 +278,13 @@ type Change: TItemChange); procedure AddURLButtonClick(Sender: TObject); procedure RemoveURLButtonClick(Sender: TObject); - procedure OddResNumCheckBoxClick(Sender: TObject); - procedure ResRangeHoldCheckBoxClick(Sender: TObject); - procedure CroutOptionClick(Sender: TObject); + procedure OddResNumCheckBoxClick(Sender: TObject); + procedure ResRangeHoldCheckBoxClick(Sender: TObject); + procedure CroutOptionClick(Sender: TObject); + procedure MaxRecordCountEditExit(Sender: TObject); + procedure BoukenDelButtonClick(Sender: TObject); + procedure BoukenComboBoxChange(Sender: TObject); + procedure BoukenModButtonClick(Sender: TObject); private { Private éŒ¾ } FClose: Boolean; @@ -251,6 +302,10 @@ type procedure SetAbonpropertys; procedure CSSSetContent(Content: string); procedure CSSPreview; + //! CSSƒvƒŒƒrƒ…[—pHTMLBody¶¬ + function CreatePreviewBody(Res: array of TResRec): string; + //! CSS/SKINƒvƒŒƒrƒ…[—pStyle•¶Žš—ñŽæ“¾ + function GetPreviewUserStyle(): string; public { Public éŒ¾ } end; @@ -261,7 +316,7 @@ var implementation uses - Giko, Editor, Setting, ActnList, KuroutSetting; + Giko, Editor, Setting, ActnList, KuroutSetting, Math, HTMLCreate; const FONT_TEXT: string = '%s %d pt'; @@ -274,12 +329,24 @@ const DEFAULT_FONT_SIZE: Integer = 9; DEFAULT_TABFONT_NAME: string = '‚l‚r ‚oƒSƒVƒbƒN'; DEFAULT_TABFONT_SIZE: Integer = 9; - URL_TORA3: WideString = 'http://2ch.tora3.net/'; +// URL_TORA3: WideString = 'http://2ch.tora3.net/'; + URL_TORA3: WideString = 'http://ronin.bbspink.com/'; + DEFAULT_CSS_FILENAME = 'default.css'; {$R *.DFM} procedure TOptionDialog.FormCreate(Sender: TObject); +var + CenterForm: TCustomForm; begin + CenterForm := TCustomForm(Owner); + if Assigned(CenterForm) then begin + Left := ((CenterForm.Width - Width) div 2) + CenterForm.Left; + Top := ((CenterForm.Height - Height) div 2) + CenterForm.Top; + end else begin + Left := (Screen.Width - Width) div 2; + Top := (Screen.Height - Height) div 2; + end; CSSBrowser.Navigate('about:blank'); FClose := True; @@ -298,9 +365,9 @@ begin + 'ƒXƒŒƒbƒh•\Ž¦ƒGƒŠƒA‚̃tƒHƒ“ƒg•ÏX‚́A'#13#10 + 'uCSS ‚ƃXƒLƒ“vƒ^ƒu‚Őݒèo—ˆ‚Ü‚·'; - ForcedLoginLabel.Caption := '- ƒ`ƒFƒbƒN‚ð“ü‚ê‚é‚̂̓ZƒLƒ…ƒŠƒeƒBãD‚Ü‚µ‚­‚ ‚è‚Ü‚¹‚ñB' + #13#10 - + '@‚â‚ނ𓾂Ȃ¢Žž‚¾‚¯‚É‚µ‚Ä‚­‚¾‚³‚¢B'; - CSSCheckBoxClick(Sender); + ForcedLoginLabel.Caption := '- ƒ`ƒFƒbƒN‚ð“ü‚ê‚é‚̂̓ZƒLƒ…ƒŠƒeƒBãD‚Ü‚µ‚­‚ ‚è‚Ü‚¹‚ñB' + #13#10 + + '@‚â‚ނ𓾂Ȃ¢Žž‚¾‚¯‚É‚µ‚Ä‚­‚¾‚³‚¢B'; + CSSCheckBoxClick(Sender); BrowserMaxLabel.Caption := 'ƒuƒ‰ƒEƒU‚ªÅ¬‰»‚³‚ê‚Ä‚¢‚é‚Æ‚«‚Ɉȉº‚Ì‘€ì‚Ńuƒ‰ƒEƒU‚ðÅ‘剻‚µ‚Ü‚·B'#13#10 + '‚Ü‚½AƒzƒC[ƒ‹ƒNƒŠƒbƒN‚É‚æ‚èÅ‘剻‚ðƒLƒƒƒ“ƒZƒ‹‚·‚邱‚Æ‚ªo—ˆ‚Ü‚·B'; @@ -329,13 +396,14 @@ begin ReadPortEditExit(Sender); WritePortEditExit(Sender); AddressHistoryCountEditExit(Sender); + MaxRecordCountEditExit(Sender); PreviewWaitEditExit(Sender); if not CheckFolder then begin FClose := False; Exit; end; - SetAbonpropertys; + SetAbonpropertys; SaveSetting; SettingApply; @@ -346,13 +414,14 @@ begin ReadPortEditExit(Sender); WritePortEditExit(Sender); AddressHistoryCountEditExit(Sender); + MaxRecordCountEditExit(Sender); PreviewWaitEditExit(Sender); if not CheckFolder then begin FClose := False; Exit; end; - SetAbonpropertys; + SetAbonpropertys; SaveSetting; SettingApply; FClose := False; @@ -531,7 +600,8 @@ var Item: TListItem; // s: string; idx: Integer; - FileList: TStringList; + FileList : TStringList; + DomainList : TStringList; begin //“ǂݍž‚Ý—pƒvƒƒLƒV @@ -574,6 +644,8 @@ begin OddResNumCheckBox.Checked := GikoSys.Setting.UseOddColorOddResNum; OddResNumColorBox.Selected := GikoSys.Setting.OddColor; OddResNumColorBox.Enabled := OddResNumCheckBox.Checked; + UnFocusedBoldCheckBox.Checked := GikoSys.Setting.UnFocusedBold; + UnFocusedBoldCheckBox.Enabled := OddResNumCheckBox.Checked; //ƒuƒ‰ƒEƒUƒ|ƒbƒvƒAƒbƒvƒtƒHƒ“ƒg HintMemo.Font.Name := GikoSys.Setting.HintFontName; @@ -595,6 +667,8 @@ begin EditorMemo.Color := GikoSys.Setting.EditorBackColor; //CSS•\Ž¦ CSSCheckBox.Checked := GikoSys.Setting.UseCSS; + //‚©‚¿‚ãƒXƒLƒ“Žg—p + UseKatjuTypeSkinCheckBox.Checked := GikoSys.Setting.UseKatjushaType; if FCSSFont <> nil then FCSSFont.Free; FCSSFont := TFont.Create; @@ -626,15 +700,16 @@ begin //ƒXƒ^ƒCƒ‹ƒV[ƒgƒtƒ@ƒCƒ‹–¼ˆê—— FileList := TStringList.Create; try + FileList.BeginUpdate; GikoSys.GetFileList(GikoSys.GetStyleSheetDir, '*.css', FileList, True, True); - + FileList.EndUpdate; Idx := Length(GikoSys.GetStyleSheetDir); for i := 0 to FileList.Count - 1 do FileList[i] := Copy(FileList[i], Idx + 1, Length(FileList[i])); FileList.Sort; for i := 0 to FileList.Count - 1 do begin //s := ExtractFileName(FileList[i]); - if LowerCase(FileList[i]) = 'default.css' then + if LowerCase(FileList[i]) = DEFAULT_CSS_FILENAME then Item := CSSListView.Items.Insert(0) else Item := CSSListView.Items.Add; @@ -651,29 +726,18 @@ begin FCSSStrings.Clear; FCSSStrings := TStringList.Create; try - //GikoSys.GetDirectoryList(GikoSys.GetSkinDir, '*', FileList, False); GikoSys.GetDirectoryList(GikoSys.GetSkinDir, '*', FCSSStrings, False); Idx := Length(GikoSys.GetSkinDir); - //FileList.Sort; FCSSStrings.Sort; - //for i := 0 to FileList.Count - 1 do begin for i := 0 to FCSSStrings.Count - 1 do begin - //s := ExtractFileName(FileList[i]); Item := CSSListView.Items.Add; - {Item.Data := PChar( FileList[i] ); - Item.Caption := Copy( FileList[i], Idx + 1, Length(FileList[i]) ); - if LowerCase(FileList[i]) = LowerCase(GikoSys.Setting.CSSFileName) then - Item.Selected := True; - } Item.Data := PChar( FCSSStrings[i] ); Item.Caption := Copy( FCSSStrings[i], Idx + 1, Length(FCSSStrings[i]) ); if LowerCase(FCSSStrings[i]) = LowerCase(GikoSys.Setting.CSSFileName) then Item.Selected := True; end; finally - // Item.Data ‚Ƀ|ƒCƒ“ƒ^“Ë‚Áž‚ñ‚Å‚é‚©‚çŠJ•ú‚Å‚«‚È‚¢‚悧` - //FileList.Free; end; if (CSSListView.ItemIndex = -1) and (CSSListView.Items.Count > 0) then @@ -681,6 +745,8 @@ begin //Mail—“•\Ž¦ ShowMailCheckBox.Checked := GikoSys.Setting.ShowMail; + //BE2.0ƒAƒCƒRƒ“EEmoticons‚ð‰æ‘œ•\Ž¦‚·‚é + DispImageCheckBox.Checked := GikoSys.Setting.IconImageDisplay; // ‹N“®ŽžƒŒƒX•\Ž¦”͈͂̌Œè ResRangeHoldCheckBox.Checked := GikoSys.Setting.ResRangeHold; @@ -688,7 +754,7 @@ begin Ord( grrAll ): ResRangeHoldComboBox.ItemIndex := 0; Ord( grrKoko ): ResRangeHoldComboBox.ItemIndex := 2; Ord( grrNew ): ResRangeHoldComboBox.ItemIndex := 3; - 100: ResRangeHoldComboBox.ItemIndex := 1; + 10..65535: ResRangeHoldComboBox.ItemIndex := 1; end; ResRangeHoldComboBox.Enabled := GikoSys.Setting.ResRangeHold; //ƒ^ƒu’ljÁˆÊ’u @@ -731,6 +797,8 @@ begin //ƒƒOíœŽžƒƒbƒZ[ƒW LogDeleteMessageCheckBox.Checked := GikoSys.Setting.DeleteMsg; + //“¯IDƒŒƒXƒAƒ“ƒJ[•\Ž¦‚̐§ŒÀ”‰z‚¦ƒƒbƒZ[ƒW + IgnoreLimitResCountCheckBox.Checked := GikoSys.Setting.LimitResCountMessage; //I—¹ŽžŠm”Fƒ_ƒCƒAƒƒO ShowDialogForEndCheckBox.Checked := GikoSys.Setting.ShowDialogForEnd; @@ -743,15 +811,15 @@ begin BrowserMaxCombo.ItemIndex := Ord( GikoSys.Setting.BrowserAutoMaximize ); //ƒ|ƒbƒvƒAƒbƒvˆÊ’u case GikoSys.Setting.PopupPosition of - gppRightTop: PopupPositionRadioGroup.ItemIndex := 0; - gppRight: PopupPositionRadioGroup.ItemIndex := 1; - gppRightBottom: PopupPositionRadioGroup.ItemIndex := 2; - gppTop: PopupPositionRadioGroup.ItemIndex := 3; - gppCenter: PopupPositionRadioGroup.ItemIndex := 4; - gppBottom: PopupPositionRadioGroup.ItemIndex := 5; - gppLeftTop: PopupPositionRadioGroup.ItemIndex := 6; - gppLeft: PopupPositionRadioGroup.ItemIndex := 7; - gppLeftBottom: PopupPositionRadioGroup.ItemIndex := 8; + gppRightTop: gppRightTopRB.Checked := True; + gppRight: gppRightRB.Checked := True; + gppRightBottom: gppRighBottomRB.Checked := True; + gppTop: gppTopRB.Checked := True; + gppCenter: gppTopRB.Checked := True; // “ǂݍž‚Ý‚Å•ÏŠ·‚µ‚Ä‚é‚Í‚¸ + gppBottom: gppBottomRB.Checked := True; + gppLeftTop: gppLeftTopRB.Checked := True; + gppLeft: gppLeftRB.Checked := True; + gppLeftBottom: gppLeftBottomRB.Checked := True; end; //”ñƒAƒNƒeƒBƒuŽžƒ|ƒbƒvƒAƒbƒv•\Ž¦ @@ -808,20 +876,66 @@ begin else DatOchiSortCombo.ItemIndex := 0; end; - - //‚ ‚ځ`‚ñ - RloCheckBox.Checked := GikoSys.Setting.AbonDeleterlo; - ReplaceulCheckBox.Checked := GikoSys.Setting.AbonReplaceul; - PopUpAbonCheckBox.Checked := GikoSys.Setting.PopUpAbon; - ShowNGLineCheckBox.Checked := GikoSys.Setting.ShowNGLinesNum; - AddResAnchorCheckBox.Checked := GikoSys.Setting.AddResAnchor; + AutoSortCheckBox.Checked := GikoSys.Setting.AutoSortThreadList; + + //‚ ‚ځ`‚ñ + RloCheckBox.Checked := GikoSys.Setting.AbonDeleterlo; + ReplaceulCheckBox.Checked := GikoSys.Setting.AbonReplaceul; + PopUpAbonCheckBox.Checked := GikoSys.Setting.PopUpAbon; + ShowNGLineCheckBox.Checked := GikoSys.Setting.ShowNGLinesNum; + AddResAnchorCheckBox.Checked := GikoSys.Setting.AddResAnchor; DeleteSyriaCheckBox.Checked := GikoSys.Setting.DeleteSyria; + IgnoreKanaCheckBox.Checked := GikoSys.Setting.IgnoreKana; + //NGƒ[ƒh•ÒW + NGTextEditCheckBox.Checked := GikoSys.Setting.NGTextEditor; +{$IFDEF SPAM_FILTER_ENABLED} + // ƒXƒpƒ€ƒtƒBƒ‹ƒ^‚̐ݒè‚ð•\Ž¦‚·‚é + SpamFilterGroupBox.Visible := True; +{$ENDIF} // Žg—p‚·‚éƒXƒpƒ€ƒtƒBƒ‹ƒ^ +{$IFDEF DEBUG} + SpamFilterAlgorithmComboBox.Clear; + SpamFilterAlgorithmComboBox.AddItem( 'Žg—p‚µ‚È‚¢', nil ); + SpamFilterAlgorithmComboBox.AddItem( 'Paul Graham –@', nil ); + SpamFilterAlgorithmComboBox.AddItem( 'Gary Robinson –@', nil ); + SpamFilterAlgorithmComboBox.AddItem( 'Gary Robinson-Fisher –@', nil ); +{$ENDIF} SpamFilterAlgorithmComboBox.ItemIndex := Ord( GikoSys.Setting.SpamFilterAlgorithm ); - //TabAutoLoad - TabLoadSave.Checked := Gikosys.Setting.TabAutoLoadSave; + //TabAutoLoad + TabLoadSave.Checked := Gikosys.Setting.TabAutoLoadSave; + UseUndecidedCheckBox.Checked := GikoSys.Setting.UseUndecided; + + // ƒŒƒXƒGƒfƒBƒ^Unicode“ü—Í + UseUnicodeCB.Checked := Gikosys.Setting.UseUnicode; + // ƒXƒŒƒ^ƒC“Á’蕶Žš—ñœ‹Ž + ThreadTitleTrimCheckBox.Checked := GikoSys.Setting.ThreadTitleTrim; + + //Be2ch”FØ + BeUserIDEdit.Text := GikoSys.Setting.BeUserID; + BeCodeEdit.Text := GikoSys.Setting.BePassword; + BeAutoLoginCheckBox.Checked := GikoSys.Setting.BeAutoLogin; + //—š—ð‚̍őå•Û‘¶” + MaxRecordCountEdit.Text := IntToStr(GikoSys.Setting.MaxRecordCount); + // Å¬‰»Žž‚Ƀ^ƒXƒNƒgƒŒƒC‚ÉŠi”[‚·‚é‚© + StoredTaskTrayCB.Checked := GikoSys.Setting.StoredTaskTray; + // ƒuƒ‰ƒEƒUƒ^ƒu‚̈ړ®‚Ń‹[ƒv‚ð‹–‰Â‚·‚é‚© + LoopBrowserTabsCB.Checked := GikoSys.Setting.LoopBrowserTabs; + // + IgnoreContextCheckBox.Checked := GikoSys.Setting.GestureIgnoreContext; + + // –`Œ¯‚̏‘ƒhƒƒCƒ“ˆê——Žæ“¾ + BoukenComboBox.Text := ''; + BoukenComboBox.Items.Clear; + DomainList := TStringList.Create; + GikoSys.GetBoukenDomain(DomainList); + for i := 0 to DomainList.Count - 1 do begin + BoukenComboBox.Items.Add( DomainList[i] ) ; + end; + DomainList.Free; + BoukenComboBox.ItemIndex := 0; + BoukenComboBox.OnChange(nil); end; procedure TOptionDialog.SaveSetting; @@ -859,6 +973,8 @@ begin GikoSys.Setting.ListBackColor := ListMemo.Color; GikoSys.Setting.UseOddColorOddResNum := OddResNumCheckBox.Checked; GikoSys.Setting.OddColor := OddResNumColorBox.Selected; + GikoSys.Setting.UnFocusedBold := (UnFocusedBoldCheckBox.Enabled) and + (UnFocusedBoldCheckBox.Checked); GikoSys.Setting.HintFontName := HintMemo.Font.Name; GikoSys.Setting.HintFontSize := HintMemo.Font.Size; @@ -880,9 +996,10 @@ begin //CSS•\Ž¦ if GikoSys.Setting.UseCSS <> CSSCheckBox.Checked then FRepaintThread := true; GikoSys.Setting.UseCSS := CSSCheckBox.Checked; + GikoSys.Setting.UseKatjushaType := UseKatjuTypeSkinCheckBox.Checked; //CSSƒtƒ@ƒCƒ‹–¼ tmp := GikoSys.Setting.CSSFileName; - GikoSys.Setting.CSSFileName := 'default.css'; + GikoSys.Setting.CSSFileName := DEFAULT_CSS_FILENAME; if CSSListView.Items.Count > 0 then begin try if CSSListView.Items[CSSListView.ItemIndex].Data <> nil then @@ -942,13 +1059,15 @@ begin //Mail—“•\Ž¦ if GikoSys.Setting.ShowMail <> ShowMailCheckBox.Checked then FRepaintThread := true; GikoSys.Setting.ShowMail := ShowMailCheckBox.Checked; + //BE2.0ƒAƒCƒRƒ“EEmoticons‚ð‰æ‘œ•\Ž¦‚·‚é + GikoSys.Setting.IconImageDisplay := DispImageCheckBox.Checked; // ‹N“®ŽžƒŒƒX•\Ž¦”͈͂̌Œè GikoSys.Setting.ResRangeHold := ResRangeHoldCheckBox.Checked; case ResRangeHoldComboBox.ItemIndex of - 0: GikoSys.Setting.ResRange := Ord( grrAll ); - 1: GikoSys.Setting.ResRange := 100; - 2: GikoSys.Setting.ResRange := Ord( grrKoko ); - 3: GikoSys.Setting.ResRange := Ord( grrNew ); + 0: GikoSys.Setting.ResRange := Ord( grrAll ); + 1: GikoSys.Setting.ResRange := GikoSys.Setting.ResRangeExCount; + 2: GikoSys.Setting.ResRange := Ord( grrKoko ); + 3: GikoSys.Setting.ResRange := Ord( grrNew ); end; GikoSys.Setting.BrowserTabAppend := TGikoTabAppend(TabAddRadioGroup.ItemIndex); @@ -966,28 +1085,26 @@ begin GikoSys.Setting.OpenMailer := OpenMailerCheckBox.Checked; GikoSys.Setting.DeleteMsg := LogDeleteMessageCheckBox.Checked; + GikoSys.Setting.LimitResCountMessage := IgnoreLimitResCountCheckBox.Checked; + //I—¹ŽžŠm”Fƒ_ƒCƒAƒƒO GikoSys.Setting.ShowDialogForEnd := ShowDialogForEndCheckBox.Checked; //AllTabClose GikoSys.Setting.ShowDialogForAllTabClose := AllTabCloseCheckBox.Checked; - //Samba + //Samba GikoSys.Setting.UseSamba := UseSambaCheckBox.Checked; GikoSys.Setting.ResAnchorJamp := ResAnchorCheckBox.Checked; // ƒuƒ‰ƒEƒUÅ‘剻 GikoSys.Setting.BrowserAutoMaximize := TGikoBrowserAutoMaximize( BrowserMaxCombo.ItemIndex ); //ƒ|ƒbƒvƒAƒbƒvˆÊ’u - case PopupPositionRadioGroup.ItemIndex of - 0: GikoSys.Setting.PopupPosition := gppRightTop; - 1: GikoSys.Setting.PopupPosition := gppRight; - 2: GikoSys.Setting.PopupPosition := gppRightBottom; - 3: GikoSys.Setting.PopupPosition := gppTop; - 4: GikoSys.Setting.PopupPosition := gppCenter; - 5: GikoSys.Setting.PopupPosition := gppBottom; - 6: GikoSys.Setting.PopupPosition := gppLeftTop; - 7: GikoSys.Setting.PopupPosition := gppLeft; - 8: GikoSys.Setting.PopupPosition := gppLeftBottom; - end; - + if (gppRightTopRB.Checked) then GikoSys.Setting.PopupPosition := gppRightTop; + if (gppRightRB.Checked) then GikoSys.Setting.PopupPosition := gppRight; + if (gppRighBottomRB.Checked) then GikoSys.Setting.PopupPosition := gppRightBottom; + if (gppTopRB.Checked) then GikoSys.Setting.PopupPosition := gppTop; + if (gppBottomRB.Checked) then GikoSys.Setting.PopupPosition := gppBottom; + if (gppLeftTopRB.Checked) then GikoSys.Setting.PopupPosition := gppLeftTop; + if (gppLeftRB.Checked) then GikoSys.Setting.PopupPosition := gppLeft; + if (gppLeftBottomRB.Checked) then GikoSys.Setting.PopupPosition := gppLeftBottom; //”ñƒAƒNƒeƒBƒuŽžƒ|ƒbƒvƒAƒbƒv•\Ž¦ GikoSys.Setting.UnActivePopup := UnActivePopupCheckBox.Checked; //ƒŒƒXƒ|ƒbƒvƒAƒbƒvƒ{[ƒ‹ƒh•\Ž¦ @@ -1062,6 +1179,7 @@ begin GikoSys.Setting.DatOchiSortIndex := Ord( gbcLastModified );{gbcLastModified} end; end; + GikoSys.Setting.AutoSortThreadList := AutoSortCheckBox.Checked; GikoSys.Setting.WriteSystemSettingFile; GikoSys.Setting.WriteBoardURLSettingFile; @@ -1085,7 +1203,11 @@ begin GikoSys.Setting.PopUpAbon := PopUpAbonCheckBox.Checked; GikoSys.Setting.ShowNGLinesNum := ShowNGLineCheckBox.Checked; GikoSys.Setting.AddResAnchor := AddResAnchorCheckBox.Checked; - GikoSys.Setting.DeleteSyria := DeleteSyriaCheckBox.Checked; + GikoSys.Setting.DeleteSyria := DeleteSyriaCheckBox.Checked; + GikoSys.Setting.IgnoreKana := IgnoreKanaCheckBox.Checked; + GikoSys.FAbon.IgnoreKana := GikoSys.Setting.IgnoreKana; + //NGƒ[ƒh•ÒW + GikoSys.Setting.NGTextEditor := NGTextEditCheckBox.Checked; // Žg—p‚·‚éƒXƒpƒ€ƒtƒBƒ‹ƒ^ if GikoSys.Setting.SpamFilterAlgorithm <> TGikoSpamFilterAlgorithm( SpamFilterAlgorithmComboBox.ItemIndex ) then begin @@ -1094,8 +1216,25 @@ begin FRepaintThread := True; end; - //TabŽ©“®•Û‘¶ - GikoSys.Setting.TabAutoLoadSave := TabLoadSave.Checked; + //TabŽ©“®•Û‘¶ + GikoSys.Setting.TabAutoLoadSave := TabLoadSave.Checked; + GikoSys.Setting.UseUndecided := UseUndecidedCheckBox.Checked; + //Be2ch + GikoSys.Setting.BeUserID := BeUserIDEdit.Text; + GikoSys.Setting.BePassword := BeCodeEdit.Text; + GikoSys.Setting.BeAutoLogin := BeAutoLoginCheckBox.Checked; + //—š—ð‚̍őå•Û‘¶” + GikoSys.Setting.MaxRecordCount := Max(StrToInt64Def(MaxRecordCountEdit.Text,100),1); + GikoSys.Setting.StoredTaskTray := StoredTaskTrayCB.Checked; + GikoSys.Setting.LoopBrowserTabs := LoopBrowserTabsCB.Checked; + + GikoSys.Setting.GestureIgnoreContext := IgnoreContextCheckBox.Checked; + + // ƒŒƒXƒGƒfƒBƒ^Unicode“ü—Í + Gikosys.Setting.UseUnicode := UseUnicodeCB.Checked; + // ƒXƒŒƒ^ƒC“Á’蕶Žš—ñœ‹Ž + GikoSys.Setting.ThreadTitleTrim := ThreadTitleTrimCheckBox.Checked; + end; procedure TOptionDialog.SettingApply; @@ -1111,16 +1250,6 @@ begin GikoForm.TreeView.Font.Color := GikoSys.Setting.CabinetFontColor; GikoForm.TreeView.Color := GikoSys.Setting.CabinetBackColor; - {GikoForm.TreeView.Font.Style := []; - if GikoSys.Setting.CabinetFontBold then - GikoForm.TreeView.Font.Style := [fsBold]; - if GikoSys.Setting.CabinetFontItalic then - GikoForm.TreeView.Font.Style := GikoForm.TreeView.Font.Style + [fsItalic]; - } - {GikoForm.FavoriteTreeView.Font.Name := GikoSys.Setting.CabinetFontName; - GikoForm.FavoriteTreeView.Font.Size := GikoSys.Setting.CabinetFontSize; - GikoForm.FavoriteTreeView.Font.Color := GikoSys.Setting.CabinetFontColor; - } GikoForm.FavoriteTreeView.Font.Assign(GikoForm.TreeView.Font); GikoForm.FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor; @@ -1135,8 +1264,10 @@ begin //GikoForm.ListView.Color := GikoSys.Setting.ListBackColor; GikoForm.ListViewBackGroundColor := GikoSys.Setting.ListBackColor; - GikoForm.UseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum; - GikoForm.OddColor := GikoSys.Setting.OddColor; + GikoForm.UseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum; + GikoForm.OddColor := GikoSys.Setting.OddColor; + GikoSys.Setting.UnFocusedBold := (UnFocusedBoldCheckBox.Enabled) and + (UnFocusedBoldCheckBox.Checked); GikoForm.BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName; GikoForm.BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize; @@ -1181,6 +1312,9 @@ begin end; GikoForm.BrowserTab.OnChange(nil); end; + + // ƒ^ƒu‚̃XƒŒƒ^ƒCXV + GikoForm.UpdateThreadTitle; end; procedure TOptionDialog.ReadProxyCheckClick(Sender: TObject); @@ -1216,7 +1350,7 @@ end; function TOptionDialog.CheckFolder: Boolean; begin if Trim(LogFolderEdit.Text) = '' then - LogFolderEdit.Text := ExtractFilePath(Application.ExeName) + 'Log'; + LogFolderEdit.Text := GikoSys.GetAppDir + 'Log'; if DirectoryExists(LogFolderEdit.Text) then begin Result := True; @@ -1250,17 +1384,29 @@ begin sndPlaySound(nil, SND_ASYNC); if OpenDialog.Execute then begin SoundFileEdit.Text := OpenDialog.FileName; + // ƒAƒvƒŠ”z‰º‚̃tƒ@ƒCƒ‹‚̏ꍇ‘Š‘΃pƒX‚É•ÏŠ·‚·‚éB + if (AnsiPos(GikoSys.Setting.GetAppDir,SoundFileEdit.Text) = 1) then begin + // .\ ‚ª‚‚©‚È‚¢‚̂ŁA.\‚ð’ljÁ + SoundFileEdit.Text := '.\' + ExtractRelativePath( + GikoSys.Setting.GetAppDir, + SoundFileEdit.Text); + + end; end; end; procedure TOptionDialog.SoundPlayButtonClick(Sender: TObject); +var + s : String; begin - if not FileExists(SoundFileEdit.Text) then begin + SetCurrentDir(GikoSys.Setting.GetAppDir); + s := ExpandFileName(SoundFileEdit.Text); + if not FileExists(s) then begin MsgBox(Handle, '‘¶Ý‚µ‚È‚¢ƒtƒ@ƒCƒ‹‚Å‚·', 'ƒGƒ‰[', MB_ICONSTOP or MB_OK); SoundFileEdit.Text := ''; Exit; end; - if not sndPlaySound(PChar(SoundFileEdit.Text), SND_ASYNC or SND_NOSTOP) then begin + if not sndPlaySound(PChar(s), SND_ASYNC or SND_NOSTOP) then begin sndPlaySound(nil, SND_ASYNC); end; end; @@ -1280,7 +1426,8 @@ begin Item := SoundListView.Selected; if Item = nil then Exit; - if FileExists(SoundFileEdit.Text) then + SetCurrentDir(GikoSys.Setting.GetAppDir); + if FileExists(ExpandFileName(SoundFileEdit.Text)) then Item.SubItems[0] := SoundFileEdit.Text; if Trim(SoundFileEdit.Text) = '' then Item.SubItems[0] := ''; @@ -1368,13 +1515,13 @@ end; procedure TOptionDialog.SetAbonpropertys; begin - //‚ ‚ځ`‚ñ - GikoSys.FAbon.Deleterlo := RloCheckBox.Checked; - GikoSys.FAbon.Replaceul := ReplaceulCheckBox.Checked; - GikoSys.FAbon.AbonPopupRes := PopUpAbonCheckBox.Checked; + //‚ ‚ځ`‚ñ + GikoSys.FAbon.Deleterlo := RloCheckBox.Checked; + GikoSys.FAbon.Replaceul := ReplaceulCheckBox.Checked; + GikoSys.FAbon.AbonPopupRes := PopUpAbonCheckBox.Checked; GikoSys.FAbon.ReturnNGwordLineNum := ShowNGLineCheckBox.Checked; GikoSys.FAbon.SetNGResAnchor := AddResAnchorCheckBox.Checked; - GikoSys.FAbon.DeleteSyria := DeleteSyriaCheckBox.Checked; + GikoSys.FAbon.DeleteSyria := DeleteSyriaCheckBox.Checked; end; procedure TOptionDialog.CSSFontButtonClick(Sender: TObject); begin @@ -1421,12 +1568,12 @@ end; procedure TOptionDialog.CSSSetContent(Content: string); var - doc : Variant; + doc : OleVariant; begin if CSSBrowser.Document <> nil then begin - doc := CSSBrowser.Document; + doc := CSSBrowser.OleObject.Document; doc.open; - doc.Clear; + doc.Clear; doc.charset := 'Shift_JIS'; doc.Write(Content); doc.Close; @@ -1439,14 +1586,12 @@ var ThreadItem: TThreadItem; html: string; Res: array [0..1] of TResRec; - UserOptionalStyle: string; - i: Integer; fileName: string; begin fileName := GikoSys.Setting.CSSFileName; - GikoSys.Setting.CSSFileName := 'default.css'; + GikoSys.Setting.CSSFileName := DEFAULT_CSS_FILENAME; if CSSListView.Items.Count > 0 then begin try if CSSListView.ItemIndex >= 0 then begin @@ -1454,13 +1599,13 @@ begin GikoSys.Setting.CSSFileName := string( CSSListView.Items[CSSListView.ItemIndex].data ) else GikoSys.Setting.CSSFileName := CSSListView.Items[CSSListView.ItemIndex].Caption + '.css'; - end; + end; except end; end; Board := TBoard.Create( nil, 'about://sample/' ); - ThreadItem := TThreadItem.Create( nil, 'about://sample/test/read.cgi/sample/' ); + ThreadItem := TThreadItem.Create( nil, Board, 'about://sample/test/read.cgi/sample/' ); try Board.Title := 'ƒTƒ“ƒvƒ‹”Â'; @@ -1479,66 +1624,27 @@ begin Res[1].FDateTime := 'ID:Sample'; Res[1].FBody := 'ƒIƒ}ƒGƒ‚ƒi['; - // ƒtƒHƒ“ƒg‚âƒTƒCƒY‚̐ݒè - if CSSFontCheckBox.Checked then begin - i := ColorToRGB( FCSSFont.Color ); - i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16); - - UserOptionalStyle := UserOptionalStyle + - 'font-family:"' + FCSSFont.Name + '";' + - 'font-size:' + IntToStr( FCSSFont.Size ) + 'pt;' + - 'color:#' + IntToHex( i, 6 ) + ';'; - if fsBold in FCSSFont.Style then - UserOptionalStyle := UserOptionalStyle + 'font-weight:bold;' - else - UserOptionalStyle := UserOptionalStyle + 'font-weight:normal;'; - if fsItalic in FCSSFont.Style then - UserOptionalStyle := UserOptionalStyle + 'font-style:italic;' - else - UserOptionalStyle := UserOptionalStyle + 'font-style:normal;'; - end; - if CSSBackColorCheckBox.Checked then begin - i := ColorToRGB( FCSSBackColor ); - i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16); - - UserOptionalStyle := UserOptionalStyle + - 'background-color:#' + IntToHex( i, 6 ) + ';'; - end; if FileExists( GikoSys.GetSkinHeaderFileName ) then begin html := - GikoSys.LoadFromSkin( GikoSys.GetSkinHeaderFileName, ThreadItem, 0 ) + + HTMLCreater.LoadFromSkin( GikoSys.GetSkinHeaderFileName, ThreadItem, 0 ) + '' + - GikoSys.SkinedRes( GikoSYs.LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, 0 ), Res[0], '1' ) + - GikoSys.SkinedRes( GikoSYs.LoadFromSkin( GikoSys.GetSkinNewResFileName, ThreadItem, 0 ), Res[1], '2' ) + + HTMLCreater.SkinedRes( HTMLCreater.LoadFromSkin( GikoSys.GetSkinResFileName, ThreadItem, 0 ), @Res[0], '1' ) + + HTMLCreater.SkinedRes( HTMLCreater.LoadFromSkin( GikoSys.GetSkinNewResFileName, ThreadItem, 0 ), @Res[1], '2' ) + '' + - GikoSys.LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, 0 ); + HTMLCreater.LoadFromSkin( GikoSys.GetSkinFooterFileName, ThreadItem, 0 ); html := StringReplace( html, '', - '', [rfReplaceAll] ); + '', [rfReplaceAll] ); end else begin html := - '' + - '' + + '' + '' + ThreadItem.Title + '' + '' + - '' + - '' + - '
' + ThreadItem.Title + '
'; - - for i := 0 to High( Res ) do - begin - html := html + - '
' + IntToStr( i + 1 ) + '' + - ' –¼‘OF ' + - '' + - '' + Res[i].FName + ' [' + Res[i].FMailTo + ']' + - ' “Še“úF' + - ' ' + Res[i].FDateTime+ '
' + - '
' + Res[i].FBody + '
'; - end; - - html := html + ''; + '' + + '
' + ThreadItem.Title + '
'; + + html := html + CreatePreviewBody(Res) + ''; end; try @@ -1553,7 +1659,57 @@ begin end; end; +function TOptionDialog.CreatePreviewBody(Res: array of TResRec): string; +var + i : Integer; +begin + Result := ''; + for i := 0 to High( Res ) do + begin + Result := Result + + '
' + IntToStr( i + 1 ) + '' + + ' –¼‘OF ' + + '' + + '' + Res[i].FName + ' [' + Res[i].FMailTo + ']' + + ' “Še“úF' + + ' ' + Res[i].FDateTime+ '
' + + '
' + Res[i].FBody + '
'; + end; +end; + +function TOptionDialog.GetPreviewUserStyle(): string; +var + i : Integer; +begin + Result := ''; + // ƒtƒHƒ“ƒg‚âƒTƒCƒY‚̐ݒè + if CSSFontCheckBox.Checked then begin + i := ColorToRGB( FCSSFont.Color ); + i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16); + + Result := Result + + 'font-family:"' + FCSSFont.Name + '";' + + 'font-size:' + IntToStr( FCSSFont.Size ) + 'pt;' + + 'color:#' + IntToHex( i, 6 ) + ';'; + if fsBold in FCSSFont.Style then + Result := Result + 'font-weight:bold;' + else + Result := Result + 'font-weight:normal;'; + if fsItalic in FCSSFont.Style then + Result := Result + 'font-style:italic;' + else + Result := Result + 'font-style:normal;'; + end; + if CSSBackColorCheckBox.Checked then begin + i := ColorToRGB( FCSSBackColor ); + i := (i shr 16) or (i and $ff00) or ((i and $ff) shl 16); + + Result := Result + + 'background-color:#' + IntToHex( i, 6 ) + ';'; + end; + +end; procedure TOptionDialog.CSSListViewChange(Sender: TObject; Item: TListItem; Change: TItemChange); begin @@ -1577,6 +1733,7 @@ end; procedure TOptionDialog.OddResNumCheckBoxClick(Sender: TObject); begin OddResNumColorBox.Enabled := OddResNumCheckBox.Checked; + UnFocusedBoldCheckBox.Enabled := OddResNumCheckBox.Checked; end; procedure TOptionDialog.ResRangeHoldCheckBoxClick(Sender: TObject); @@ -1596,5 +1753,66 @@ begin end; end; +procedure TOptionDialog.MaxRecordCountEditExit(Sender: TObject); +begin + if not GikoSys.IsNumeric(MaxRecordCountEdit.Text) then + MaxRecordCountEdit.Text := '100' + else if StrToIntDef(MaxRecordCountEdit.Text, 100) <= 0 then + MaxRecordCountEdit.Text := '1'; +end; + +procedure TOptionDialog.BoukenDelButtonClick(Sender: TObject); +begin + if ( BoukenComboBox.Items.IndexOf( BoukenComboBox.Text ) <> -1 ) then begin + if MsgBox(Self.Handle, BoukenComboBox.Text + ' ‚ðíœ‚µ‚Ü‚·B'#13#10 + + 'íœ‚·‚é‚Æ•œŒ³‚Å‚«‚Ü‚¹‚ñB‚æ‚낵‚¢‚Å‚·‚©H', '”E–@’Ÿ@ƒhƒƒCƒ“íœ', MB_YESNO or MB_ICONQUESTION) = IDYES then begin + GikoSys.DelBoukenCookie(BoukenComboBox.Text); + GikoSys.Setting.WriteBoukenSettingFile; + BoukenComboBox.Items.Delete(BoukenComboBox.ItemIndex); + if ( BoukenComboBox.Items.Count = 0 ) then begin + BoukenComboBox.Text := ''; + end; + BoukenComboBox.OnChange(nil); + end + end else begin + BoukenComboBox.Text := ''; + end; +end; + +procedure TOptionDialog.BoukenComboBoxChange(Sender: TObject); +begin + BoukenEdit.Text := GikoSys.GetBoukenCookie('http://*' +BoukenComboBox.Text); +end; + +procedure TOptionDialog.BoukenModButtonClick(Sender: TObject); +var + DomainList : TStringList; + i : Integer; + s : String; +begin + if ( Length(BoukenComboBox.Text) > 0 ) then begin + s := BoukenComboBox.Text; + GikoSys.SetBoukenCookie(BoukenEdit.Text, s); + GikoSys.Setting.WriteBoukenSettingFile; + // –`Œ¯‚̏‘ƒhƒƒCƒ“ˆê——Žæ“¾ + BoukenComboBox.Text := ''; + BoukenComboBox.Items.Clear; + DomainList := TStringList.Create; + GikoSys.GetBoukenDomain(DomainList); + for i := 0 to DomainList.Count - 1 do begin + BoukenComboBox.Items.Add( DomainList[i] ) ; + end; + DomainList.Free; + BoukenComboBox.ItemIndex := 0; + for i := 0 to BoukenComboBox.Items.Count - 1 do begin + if ( BoukenComboBox.Items[i] = s) then begin + BoukenComboBox.ItemIndex := i; + Break; + end; + end; + BoukenComboBox.OnChange(nil); + end; +end; + end.