Componentes.Terceros.DevExp.../official/x.19/ExpressQuantumGrid 5/Demos/Delphi/EditorsStylesDemo/EditorsStylesDemoNoteBook.pas
2007-09-09 11:27:22 +00:00

232 lines
7.0 KiB
ObjectPascal

unit EditorsStylesDemoNoteBook;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, EditorsStylesDemoBase, cxColorComboBox, cxDropDownEdit,
cxFontNameComboBox, cxGroupBox, cxLabel, cxMemo, cxDBEdit, cxControls,
cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxCalendar, Menus,
cxPropertiesStore, cxDBColorComboBox, DB, cxDBFontNameComboBox,
cxNavigator, cxSplitter, ExtCtrls, cxSpinEdit, cxSpinButton, cxStyles,
cxCustomData, cxGraphics, cxFilter, cxData, cxDBData, cxClasses, cxImage,
cxDBNavigator;
type
TSpiralImageControl = class (TcxControl)
private
FBitmap: TBitmap;
protected
procedure Paint; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Bitmap: TBitmap read FBitmap write FBitmap;
end;
TEditorsStylesDemoNoteBookFrame = class(TEditorsStylesDemoBaseFrame)
cxGroupBox1: TcxGroupBox;
lblNote: TcxLabel;
cxGroupBox2: TcxGroupBox;
cxGroupBox3: TcxGroupBox;
pnSpiral: TPanel;
dbmText: TcxDBMemo;
gbDescriptionControls: TcxGroupBox;
cxFontNameComboBox: TcxFontNameComboBox;
cxSpinEdit: TcxSpinEdit;
gbFont: TcxGroupBox;
lbNoteFontColor: TcxLabel;
cbFontName: TcxDBFontNameComboBox;
cbFontColor: TcxDBColorComboBox;
lbTextSize: TcxLabel;
seTextSize: TcxDBSpinEdit;
lbBkGround: TcxLabel;
cbBkTextColor: TcxDBColorComboBox;
cxLabel2: TcxLabel;
lblDate: TcxLabel;
cxLabel1: TcxLabel;
cxDBDateEdit1: TcxDBDateEdit;
cxDBTextEdit1: TcxDBTextEdit;
cxDBNavigator1: TcxDBNavigator;
cxImage1: TcxImage;
procedure dsNoteBookDataChange(Sender: TObject; Field: TField);
procedure tblNoteBookAfterScroll(DataSet: TDataSet);
procedure cxSpinEditPropertiesChange(Sender: TObject);
procedure cxFontNameComboBoxPropertiesChange(Sender: TObject);
procedure FormShow(Sender: TObject);
private
FSpiralImageControl: TSpiralImageControl;
public
constructor Create(AOwner: TComponent); override;
procedure ChangeDisplayStyle(ADisplayStyle: TcxStyleSheetType); override;
function ShowControlsAboveDescription: Boolean; override;
function Name: string; override;
function BriefName: string; override;
function StylesIniPath: string; override;
function Description: String; override;
end;
var
EditorsStylesDemoNoteBookFrame: TEditorsStylesDemoNoteBookFrame;
implementation
uses EditorsStylesDemoData;
{$R *.dfm}
{ TEditorsStylesDemoNoteBookFrame }
constructor TEditorsStylesDemoNoteBookFrame.Create(AOwner: TComponent);
var
ABitmap: TBitmap;
begin
inherited Create(AOwner);
cbFontColor.Properties.PrepareDelphiColorList(False, False);
cbBkTextColor.Properties.PrepareDelphiColorList(False, False);
HintStyle := hcstRoundedInfo;
FDisplayStyle := shtWood;
FTempDisplayStyle := shtWood;
FSpiralImageControl := TSpiralImageControl.Create(Self);
FSpiralImageControl.Parent := pnSpiral;
FSpiralImageControl.Align := alClient;
FSpiralImageControl.Bitmap.Width := pnSpiral.Width;
FSpiralImageControl.Bitmap.Height := 25;
ABitmap := TBitmap.Create;
try
ABitmap.LoadFromFile(StylesIniPath + 'scWood.bmp');
FSpiralImageControl.Bitmap.Canvas.StretchDraw(FSpiralImageControl.Bitmap.Canvas.ClipRect, ABitmap);
finally
ABitmap.Free;
end;
cxFontNameComboBox.EditValue := 'MS Sans Serif';
end;
procedure TEditorsStylesDemoNoteBookFrame.dsNoteBookDataChange(Sender: TObject;
Field: TField);
begin
with EditorsStylesDemoDataDM do
begin
if Field = tblNoteBookNoteFont then
dbmText.Style.Font.Name := tblNoteBookNoteFont.Value else
if Field = tblNoteBookNoteFontColor then
dbmText.Style.Font.Color := tblNoteBookNoteFontColor.Value else
if Field = tblNoteBookNOTETEXTSIZE then
dbmText.Style.Font.Size := tblNoteBookNOTETEXTSIZE.Value else
if Field = tblNoteBookNOTETEXTBKCOLOR then
dbmText.Style.Color := tblNoteBookNOTETEXTBKCOLOR.Value;
end;
end;
procedure TEditorsStylesDemoNoteBookFrame.tblNoteBookAfterScroll(
DataSet: TDataSet);
begin
if DataSet.State = dsInsert then
begin
dbmText.Style.Font.Color := 0;
dbmText.Style.Font.Name := 'MS Sans Serif';
end
else
with EditorsStylesDemoDataDM do
begin
dbmText.Style.Font.Color := tblNoteBookNoteFontColor.Value;
dbmText.Style.Font.Name := tblNoteBookNoteFont.Value;
dbmText.Style.Font.Size := tblNoteBookNOTETEXTSIZE.Value;
dbmText.Style.Color := tblNoteBookNOTETEXTBKCOLOR.Value;
end;
end;
function TEditorsStylesDemoNoteBookFrame.Name: string;
begin
Result := 'Notebook';
end;
function TEditorsStylesDemoNoteBookFrame.BriefName: string;
begin
Result := 'Notebook';
end;
function TEditorsStylesDemoNoteBookFrame.StylesIniPath: string;
begin
Result := 'StylesFrmNoteBook\';
end;
function TEditorsStylesDemoNoteBookFrame.Description: String;
begin
Result := 'Notebook Notes';
end;
function TEditorsStylesDemoNoteBookFrame.ShowControlsAboveDescription: Boolean;
begin
Result := True;
end;
{ TSpiralImageControl }
constructor TSpiralImageControl.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FBitMap := TBitMap.Create;
end;
destructor TSpiralImageControl.Destroy;
begin
FBitMap.Free;
inherited;
end;
procedure TSpiralImageControl.Paint;
begin
Canvas.FillRect(ClientRect, FBitMap);
end;
procedure TEditorsStylesDemoNoteBookFrame.ChangeDisplayStyle(
ADisplayStyle: TcxStyleSheetType);
var
sFileName: String;
ABitmap: TBitmap;
begin
inherited ChangeDisplayStyle(ADisplayStyle);
case FTempDisplayStyle of
shtLightBlue: sFileName := 'scLightBlue.bmp';
shtLightGray: sFileName := 'scLightGray.bmp';
shtWood: sFileName := 'scWood.bmp';
shtRainyDay: sFileName := 'scRainyDay.bmp';
shtBrick: sFileName := 'scBrick.bmp';
shtDeepSea: sFileName := 'scDeepSea.bmp';
end;
ABitmap := TBitmap.Create;
try
ABitmap.LoadFromFile(StylesIniPath + sFileName);
FSpiralImageControl.Bitmap.Canvas.StretchDraw(FSpiralImageControl.Bitmap.Canvas.ClipRect, ABitmap);
FSpiralImageControl.Paint;
finally
ABitmap.Free;
end;
end;
procedure TEditorsStylesDemoNoteBookFrame.cxSpinEditPropertiesChange(
Sender: TObject);
begin
memDescrip.Style.Font.Size := StrToInt(cxSpinEdit.Text);
end;
procedure TEditorsStylesDemoNoteBookFrame.cxFontNameComboBoxPropertiesChange(
Sender: TObject);
begin
memDescrip.Style.Font.Name := cxFontNameComboBox.EditValue;
end;
procedure TEditorsStylesDemoNoteBookFrame.FormShow(Sender: TObject);
begin
EditorsStylesDemoDataDM.tblNoteBook.AfterScroll := tblNoteBookAfterScroll;
EditorsStylesDemoDataDM.dsNoteBook.OnDataChange := dsNoteBookDataChange;
tblNoteBookAfterScroll(EditorsStylesDemoDataDM.tblNoteBook);
end;
initialization
EditorsStylesDemoFrameManager.RegisterFrameClass(TEditorsStylesDemoNoteBookFrame);
end.