Update of /cvsroot/jvcl/dev/JVCL3/qexamples/JvColorCombo In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2309/JVCL3/qexamples/JvColorCombo Added Files: ColorComboDemo.dpr JvColorComboDemoMainFormU.pas JvColorComboDemoMainFormU.xfm QColorComboDemo.dof QColorComboDemo.kof Log Message: More clx examples --- NEW FILE: JvColorComboDemoMainFormU.pas --- {******************************************************************************} {* WARNING: JEDI VCL To CLX Converter generated unit. *} {* Manual modifications will be lost on next release. *} {******************************************************************************} {****************************************************************** JEDI-VCL Demo Copyright (C) 2002 Project JEDI Original author: Contributor(s): You may retrieve the latest version of this file at the JEDI-JVCL home page, located at http://jvcl.sourceforge.net The contents of this file are used with permission, subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1_1Final.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. ******************************************************************} unit JvColorComboDemoMainFormU; interface uses QWindows, QMessages, SysUtils, Classes, QGraphics, QControls, QForms, QDialogs, JvQColorCombo, QStdCtrls, JvQCombobox, JvQExStdCtrls, QExtCtrls; type TJvColorComboDemoMainForm = class(TForm) JvColorComboBox1: TJvColorComboBox; memInfo: TMemo; btnColorNames: TButton; Label1: TLabel; Label2: TLabel; edNameTemplate: TEdit; chkAllowCustom: TCheckBox; btnViewCustom: TButton; Label3: TLabel; cbDisplayStyle: TComboBox; btnSaveCustom: TButton; btnLoadCustom: TButton; Label4: TLabel; btnClearCustom: TButton; Bevel1: TBevel; procedure FormCreate(Sender: TObject); procedure btnColorNamesClick(Sender: TObject); procedure JvColorComboBox1NewColor(Sender: TObject; Color: TColor; var DisplayName: string; var AllowAdd: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure btnViewCustomClick(Sender: TObject); procedure cbDisplayStyleChange(Sender: TObject); procedure JvColorComboBox1Change(Sender: TObject); procedure btnSaveCustomClick(Sender: TObject); procedure btnLoadCustomClick(Sender: TObject); procedure btnClearCustomClick(Sender: TObject); private procedure LoadSettings; procedure SaveSettings; end; var JvColorComboDemoMainForm: TJvColorComboDemoMainForm; implementation uses IniFiles; {$R *.xfm} procedure TJvColorComboDemoMainForm.FormCreate(Sender: TObject); begin LoadSettings; cbDisplayStyle.ItemIndex := 1; cbDisplayStyleChange(nil); end; procedure TJvColorComboDemoMainForm.btnColorNamesClick(Sender: TObject); begin memInfo.Lines := JvColorComboBox1.ColorNameMap; end; procedure TJvColorComboDemoMainForm.JvColorComboBox1NewColor(Sender: TObject; Color: TColor; var DisplayName: string; var AllowAdd: Boolean); begin // make sure the new color isn't already in the list AllowAdd := JvColorComboBox1.FindColor(Color) < 0; if AllowAdd then begin if edNameTemplate.Text <> '' then // CustomColorCount isn't incremented until *after* this event has finished with AllowAdd = true, so add 1 here: DisplayName := Format(edNameTemplate.Text, [JvColorComboBox1.CustomColorCount + 1]); end; end; procedure TJvColorComboDemoMainForm.LoadSettings; var CurColor: TColor; S: string; SL: TStringlist; i: integer; begin // load color name map and saved custom colors CurColor := JvColorComboBox1.ColorValue; try S := ChangeFileExt(Application.ExeName, '.ini'); if FileExists(S) then begin SL := TStringlist.Create; try with TIniFile.Create(S) do try edNameTemplate.Text := ReadString('Settings', 'Custom Template', edNameTemplate.Text); ReadSectionValues('Color Names', JvColorComboBox1.ColorNameMap); ReadSection('Custom Colors', SL); for i := 0 to SL.Count - 1 do JvColorComboBox1.AddColor(StringToColor(SL[i]),''); finally Free; end; finally SL.Free; end; end; finally JvColorComboBox1.ColorValue := CurColor; cbDisplayStyleChange(nil); end; end; procedure TJvColorComboDemoMainForm.SaveSettings; var i: integer; AList: TList; begin // save color name map and current custom colors JvColorComboBox1.Options := JvColorComboBox1.Options - [coCustomColors]; try with TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')) do try AList := TList.Create; try JvColorComboBox1.GetCustomColors(AList); EraseSection('Custom Colors'); for i := 0 to AList.Count - 1 do WriteString('Custom Colors', ColorToString(integer(AList[i])), ''); finally AList.Free; end; WriteString('Settings', 'Custom Template', edNameTemplate.Text); // save color map so users can translate them if they wish // no need to save the custom names since they are // set dynamically at load time (see JvColorComboBox1NewColor) EraseSection('Color Names'); with JvColorComboBox1.ColorNameMap do for i := 0 to Count - 1 do WriteString('Color Names', Names[i], Values[Names[i]]); finally Free; end; finally cbDisplayStyleChange(nil); end; end; procedure TJvColorComboDemoMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin SaveSettings; end; procedure TJvColorComboDemoMainForm.btnViewCustomClick(Sender: TObject); var AList: TList; i: integer; begin AList := TList.Create; memInfo.Lines.Clear; try // the returned TList contains a list of TColor items JvColorComboBox1.GetCustomColors(AList); for i := 0 to AList.Count - 1 do memInfo.Lines.Add(ColorToString(integer(AList[i]))); finally AList.Free; end; end; procedure TJvColorComboDemoMainForm.cbDisplayStyleChange(Sender: TObject); var O: TJvColorComboOptions; begin O := JvColorComboBox1.Options; O := O - [coText, coHex, coRGB, coCustomColors]; if chkAllowCustom.Checked then Include(O, coCustomColors); case cbDisplayStyle.ItemIndex of 1: Include(O, coText); 2: Include(O, coHex); 3: Include(O, coRGB); end; JvColorComboBox1.Options := O; end; procedure TJvColorComboDemoMainForm.JvColorComboBox1Change( Sender: TObject); begin Caption := Format('Color: %s',[ColorToString(JvColorComboBox1.ColorValue)]); end; procedure TJvColorComboDemoMainForm.btnSaveCustomClick(Sender: TObject); var AList: TList; i: integer; S:TStringlist; begin AList := TList.Create; S := TStringlist.Create; try // the returned TList contains a list of TColor items JvColorComboBox1.GetCustomColors(AList); for i := 0 to AList.Count - 1 do S.Add(IntToStr(integer(AList[i]))); S.SaveToFile(ChangeFileExt(Application.ExeName,'.col')); finally AList.Free; end; end; procedure TJvColorComboDemoMainForm.btnLoadCustomClick(Sender: TObject); var i: integer; S:TStringlist; begin if FileExists(ChangeFileExt(Application.ExeName,'.col')) then begin // remove custom colors JvColorComboBox1.Options := JvColorComboBox1.Options - [coCustomColors]; JvColorComboBox1.GetColors; JvColorComboBox1.Options := JvColorComboBox1.Options + [coCustomColors]; S := TStringlist.Create; try S.LoadFromFile(ChangeFileExt(Application.ExeName,'.col')); for i := 0 to S.Count - 1 do JvColorComboBox1.AddColor(StrToIntDef(S[i],0),''); finally S.Free; end; end; end; procedure TJvColorComboDemoMainForm.btnClearCustomClick(Sender: TObject); begin // remove custom colors JvColorComboBox1.Options := JvColorComboBox1.Options - [coCustomColors]; JvColorComboBox1.GetColors; JvColorComboBox1.Options := JvColorComboBox1.Options + [coCustomColors]; end; end. --- NEW FILE: ColorComboDemo.dpr --- {******************************************************************************} {* WARNING: JEDI VCL To CLX Converter generated unit. *} {* Manual modifications will be lost on next release. *} {******************************************************************************} program ColorComboDemo; uses QForms, JvColorComboDemoMainFormU in 'JvColorComboDemoMainFormU.pas' {JvColorComboDemoMainForm}, JvQExStdCtrls in '..\..\qrun\JvQExStdCtrls.pas'; {$R *.res} begin Application.Initialize; Application.CreateForm(TJvColorComboDemoMainForm, JvColorComboDemoMainForm); Application.Run; end. --- NEW FILE: QColorComboDemo.kof --- [Compiler] UnsafeType=0 UnsafeCode=0 UnsafeCast=0 [Directories] OutputDir=../bin UnitOutputDir=../dcu SearchPath=../../qrun:../../qcommon:../../common --- NEW FILE: JvColorComboDemoMainFormU.xfm --- object JvColorComboDemoMainForm: TJvColorComboDemoMainForm Left = 459 Top = 135 Width = 476 Height = 454 Caption = 'JvColorCombo Demo' Color = clBtnFace Constraints.MinHeight = 250 Constraints.MinWidth = 476 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Shell Dlg 2' Font.Style = [] OldCreateOrder = False OnCloseQuery = FormCloseQuery OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 16 Top = 8 Width = 34 Height = 13 Caption = 'Colors:' end object Label2: TLabel Left = 172 Top = 8 Width = 99 Height = 13 Caption = 'Custom Color Prefix:' end object Label3: TLabel Left = 304 Top = 8 Width = 38 Height = 13 Caption = 'Display:' end object Label4: TLabel Left = 16 Top = 368 Width = 73 Height = 13 Anchors = [akLeft, akBottom] Caption = 'Custom Colors:' end object Bevel1: TBevel Left = 96 Top = 376 Width = 361 Height = 17 Anchors = [akLeft, akRight, akBottom] Shape = bsTopLine end object JvColorComboBox1: TJvColorComboBox Left = 16 Top = 24 Width = 145 Height = 20 ColorNameMap.Strings = ( 'clBlack=Black' 'clMaroon=Maroon' 'clGreen=Green' 'clOlive=Olive' 'clNavy=Navy' 'clPurple=Purple' 'clTeal=Teal' 'clGray=Gray' 'clSilver=Silver' 'clRed=Red' 'clLime=Lime' 'clYellow=Yellow' 'clBlue=Blue' 'clFuchsia=Fuchsia' 'clAqua=Aqua' 'clLtGray=Light Gray' 'clDkGray=Dark Gray' 'clWhite=White' 'clMoneyGreen=Money Green' 'clSkyBlue=Sky Blue' 'clCream=Cream' 'clMedGray=Medium Gray' 'clScrollBar=ScrollBar' 'clBackground=Background' 'clActiveCaption=Active Caption' 'clInactiveCaption=Inactive Caption' 'clMenu=Menu' 'clWindow=Window' 'clWindowFrame=Window Frame' 'clMenuText=Menu Text' 'clWindowText=Window Text' 'clCaptionText=Caption Text' 'clActiveBorder=Active Border' 'clInactiveBorder=Inactive Border' 'clAppWorkSpace=Application Workspace' 'clHighlight=Highlight' 'clHighlightText=Highlight Text' 'clBtnFace=Button Face' 'clBtnShadow=Button Shadow' 'clGrayText=Gray Text' 'clBtnText=Button Text' 'clInactiveCaptionText=Inactive Caption Text' 'clBtnHighlight=Button Highlight' 'cl3DDkShadow=3D Dark Shadow' 'cl3DLight=3D Light' 'clInfoText=Info Text' 'clInfoBk=Info Background' 'clHotLight=Hot Light' 'clGradientActiveCaption=Gradient Active Caption' 'clGradientInactiveCaption=Gradient Inactive Caption' 'clMenuHighlight=Menu Highlight' 'clMenuBar=MenuBar' 'clNone=None' 'clDefault=Default') ColorDialogText = '(Other...)' DroppedDownWidth = 145 NewColorText = 'Custom Color %d' Options = [coText, coSysColors, coCustomColors] OnNewColor = JvColorComboBox1NewColor TabOrder = 0 OnChange = JvColorComboBox1Change end object memInfo: TMemo Left = 16 Top = 96 Width = 433 Height = 257 Anchors = [akLeft, akTop, akRight, akBottom] ScrollBars = ssVertical TabOrder = 1 end object btnColorNames: TButton Left = 16 Top = 64 Width = 90 Height = 25 Caption = 'Get Color Map:' TabOrder = 2 OnClick = btnColorNamesClick end object edNameTemplate: TEdit Left = 172 Top = 24 Width = 121 Height = 21 TabOrder = 3 Text = 'Custom Color %d' end object chkAllowCustom: TCheckBox Left = 173 Top = 66 Width = 113 Height = 17 Caption = 'Display Color Dialog' Checked = True State = cbChecked TabOrder = 4 OnClick = cbDisplayStyleChange end object btnViewCustom: TButton Left = 184 Top = 392 Width = 75 Height = 25 Anchors = [akLeft, akBottom] Caption = 'View' TabOrder = 5 OnClick = btnViewCustomClick end object cbDisplayStyle: TComboBox Left = 304 Top = 23 Width = 145 Height = 21 Style = csDropDownList ItemHeight = 13 TabOrder = 6 OnChange = cbDisplayStyleChange Items.Strings = ( '(none)' 'Text' 'Hex' 'RGB') end object btnSaveCustom: TButton Left = 24 Top = 392 Width = 75 Height = 25 Anchors = [akLeft, akBottom] Caption = 'Save' TabOrder = 7 OnClick = btnSaveCustomClick end object btnLoadCustom: TButton Left = 104 Top = 392 Width = 75 Height = 25 Anchors = [akLeft, akBottom] Caption = 'Load' TabOrder = 8 OnClick = btnLoadCustomClick end object btnClearCustom: TButton Left = 264 Top = 392 Width = 75 Height = 25 Anchors = [akLeft, akBottom] Caption = 'Clear' TabOrder = 9 OnClick = btnClearCustomClick end end --- NEW FILE: QColorComboDemo.dof --- [Compiler] UnsafeType=0 UnsafeCode=0 UnsafeCast=0 [Directories] OutputDir=..\bin UnitOutputDir=..\dcu SearchPath=..\..\qrun;..\..\qcommon;..\..\common |