Componentes.Terceros.UserCo.../internal/2.31RC1/1/Source/UCXPSettings.pas
david cc4a514b7b - Compilación para D2009
- UCBase.pas -> Modificado el formato de las fechas de 'dd/mm/yyyy' a 'mm/dd/yyyy' para que funcione con Firebird.
- UCBase.pas -> Cuando se llama a DelCurrentUser comprobar que realmente hay un usuario registrado.

git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.UserControl@22 970f2627-a9d2-4748-b3d4-b5283c4fe7db
2009-03-01 17:39:41 +00:00

447 lines
14 KiB
ObjectPascal

{
Class UCXPSettings:
Based on XPMenu 3.1 for Delphi
XPMenu for Delphi
Author: Khaled Shagrouni
URL: http://www.shagrouni.com/english/software/xpmenu.html
e-mail: khaled@shagrouni.com
Version 3.1 - 22.02.2004
XPMenu is a Delphi component to mimic Office XP menu and toolbar style.
Copyright (C) 2001, 2003 Khaled Shagrouni.
This component is FREEWARE with source code. I still hold the copyright, but
you can use it for whatever you like: freeware, shareware or commercial software.
If you have any ideas for improvement or bug reports, don't hesitate to e-mail
me <khaled@shagrouni.com> (Please state the XPMenu version and OS information).
--------------------------------------------------------------------------------
changes by QmD 30/11/2003 - qmd@usercontrol.com.br
* Add BitBtnColor / BitBtnSelectColor by QmD 30/11/2003 - qmd@usercontrol.com.br
* BitBtn Button multi-line corrected
* 29/03/2004 - XPmenu 2.21 incorporated in User Control Package. Class renamed to UCXPMenu to prevent conflicts (http://usercontrol.sourceforge.net)
changes by fduenas 29/12/2004 - fduenas@outm.net, fduenas@flashmail.com
* XPMenu.pas 3.1 Ported to UCXPStyle.pas by Francisco Dueñas fduenas@outm.net.
* File UCXPMenu.pas renamed to UCXPStyle.pas
* Class UCXPSet renamed to UCXPSettings
* File UCXPSet.pas renamed to UCXPSettings.pas
}
{$IFDEF VER130}
{$DEFINE VER5U}
{$ENDIF}
{$IFDEF VER140}
{$DEFINE VER5U}
{$DEFINE VER6U}
{$ENDIF}
{$IFDEF VER150}
{$DEFINE VER5U}
{$DEFINE VER6U}
{$DEFINE VER7U}
{$ENDIF}
unit UCXPSettings;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, ComCtrls, Forms,
Menus, Commctrl, ExtCtrls, StdCtrls, Buttons;
type
TUCXPContainer = (xccForm, xccFrame, xccToolbar, xccCoolbar, xccControlbar, xccPanel,
xccScrollBox, xccGroupBox, xccTabSheet, xccPageScroller);
TUCXPContainers = set of TUCXPContainer;
TUCXPControl = (xcMainMenu, xcPopupMenu, xcToolbar, xcControlbar, xcCombo, xcListBox,
xcEdit, xcMaskEdit, xcMemo, xcRichEdit, xcMiscEdit, xcCheckBox,
xcRadioButton, xcButton, xcBitBtn, xcSpeedButton, xcUpDown, xcPanel,
xcGroupBox, xcTreeView, xcListView, xcProgressBar, xcHotKey);
{xcStringGrid, xcDrawGrid, xcDBGrid)}
TUCXPControls = set of TUCXPControl;
TUCXPSettings = class(TPersistent)
private
{from UCXPStyle class}
FFont: TFont;
FColor: TColor;
FIconBackColor: TColor;
FMenuBarColor: TColor;
FCheckedColor: TColor;
FSeparatorColor: TColor;
FSelectBorderColor: TColor;
FSelectColor: TColor;
FDisabledColor: TColor;
FSelectFontColor: TColor;
FIconWidth: integer;
FDrawSelect: boolean;
FUseSystemColors: boolean;
FColorsChanged: boolean; // +jt
{END from UCXPStyle class}
{from UCXPStyle class}
FOverrideOwnerDraw: boolean;
FGradient: boolean;
FFlatMenu: boolean;
FAutoDetect: boolean;
FUCXPContainers: TUCXPContainers;
FUCXPControls: TUCXPControls;
FGrayLevel: byte;
FDimLevel: byte;
FDrawMenuBar: boolean;
FUseDimColor: boolean;
{END from UCXPStyle class}
FBitBtnColor: TColor; //qmd
{from UCXPStyle class}
procedure SetFont(const Value: TFont);
procedure SetColor(const Value: TColor);
procedure SetIconBackColor(const Value: TColor);
procedure SetMenuBarColor(const Value: TColor);
procedure SetCheckedColor(const Value: TColor);
procedure SetDisabledColor(const Value: TColor);
procedure SetSelectColor(const Value: TColor);
procedure SetSelectBorderColor(const Value: TColor);
procedure SetSeparatorColor(const Value: TColor);
procedure SetSelectFontColor(const Value: TColor);
procedure SetIconWidth(const Value: integer);
procedure SetDrawSelect(const Value: boolean);
procedure SetUseSystemColors(const Value: boolean);
procedure SetOverrideOwnerDraw(const Value: boolean);
procedure SetGradient(const Value: boolean);
procedure SetFlatMenu(const Value: boolean);
procedure SetDrawMenuBar(const Value: boolean);
procedure SetUseDimColor(const Value: boolean);
procedure SetAutoDetect(const Value: boolean);
procedure SetUCXPContainers(const Value: TUCXPContainers);
procedure SetUCXPControls(const Value: TUCXPControls);
{END from UCXPStyle class}
procedure SetBitBtnColor( const Value: TColor);
procedure SetColorsChanged(const Value: boolean);
protected
public
constructor Create(AOwner: TComponent);// override;
procedure Assign(Source: TPersistent);override;
destructor Destroy; override;
published
{ from UCXPStyle class}
property DimLevel: Byte read FDimLevel write FDimLevel;
property GrayLevel: Byte read FGrayLevel write FGrayLevel;
property Font: TFont read FFont write SetFont;
property Color: TColor read FColor write SetColor;
property DrawMenuBar: boolean read FDrawMenuBar write SetDrawMenuBar;
property IconBackColor: TColor read FIconBackColor write SetIconBackColor;
property MenuBarColor: TColor read FMenuBarColor write SetMenuBarColor;
property SelectColor: TColor read FSelectColor write SetSelectColor;
property SelectBorderColor: TColor read FSelectBorderColor
write SetSelectBorderColor;
property SelectFontColor: TColor read FSelectFontColor
write SetSelectFontColor;
property DisabledColor: TColor read FDisabledColor write SetDisabledColor;
property SeparatorColor: TColor read FSeparatorColor
write SetSeparatorColor;
property CheckedColor: TColor read FCheckedColor write SetCheckedColor;
property IconWidth: integer read FIconWidth write SetIconWidth;
property DrawSelect: boolean read FDrawSelect write SetDrawSelect;
property UseSystemColors: boolean read FUseSystemColors
write SetUseSystemColors;
property UseDimColor: boolean read FUseDimColor write SetUseDimColor;
property OverrideOwnerDraw: boolean read FOverrideOwnerDraw
write SetOverrideOwnerDraw;
property Gradient: boolean read FGradient write SetGradient;
property FlatMenu: boolean read FFlatMenu write SetFlatMenu;
property AutoDetect: boolean read FAutoDetect write SetAutoDetect;
property XPContainers: TUCXPContainers read FUCXPContainers write SetUCXPContainers
default [xccForm, xccFrame, xccToolbar, xccCoolbar, xccControlbar, xccPanel,
xccScrollBox, xccGroupBox, xccTabSheet, xccPageScroller];
property XPControls :TUCXPControls read FUCXPControls write SetUCXPControls
default [xcMainMenu, xcPopupMenu, xcToolbar, xcControlbar, xcCombo, xcListBox,
xcEdit, xcMaskEdit, xcMemo, xcRichEdit, xcMiscEdit, xcCheckBox,
xcRadioButton, xcButton, xcBitBtn, xcSpeedButton, xcUpDown, xcPanel,
xcGroupBox, xcTreeView, xcListView, xcProgressBar, xcHotKey];
{xcStringGrid, xcDrawGrid, xcDBGrid];}
{ END from UCXPStyle class}
property BitBtnColor: TColor read FBitBtnColor write SetBitBtnColor; {qmd}
property ColorsChanged: boolean read FColorsChanged write SetColorsChanged;
end;
procedure GetSystemMenuFont(Font: TFont);
implementation
{ TUCXPSettings }
procedure TUCXPSettings.Assign(Source: TPersistent);
begin
if Source is TUCXPSettings then
begin
{Based on UCXPStyle.Create method}
Self.Font := TUCXPSettings(Source).Font;
Self.Color := TUCXPSettings(Source).Color;
Self.IconBackColor := TUCXPSettings(Source).IconBackColor;
Self.MenuBarColor := TUCXPSettings(Source).MenuBarColor;
Self.CheckedColor := TUCXPSettings(Source).CheckedColor;
Self.SeparatorColor := TUCXPSettings(Source).SeparatorColor;
Self.SelectBorderColor := TUCXPSettings(Source).SelectBorderColor;
Self.SelectColor := TUCXPSettings(Source).SelectColor;
Self.DisabledColor := TUCXPSettings(Source).DisabledColor;
Self.SelectFontColor := TUCXPSettings(Source).SelectFontColor;
Self.IconWidth := TUCXPSettings(Source).IconWidth;
Self.DrawSelect := TUCXPSettings(Source).DrawSelect;
Self.UseSystemColors := TUCXPSettings(Source).UseSystemColors;
Self.OverrideOwnerDraw := TUCXPSettings(Source).OverrideOwnerDraw;
Self.Gradient := TUCXPSettings(Source).Gradient;
Self.FlatMenu := TUCXPSettings(Source).FlatMenu;
Self.AutoDetect := TUCXPSettings(Source).AutoDetect;
Self.XPContainers := TUCXPSettings(Source).XPContainers;
Self.XPControls := TUCXPSettings(Source).XPControls;
Self.GrayLevel := TUCXPSettings(Source).GrayLevel;
Self.DimLevel := TUCXPSettings(Source).DimLevel;
Self.DrawMenuBar := TUCXPSettings(Source).DrawMenuBar;
Self.UseDimColor := TUCXPSettings(Source).UseDimColor;
{END from UCXPStyle class}
Self.BitBtnColor := TUCXPSettings(Source).BitBtnColor; //qmd
end else inherited;
end;
constructor TUCXPSettings.Create(AOwner: TComponent);
begin
inherited Create;//(AOwner);
{ if csDesigning in ComponentState then
begin}
{FROM to UCXPSettings}
FFont := TFont.Create;
{$IFDEF VER5U}
FFont.Assign(Screen.MenuFont);
{$ELSE}
GetSystemMenuFont(FFont);
{$ENDIF}
FUseSystemColors := true;
FColor := clBtnFace;
FIconBackColor := clBtnFace;
FSelectColor := clHighlight;
FSelectBorderColor := clHighlight;
FMenuBarColor := clBtnFace;
FDisabledColor := clInactiveCaption;
FSeparatorColor := clBtnFace;
FCheckedColor := clHighlight;
FSelectFontColor := FFont.Color;
FGrayLevel := 10;
FDimLevel := 30;
FIconWidth := 24;
FDrawSelect := true;
XPContainers := [xccForm, xccFrame, xccToolbar, xccCoolbar, xccControlbar, xccPanel,
xccScrollBox, xccGroupBox, xccTabSheet, xccPageScroller];
XPControls := [xcMainMenu, xcPopupMenu, xcToolbar, xcControlbar, xcCombo, xcListBox,
xcEdit, xcMaskEdit, xcMemo, xcRichEdit, xcMiscEdit, xcCheckBox,
xcRadioButton, xcButton, xcBitBtn, xcSpeedButton, xcUpDown, xcPanel,
xcGroupBox, xcTreeView, xcListView, xcProgressBar, xcHotKey];
{xcStringGrid, xcDrawGrid, xcDBGrid];}
{END FROM to UCXPSettings}
FBitBtnColor := clBtnFace;
// end;
end;
destructor TUCXPSettings.Destroy;
begin
FreeAndNil(FFont);
inherited;
end;
{END from UCXPStyle}
procedure TUCXPSettings.SetFont(const Value: TFont);
begin
FFont.Assign(Value);
//Windows.DrawMenuBar(FForm.Handle);
end;
procedure TUCXPSettings.SetColor(const Value: TColor);
begin
FColor := Value;
FColorsChanged := true; // +jt
end;
procedure TUCXPSettings.SetIconBackColor(const Value: TColor);
begin
FIconBackColor := Value;
FColorsChanged := true; // +jt
end;
procedure TUCXPSettings.SetMenuBarColor(const Value: TColor);
begin
FMenuBarColor := Value;
FColorsChanged := true; // +jt
//Windows.DrawMenuBar(FForm.Handle);
end;
procedure TUCXPSettings.SetCheckedColor(const Value: TColor);
begin
FCheckedColor := Value;
FColorsChanged := true; // +jt
end;
procedure TUCXPSettings.SetSeparatorColor(const Value: TColor);
begin
FSeparatorColor := Value;
FColorsChanged := true; // +jt
end;
procedure TUCXPSettings.SetSelectBorderColor(const Value: TColor);
begin
FSelectBorderColor := Value;
FColorsChanged := true; // +jt
end;
procedure TUCXPSettings.SetSelectColor(const Value: TColor);
begin
FSelectColor := Value;
FColorsChanged := true; // +jt
end;
procedure TUCXPSettings.SetDisabledColor(const Value: TColor);
begin
FDisabledColor := Value;
FColorsChanged := true; // +jt
end;
procedure TUCXPSettings.SetSelectFontColor(const Value: TColor);
begin
FSelectFontColor := Value;
FColorsChanged := true; // +jt
end;
procedure TUCXPSettings.SetIconWidth(const Value: integer);
begin
FIconWidth := Value;
end;
procedure TUCXPSettings.SetDrawSelect(const Value: boolean);
begin
FDrawSelect := Value;
end;
procedure TUCXPSettings.SetOverrideOwnerDraw(const Value: boolean);
begin
FOverrideOwnerDraw := Value;
{
if FActive then
Active := True;
}
end;
procedure TUCXPSettings.SetUseSystemColors(const Value: boolean);
begin
FUseSystemColors := Value;
{Windows.DrawMenuBar(FForm.Handle);}
end;
procedure TUCXPSettings.SetGradient(const Value: boolean);
begin
FGradient := Value;
end;
procedure TUCXPSettings.SetFlatMenu(const Value: boolean);
begin
FFlatMenu := Value;
end;
procedure TUCXPSettings.SetUCXPContainers(const Value: TUCXPContainers);
begin
if Value <> FUCXPContainers then
begin
{if FActive then
begin
FActive := false;
InitItems(FForm, false, true);
FActive := true;
FUCXPContainers := Value;
InitItems(FForm, true, true);
end;}
end;
FUCXPContainers := Value;
end;
procedure TUCXPSettings.SetUCXPControls(const Value: TUCXPControls);
begin
if Value <> FUCXPControls then
begin
{ if FActive then
begin
FActive := false;
InitItems(FForm, false, true);
FActive := true;
FUCXPControls := Value;
InitItems(FForm, true, true);
end;}
end;
FUCXPControls := Value;
end;
procedure TUCXPSettings.SetDrawMenuBar(const Value: boolean);
begin
FDrawMenuBar := Value;
end;
procedure TUCXPSettings.SetUseDimColor(const Value: boolean);
begin
FUseDimColor := Value;
end;
procedure TUCXPSettings.SetAutoDetect(const Value: boolean);
begin
FAutoDetect := Value;
end;
{END from UCXPStyle}
procedure TUCXPSettings.SetBitBtnColor( const Value: TColor);
begin
FBitBtnColor := Value;
end;
procedure TUCXPSettings.SetColorsChanged(const Value: boolean);
begin
FColorsChanged := Value;
end;
//generic
procedure GetSystemMenuFont(Font: TFont);
var
FNonCLientMetrics: TNonCLientMetrics;
begin
FNonCLientMetrics.cbSize := Sizeof(TNonCLientMetrics);
if SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, @FNonCLientMetrics,0) then
begin
Font.Handle := CreateFontIndirect(FNonCLientMetrics.lfMenuFont);
Font.Color := clMenuText;
end;
end;
end.