git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@29 05c56307-c608-d34a-929d-697000501d7a
916 lines
35 KiB
ObjectPascal
916 lines
35 KiB
ObjectPascal
{*******************************************************************}
|
|
{ }
|
|
{ ExpressWeb Framework by Developer Express }
|
|
{ WebDateEdit Control }
|
|
{ }
|
|
{ Copyright (c) 2000-2008 Developer Express Inc. }
|
|
{ ALL RIGHTS RESERVED }
|
|
{ }
|
|
{ The entire contents of this file is protected by U.S. and }
|
|
{ International Copyright Laws. Unauthorized reproduction, }
|
|
{ reverse-engineering, and distribution of all or any portion of }
|
|
{ the code contained in this file is strictly prohibited and may }
|
|
{ result in severe civil and criminal penalties and will be }
|
|
{ prosecuted to the maximum extent possible under the law. }
|
|
{ }
|
|
{ RESTRICTIONS }
|
|
{ }
|
|
{ THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES }
|
|
{ (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE }
|
|
{ SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS }
|
|
{ LICENSED TO DISTRIBUTE THE EXPRESSWEB FRAMEWORK AND ALL }
|
|
{ ACCOMPANYING VCL CLASSES AS PART OF AN EXECUTABLE WEB }
|
|
{ APPLICATION ONLY. }
|
|
{ }
|
|
{ THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED }
|
|
{ FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE }
|
|
{ COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE }
|
|
{ AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT }
|
|
{ AND PERMISSION FROM DEVELOPER EXPRESS INC. }
|
|
{ }
|
|
{ CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON }
|
|
{ ADDITIONAL RESTRICTIONS. }
|
|
{ }
|
|
{*******************************************************************}
|
|
|
|
unit cxWebDateEdit;
|
|
|
|
{$I cxVer.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, Types, TypInfo,
|
|
cxWebTypes, cxWebIntf, cxWebRender, cxWebClasses, cxWebCalendar;
|
|
|
|
type
|
|
TcxWebDateEditEvent = (ceOnSelectDay, ceOnShiftMonth, ceOnValidateEditText);
|
|
|
|
TcxWebDateEditEventsHelper = class(TcxWebCalendarEventsHelper)
|
|
protected
|
|
function EventName(const AEvent: Integer): string; override;
|
|
function EventProcParams(const AEvent: Integer): string; override;
|
|
public
|
|
function EventTypeInfo: PTypeInfo; override;
|
|
end;
|
|
|
|
TcxCustomWebDateEdit = class(TcxCustomWebCalendar, IcxWebTabOrderable)
|
|
private
|
|
FButtonImageIndex: Integer;
|
|
FButtonWidth: Integer;
|
|
FButtonStyles: TcxWebStyles;
|
|
FEditorStyles: TcxWebStyles;
|
|
FTextHeight: Integer;
|
|
|
|
function GetButtonStyles: TcxWebStyles;
|
|
function GetEditorStyles: TcxWebStyles;
|
|
procedure SetButtonStyles(AValue: TcxWebStyles);
|
|
procedure SetEditorStyles(AValue: TcxWebStyles);
|
|
protected
|
|
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
|
|
|
procedure CalcTextHeight;
|
|
function GetDefaultHorzBordersSize: Integer; override;
|
|
function GetDefaultVertBordersSize: Integer; override;
|
|
function GetMaxHeight: Integer; override;
|
|
function GetMinHeight: Integer; override;
|
|
{ IcxWebProvidersSupport}
|
|
procedure ImplGetProviders(AList: TList); override;
|
|
{ events }
|
|
function GetWebEventsHelper: TcxWebDateEditEventsHelper;
|
|
class function GetWebEventsHelperClass: TcxWebEventsHelperClass; override;
|
|
property WebEventsHelper: TcxWebDateEditEventsHelper read GetWebEventsHelper;
|
|
{ renderers}
|
|
procedure RegisterRenderers; override;
|
|
{ values }
|
|
procedure DoSetValues; override;
|
|
procedure RegisterValues; override;
|
|
{ styles }
|
|
procedure StyleChanged(Style: TcxWebStyleItem); override;
|
|
{ date conversion }
|
|
function DecodeDate(ADate: string): TcxWebDate;
|
|
function EncodeDate(ADate: TcxWebDate): string;
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
destructor Destroy; override;
|
|
published
|
|
property ButtonImageIndex: Integer read FButtonImageIndex write FButtonImageIndex;
|
|
property ButtonWidth: Integer read FButtonWidth write FButtonWidth;
|
|
property ButtonStyles: TcxWebStyles read GetButtonStyles write SetButtonStyles;
|
|
property EditorStyles: TcxWebStyles read GetEditorStyles write SetEditorStyles;
|
|
property TabOrder;
|
|
property TabStop;
|
|
end;
|
|
|
|
TcxCustomWebDateEditRenderer = class(TcxCustomWebCalendarRenderer)
|
|
private
|
|
function GetWebDateEdit: TcxCustomWebDateEdit;
|
|
|
|
function ButtonColor: TcxWebColor;
|
|
function ButtonBottomWidth: Integer;
|
|
function ButtonBottomColor: TcxWebColor;
|
|
function ButtonLeftWidth: Integer;
|
|
function ButtonLeftColor: TcxWebColor;
|
|
function ButtonRightWidth: Integer;
|
|
function ButtonRightColor: TcxWebColor;
|
|
function ButtonTopWidth: Integer;
|
|
function ButtonTopColor: TcxWebColor;
|
|
protected
|
|
procedure WriteButton; virtual;
|
|
procedure WriteCalendarAttributes; override;
|
|
procedure WriteTextEdit; virtual;
|
|
|
|
function CreationProc: string; override;
|
|
function ShiftMonthScriptProc: string; override;
|
|
function SelectDayScriptProc: string; override;
|
|
function TodayLinkScriptProc: string; override;
|
|
public
|
|
class procedure GetScriptFiles(AList: TStrings); override;
|
|
procedure WriteHTML; override;
|
|
|
|
property WebDateEdit: TcxCustomWebDateEdit read GetWebDateEdit;
|
|
end;
|
|
|
|
TcxCustomWebDateEditNS4Renderer = class(TcxCustomWebCalendarNS4Renderer)
|
|
private
|
|
function GetWebDateEdit: TcxCustomWebDateEdit;
|
|
|
|
function ButtonColor: TcxWebColor;
|
|
function ButtonBottomWidth: Integer;
|
|
function ButtonBottomColor: TcxWebColor;
|
|
function ButtonLeftWidth: Integer;
|
|
function ButtonLeftColor: TcxWebColor;
|
|
function ButtonRightWidth: Integer;
|
|
function ButtonRightColor: TcxWebColor;
|
|
function ButtonTopWidth: Integer;
|
|
function ButtonTopColor: TcxWebColor;
|
|
protected
|
|
procedure WriteButton; virtual;
|
|
procedure WriteCalendarAttributes; override;
|
|
procedure WriteTextEdit; virtual;
|
|
|
|
function CreationProc: string; override;
|
|
function ShiftMonthScriptProc: string; override;
|
|
function SelectDayScriptProc: string; override;
|
|
function TodayLinkScriptProc: string; override;
|
|
public
|
|
class function IsBrowserSupported(AWebBrowser: TcxWebBrowserClass): Boolean; override;
|
|
class procedure GetScriptFiles(AList: TStrings); override;
|
|
procedure WriteHTML; override;
|
|
procedure WriteOutOfFormHTML; override;
|
|
|
|
property WebDateEdit: TcxCustomWebDateEdit read GetWebDateEdit;
|
|
end;
|
|
|
|
TcxCustomWebDateEditOperaRenderer = class(TcxCustomWebDateEditRenderer)
|
|
protected
|
|
function ForcePostBack: Boolean; override;
|
|
procedure WriteTextEdit; override;
|
|
public
|
|
class function IsBrowserSupported(AWebBrowser: TcxWebBrowserClass): Boolean; override;
|
|
end;
|
|
|
|
TcxWebDateEdit = class(TcxCustomWebDateEdit)
|
|
published
|
|
property SelectedDate;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses SysUtils, DateUtils,
|
|
{$IFDEF VCL}
|
|
Windows,
|
|
{$ENDIF}
|
|
cxWebConsts, cxWebColors, cxWebUtils, cxWebGraphics, cxWebControls;
|
|
|
|
{ TcxWebDateEditEventsHelper }
|
|
|
|
function TcxWebDateEditEventsHelper.EventName(const AEvent: Integer): string;
|
|
const
|
|
cxHTMLEvent: array[TcxWebDateEditEvent] of string = ('OnSelectDay', 'OnShiftMonth',
|
|
'OnValidateEditText');
|
|
begin
|
|
Result := cxHTMLEvent[TcxWebDateEditEvent(AEvent)];
|
|
end;
|
|
|
|
function TcxWebDateEditEventsHelper.EventProcParams(const AEvent: Integer): string;
|
|
const
|
|
cxHTMLEventProcParams: array[TcxWebDateEditEvent] of string = ('(Sender, ADate)',
|
|
'(Sender, Offset)', '(Sender, AText)');
|
|
begin
|
|
Result := cxHTMLEventProcParams[TcxWebDateEditEvent(AEvent)];
|
|
end;
|
|
|
|
function TcxWebDateEditEventsHelper.EventTypeInfo: PTypeInfo;
|
|
begin
|
|
Result := TypeInfo(TcxWebDateEditEvent);
|
|
end;
|
|
|
|
{ TcxCustomWebDateEdit }
|
|
|
|
constructor TcxCustomWebDateEdit.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
CalcTextHeight;
|
|
if FTextHeight <> 0 then
|
|
FButtonWidth := FTextHeight
|
|
else
|
|
FButtonWidth := Height - GetVertBordersSize;
|
|
end;
|
|
|
|
destructor TcxCustomWebDateEdit.Destroy;
|
|
begin
|
|
FButtonStyles.Free;
|
|
FEditorStyles.Free;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEdit.Notification(AComponent: TComponent; Operation: TOperation);
|
|
begin
|
|
inherited Notification(AComponent, Operation);
|
|
if not IsDestroying and (AComponent is TcxWebStyleItem) then
|
|
begin
|
|
if ButtonStyles <> nil then
|
|
ButtonStyles.Notification(AComponent, Operation);
|
|
if EditorStyles <> nil then
|
|
EditorStyles.Notification(AComponent, Operation);
|
|
end;
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEdit.CalcTextHeight;
|
|
var
|
|
AFont: TcxWebFont;
|
|
begin
|
|
if Assigned(cxWebMetricsUtils) then
|
|
begin
|
|
if EditorStyles.Default <> nil then
|
|
AFont := EditorStyles.Default.Style.Font
|
|
else
|
|
AFont := Font;
|
|
FTextHeight := cxWebMetricsUtils.CalcEditHeight(AFont);
|
|
end
|
|
else
|
|
FTextHeight := 0;
|
|
end;
|
|
|
|
function TcxCustomWebDateEdit.GetDefaultHorzBordersSize: Integer;
|
|
begin
|
|
Result := 2 + 2;
|
|
end;
|
|
|
|
function TcxCustomWebDateEdit.GetDefaultVertBordersSize: Integer;
|
|
begin
|
|
Result := 2 + 2;
|
|
end;
|
|
|
|
function TcxCustomWebDateEdit.GetMaxHeight: Integer;
|
|
begin
|
|
if FTextHeight <> 0 then
|
|
Result := FTextHeight + GetVertBordersSize
|
|
else Result := 0;
|
|
end;
|
|
|
|
function TcxCustomWebDateEdit.GetMinHeight: Integer;
|
|
begin
|
|
if FTextHeight <> 0 then
|
|
Result := FTextHeight + GetVertBordersSize
|
|
else Result := 0;
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEdit.ImplGetProviders(AList: TList);
|
|
begin
|
|
inherited ImplGetProviders(AList);
|
|
AddStylesToProviderList(AList, [ButtonStyles, EditorStyles]);
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEdit.DoSetValues;
|
|
begin
|
|
inherited;
|
|
try
|
|
SelectedDate := StrToDate(WebValuesHelper.Values.Values[Name + 'Editor']);
|
|
except
|
|
on EConvertError do ;
|
|
else raise;
|
|
end
|
|
end;
|
|
|
|
function TcxCustomWebDateEdit.GetWebEventsHelper: TcxWebDateEditEventsHelper;
|
|
begin
|
|
Result := inherited GetWebEventsHelper as TcxWebDateEditEventsHelper;
|
|
end;
|
|
|
|
class function TcxCustomWebDateEdit.GetWebEventsHelperClass: TcxWebEventsHelperClass;
|
|
begin
|
|
Result := TcxWebDateEditEventsHelper;
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEdit.RegisterRenderers;
|
|
begin
|
|
WebRenderHelper.RegisterRenderer(TcxCustomWebDateEditRenderer);
|
|
WebRenderHelper.RegisterRenderer(TcxCustomWebDateEditNS4Renderer);
|
|
WebRenderHelper.RegisterRenderer(TcxCustomWebDateEditOperaRenderer);
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEdit.RegisterValues;
|
|
begin
|
|
inherited;
|
|
WebValuesHelper.RegisterValue(Name + 'Editor', DateToStr(SelectedDate));
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEdit.StyleChanged(Style: TcxWebStyleItem);
|
|
begin
|
|
CalcTextHeight;
|
|
inherited;
|
|
end;
|
|
|
|
function TcxCustomWebDateEdit.DecodeDate(ADate: string): TcxWebDate;
|
|
begin
|
|
Result := StrToDate(ADate);
|
|
end;
|
|
|
|
function TcxCustomWebDateEdit.EncodeDate(ADate: TcxWebDate): string;
|
|
begin
|
|
Result := DateToStr(ADate);
|
|
end;
|
|
|
|
function TcxCustomWebDateEdit.GetButtonStyles: TcxWebStyles;
|
|
begin
|
|
if FButtonStyles = nil then
|
|
FButtonStyles := TcxWebStyles.Create(Self);
|
|
Result := FButtonStyles;
|
|
end;
|
|
|
|
function TcxCustomWebDateEdit.GetEditorStyles: TcxWebStyles;
|
|
begin
|
|
if FEditorStyles = nil then
|
|
FEditorStyles := TcxWebStyles.Create(Self);
|
|
Result := FEditorStyles;
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEdit.SetButtonStyles(AValue: TcxWebStyles);
|
|
begin
|
|
FButtonStyles.Assign(AValue);
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEdit.SetEditorStyles(AValue: TcxWebStyles);
|
|
begin
|
|
FEditorStyles.Assign(AValue);
|
|
end;
|
|
|
|
{ TcxCustomWebDateEditRenderer }
|
|
|
|
class procedure TcxCustomWebDateEditRenderer.GetScriptFiles(AList: TStrings);
|
|
begin
|
|
AList.Add(scxCommonScriptName);
|
|
AList.Add(scxCalendarScriptName);
|
|
AList.Add(scxDateEditScriptName);
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEditRenderer.WriteHTML;
|
|
begin
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTable);
|
|
WriteID;
|
|
WriteHint;
|
|
WritePopupMenu;
|
|
WriteAttributes;
|
|
WritePosition;
|
|
WriteZIndex;
|
|
WriteStyleAttributes;
|
|
HTMLTextBuilder.WriteAttribute(aBorder, 0);
|
|
HTMLTextBuilder.WriteAttribute(aCellpadding, 0);
|
|
HTMLTextBuilder.WriteAttribute(aCellspacing, 0);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, WebDateEdit.Height);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, WebDateEdit.Width);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTr);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, '100%');
|
|
HTMLTextBuilder.WriteAttribute(aValign, 'center');
|
|
WriteTextEdit;
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd);
|
|
HTMLTextBuilder.WriteAttribute(aValign, 'center');
|
|
WriteButton;
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTr);
|
|
|
|
|
|
if not WebDateEdit.IsDesigning then
|
|
begin
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTr);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd);
|
|
HTMLTextBuilder.WriteAttribute(aColspan, 2);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, 1);
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagDiv);
|
|
HTMLTextBuilder.WriteAttribute(aId, WebDateEdit.Name + 'Calendar');
|
|
HTMLTextBuilder.WriteStyleAttribute(saZIndex, WebDateEdit.ZIndex + 10000);
|
|
HTMLTextBuilder.WriteStyleAttribute(saPosition, 'absolute');
|
|
HTMLTextBuilder.WriteStyleAttribute(saVisibility, 'hidden');
|
|
WriteCalendar;
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagDiv);
|
|
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTr);
|
|
end;
|
|
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTable);
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEditRenderer.WriteButton;
|
|
begin
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTable);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, WebDateEdit.Height);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, WebDateEdit.ButtonWidth);
|
|
HTMLTextBuilder.WriteAttribute(aBorder, 0);
|
|
HTMLTextBuilder.WriteAttribute(aCellspacing, 0);
|
|
HTMLTextBuilder.WriteAttribute(aCellpadding, 0);
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTr, True, False);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, False, False);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonTopColor));
|
|
WriteInvisibleImage(ButtonLeftWidth, ButtonTopWidth);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonTopColor));
|
|
WriteInvisibleImage(1, ButtonTopWidth);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonTopColor));
|
|
WriteInvisibleImage(ButtonRightWidth, ButtonTopWidth);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, False);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTr, False, True);
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTr);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonLeftColor));
|
|
WriteInvisibleImage(ButtonLeftWidth, 1);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, WebDateEdit.Height - ButtonBottomWidth - ButtonTopWidth);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, 3000);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonColor));
|
|
HTMLTextBuilder.WriteAttribute(aAlign, 'center');
|
|
HTMLTextBuilder.WriteAttribute(aValign, 'center');
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagA, False, False);
|
|
HTMLTextBuilder.WriteAttribute(aId, WebDateEdit.Name + 'Button');
|
|
HTMLTextBuilder.WriteAttribute(aHref, Format('javascript:DateEditButtonClick(''%s'');',
|
|
[WebDateEdit.Name]));
|
|
|
|
if (WebDateEdit.Images <> nil) and (WebDateEdit.Images.ValidIndex(WebDateEdit.ButtonImageIndex)) then
|
|
WebDateEdit.Images.Images[WebDateEdit.ButtonImageIndex].WriteHTML(HTMLTextBuilder)
|
|
else
|
|
begin
|
|
HTMLTextBuilder.WriteSingleTag(TcxHTMLTagImg, False, False);
|
|
HTMLTextBuilder.WriteAttribute(aSrc, QualifyImageFileName(scxdeDownImageName));
|
|
HTMLTextBuilder.WriteAttribute(aBorder, 0);
|
|
if WebDateEdit.ShowHint then
|
|
HTMLTextBuilder.WriteAttribute(aTitle, WebDateEdit.Hint);
|
|
end;
|
|
HTMLTextBuilder.WriteAttribute(aName, WebDateEdit.Name + 'ButtonImage');
|
|
HTMLTextBuilder.WriteAttribute(aAlign, 'absmiddle');
|
|
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagA, False, False);
|
|
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonRightColor));
|
|
WriteInvisibleImage(ButtonRightWidth, 1);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTr);
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTr, True, False);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, False, False);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonBottomColor));
|
|
WriteInvisibleImage(ButtonLeftWidth, ButtonBottomWidth);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonBottomColor));
|
|
WriteInvisibleImage(1, ButtonBottomWidth);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonBottomColor));
|
|
WriteInvisibleImage(ButtonRightWidth, ButtonBottomWidth);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, False);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTr, False, True);
|
|
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTable);
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEditRenderer.WriteCalendarAttributes;
|
|
begin
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEditRenderer.WriteTextEdit;
|
|
begin
|
|
HTMLTextBuilder.WriteSingleTag(TcxHTMLTagInput);
|
|
HTMLTextBuilder.WriteAttribute(aType, 'text');
|
|
HTMLTextBuilder.WriteAttribute(aValue, WebDateEdit.EncodeDate(WebDateEdit.SelectedDate));
|
|
HTMLTextBuilder.WriteAttribute(aName, WebDateEdit.Name + 'Editor');
|
|
HTMLTextBuilder.WriteAttribute(aId, WebDateEdit.Name + 'Editor');
|
|
if WebDateEdit.EditorStyles.Default <> nil then
|
|
HTMLTextBuilder.WriteAttribute(aClass, WebDateEdit.EditorStyles.Default.FullName);
|
|
HTMLTextBuilder.WriteStyleAttribute(saWidth, WebDateEdit.Width - WebDateEdit.ButtonWidth, 'px');
|
|
HTMLTextBuilder.WriteStyleAttribute(saHeight, WebDateEdit.Height, 'px');
|
|
if not WebDateEdit.IsDesigning then
|
|
HTMLTextBuilder.WriteEventAttribute(eOnKeyPress, Format('DataEditKeyPress(''%s'', window.event);', [WebDateEdit.Name]));
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.CreationProc: string;
|
|
begin
|
|
Result := 'CreateDateEdit';
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.ShiftMonthScriptProc: string;
|
|
begin
|
|
Result := 'DateEditShiftMonth';
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.SelectDayScriptProc: string;
|
|
begin
|
|
Result := 'DateEditSelectDay';
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.TodayLinkScriptProc: string;
|
|
begin
|
|
Result := 'DateEditSelectToday';
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.GetWebDateEdit: TcxCustomWebDateEdit;
|
|
begin
|
|
Result := Component as TcxCustomWebDateEdit;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.ButtonColor: TcxWebColor;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wsavColor in WebDateEdit.ButtonStyles.Default.Style.Shading.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Shading.Color
|
|
else Result := $00C8D0D4;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.ButtonBottomWidth: Integer;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavWidth in WebDateEdit.ButtonStyles.Default.Style.Borders.Bottom.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Bottom.Width
|
|
else Result := 1;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.ButtonBottomColor: TcxWebColor;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavColor in WebDateEdit.ButtonStyles.Default.Style.Borders.Bottom.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Bottom.Color
|
|
else Result := clWebBlack;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.ButtonLeftWidth: Integer;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavWidth in WebDateEdit.ButtonStyles.Default.Style.Borders.Left.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Left.Width
|
|
else Result := 1;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.ButtonLeftColor: TcxWebColor;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavColor in WebDateEdit.ButtonStyles.Default.Style.Borders.Left.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Left.Color
|
|
else Result := clWebWhite;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.ButtonRightWidth: Integer;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavWidth in WebDateEdit.ButtonStyles.Default.Style.Borders.Right.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Right.Width
|
|
else Result := 1;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.ButtonRightColor: TcxWebColor;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavColor in WebDateEdit.ButtonStyles.Default.Style.Borders.Right.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Right.Color
|
|
else Result := clWebBlack;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.ButtonTopWidth: Integer;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavWidth in WebDateEdit.ButtonStyles.Default.Style.Borders.Top.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Top.Width
|
|
else Result := 1;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditRenderer.ButtonTopColor: TcxWebColor;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavColor in WebDateEdit.ButtonStyles.Default.Style.Borders.Top.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Top.Color
|
|
else Result := clWebWhite;
|
|
end;
|
|
|
|
|
|
{ TcxCustomWebDateEditNS4Renderer }
|
|
class function TcxCustomWebDateEditNS4Renderer.IsBrowserSupported(AWebBrowser: TcxWebBrowserClass): Boolean;
|
|
begin
|
|
Result := AWebBrowser = TcxWebBrowserNS4;
|
|
end;
|
|
|
|
class procedure TcxCustomWebDateEditNS4Renderer.GetScriptFiles(AList: TStrings);
|
|
begin
|
|
AList.Add(scxCommonScriptName);
|
|
AList.Add(scxCalendarScriptName);
|
|
AList.Add(scxDateEditScriptName);
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.GetWebDateEdit: TcxCustomWebDateEdit;
|
|
begin
|
|
Result := Component as TcxCustomWebDateEdit;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.ButtonColor: TcxWebColor;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wsavColor in WebDateEdit.ButtonStyles.Default.Style.Shading.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Shading.Color
|
|
else Result := $00C8D0D4;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.ButtonBottomWidth: Integer;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavWidth in WebDateEdit.ButtonStyles.Default.Style.Borders.Bottom.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Bottom.Width
|
|
else Result := 1;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.ButtonBottomColor: TcxWebColor;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavColor in WebDateEdit.ButtonStyles.Default.Style.Borders.Bottom.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Bottom.Color
|
|
else Result := clWebBlack;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.ButtonLeftWidth: Integer;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavWidth in WebDateEdit.ButtonStyles.Default.Style.Borders.Left.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Left.Width
|
|
else Result := 1;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.ButtonLeftColor: TcxWebColor;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavColor in WebDateEdit.ButtonStyles.Default.Style.Borders.Left.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Left.Color
|
|
else Result := clWebWhite;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.ButtonRightWidth: Integer;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavWidth in WebDateEdit.ButtonStyles.Default.Style.Borders.Right.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Right.Width
|
|
else Result := 1;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.ButtonRightColor: TcxWebColor;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavColor in WebDateEdit.ButtonStyles.Default.Style.Borders.Right.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Right.Color
|
|
else Result := clWebBlack;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.ButtonTopWidth: Integer;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavWidth in WebDateEdit.ButtonStyles.Default.Style.Borders.Top.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Top.Width
|
|
else Result := 1;
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.ButtonTopColor: TcxWebColor;
|
|
begin
|
|
if (WebDateEdit.ButtonStyles.Default <> nil) and
|
|
(wbavColor in WebDateEdit.ButtonStyles.Default.Style.Borders.Top.AssignedValues) then
|
|
Result := WebDateEdit.ButtonStyles.Default.Style.Borders.Top.Color
|
|
else Result := clWebWhite;
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEditNS4Renderer.WriteButton;
|
|
begin
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTable);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, WebDateEdit.Height);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, WebDateEdit.ButtonWidth);
|
|
HTMLTextBuilder.WriteAttribute(aBorder, 0);
|
|
HTMLTextBuilder.WriteAttribute(aCellspacing, 0);
|
|
HTMLTextBuilder.WriteAttribute(aCellpadding, 0);
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTr, True, False);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, False, False);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, 1);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, 1);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonTopColor));
|
|
WriteInvisibleImage(ButtonLeftWidth, ButtonTopWidth);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, 1);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonTopColor));
|
|
WriteInvisibleImage(1, 1);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, 1);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, 1);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonTopColor));
|
|
WriteInvisibleImage(ButtonRightWidth, ButtonTopWidth);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, False);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTr, False, True);
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTr);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, 1);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonLeftColor));
|
|
WriteInvisibleImage(ButtonLeftWidth, 1);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, WebDateEdit.Height - 2);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, 3000);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonColor));
|
|
HTMLTextBuilder.WriteAttribute(aAlign, 'center');
|
|
HTMLTextBuilder.WriteAttribute(aValign, 'center');
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagA, False, False);
|
|
HTMLTextBuilder.WriteAttribute(aId, WebDateEdit.Name + 'Button');
|
|
HTMLTextBuilder.WriteAttribute(aHref, Format('javascript:DateEditButtonClick(''%s'');',
|
|
[WebDateEdit.Name]));
|
|
|
|
if (WebDateEdit.Images <> nil) and (WebDateEdit.Images.ValidIndex(WebDateEdit.ButtonImageIndex)) then
|
|
WebDateEdit.Images.Images[WebDateEdit.ButtonImageIndex].WriteHTML(HTMLTextBuilder)
|
|
else
|
|
begin
|
|
HTMLTextBuilder.WriteSingleTag(TcxHTMLTagImg, False, False);
|
|
HTMLTextBuilder.WriteAttribute(aSrc, QualifyImageFileName(scxdeDownImageName));
|
|
HTMLTextBuilder.WriteAttribute(aBorder, 0);
|
|
if WebDateEdit.ShowHint then
|
|
HTMLTextBuilder.WriteAttribute(aTitle, WebDateEdit.Hint);
|
|
end;
|
|
HTMLTextBuilder.WriteAttribute(aName, WebDateEdit.Name + 'ButtonImage');
|
|
HTMLTextBuilder.WriteAttribute(aAlign, 'absmiddle');
|
|
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagA, False, False);
|
|
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, 1);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonRightColor));
|
|
WriteInvisibleImage(ButtonRightWidth, 1);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTr);
|
|
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTr, True, False);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, False, False);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, 1);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, 1);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonBottomColor));
|
|
WriteInvisibleImage(ButtonLeftWidth, ButtonBottomWidth);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, 1);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonBottomColor));
|
|
WriteInvisibleImage(1, 1);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, True);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, True, False);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, 1);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, 1);
|
|
HTMLTextBuilder.WriteAttribute(aBgcolor, cxWebColorToWebString(ButtonBottomColor));
|
|
WriteInvisibleImage(ButtonRightWidth, ButtonBottomWidth);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, False);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTr, False, True);
|
|
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTable);
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEditNS4Renderer.WriteHTML;
|
|
begin
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTable);
|
|
WriteID;
|
|
WriteHint;
|
|
WritePopupMenu;
|
|
WriteAttributes;
|
|
WriteStyleAttributes;
|
|
HTMLTextBuilder.WriteAttribute(aBorder, 0);
|
|
HTMLTextBuilder.WriteAttribute(aCellpadding, 0);
|
|
HTMLTextBuilder.WriteAttribute(aCellspacing, 0);
|
|
HTMLTextBuilder.WriteAttribute(aHeight, WebDateEdit.Height);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, WebDateEdit.Width);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTr);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd);
|
|
HTMLTextBuilder.WriteAttribute(aWidth, '100%');
|
|
HTMLTextBuilder.WriteAttribute(aValign, 'center');
|
|
WriteTextEdit;
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd);
|
|
HTMLTextBuilder.WriteAttribute(aValign, 'center');
|
|
WriteButton;
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTr);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTr, True, False);
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagTd, False, False);
|
|
HTMLTextBuilder.WriteAttribute(aColspan, 2);
|
|
HTMLTextBuilder.WriteAttribute(aAlign, 'left');
|
|
HTMLTextBuilder.WriteAttribute(aHeight, 1);
|
|
WriteInvisibleImage(1, 1);
|
|
HTMLTextBuilder.WriteAttribute(aName, WebDateEdit.Name + 'PosImage');
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTd, False, False);
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTr, False, True);
|
|
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagTable);
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEditNS4Renderer.WriteOutOfFormHTML;
|
|
begin
|
|
HTMLTextBuilder.WriteBeginTag(TcxHTMLTagLayer);
|
|
HTMLTextBuilder.WriteAttribute(aId, WebDateEdit.Name + 'Calendar');
|
|
HTMLTextBuilder.WriteAttribute(aVisibility, 'hidden');
|
|
WriteCalendar;
|
|
HTMLTextBuilder.WriteEndTag(TcxHTMLTagLayer);
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEditNS4Renderer.WriteCalendarAttributes;
|
|
begin
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.CreationProc: string;
|
|
begin
|
|
Result := 'CreateDateEdit';
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.ShiftMonthScriptProc: string;
|
|
begin
|
|
Result := 'DateEditShiftMonth';
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.SelectDayScriptProc: string;
|
|
begin
|
|
Result := 'DateEditSelectDay';
|
|
end;
|
|
|
|
function TcxCustomWebDateEditNS4Renderer.TodayLinkScriptProc: string;
|
|
begin
|
|
Result := 'DateEditSelectToday';
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEditNS4Renderer.WriteTextEdit;
|
|
begin
|
|
HTMLTextBuilder.WriteSingleTag(TcxHTMLTagInput);
|
|
HTMLTextBuilder.WriteAttribute(aType, 'text');
|
|
HTMLTextBuilder.WriteAttribute(aValue, WebDateEdit.EncodeDate(WebDateEdit.SelectedDate));
|
|
HTMLTextBuilder.WriteAttribute(aName, WebDateEdit.Name + 'Editor');
|
|
HTMLTextBuilder.WriteAttribute(aWidth, '100%');
|
|
if not WebDateEdit.IsDesigning then
|
|
begin
|
|
HTMLTextBuilder.WriteEventAttribute(eOnKeyPress, Format('DataEditKeyPress(''%s'', window.event);', [WebDateEdit.Name]));
|
|
end;
|
|
end;
|
|
|
|
{ TcxCustomWebDateEditOperaRenderer }
|
|
|
|
function TcxCustomWebDateEditOperaRenderer.ForcePostBack: Boolean;
|
|
begin
|
|
Result := True;
|
|
end;
|
|
|
|
class function TcxCustomWebDateEditOperaRenderer.IsBrowserSupported(AWebBrowser: TcxWebBrowserClass): Boolean;
|
|
begin
|
|
Result := AWebBrowser = TcxWebBrowserOpera;
|
|
end;
|
|
|
|
procedure TcxCustomWebDateEditOperaRenderer.WriteTextEdit;
|
|
begin
|
|
HTMLTextBuilder.WriteSingleTag(TcxHTMLTagInput);
|
|
HTMLTextBuilder.WriteAttribute(aType, 'text');
|
|
HTMLTextBuilder.WriteAttribute(aValue, WebDateEdit.EncodeDate(WebDateEdit.SelectedDate));
|
|
HTMLTextBuilder.WriteAttribute(aName, WebDateEdit.Name + 'Editor');
|
|
HTMLTextBuilder.WriteAttribute(aId, WebDateEdit.Name + 'Editor');
|
|
HTMLTextBuilder.WriteStyleAttribute(saWidth, WebDateEdit.Width - WebDateEdit.ButtonWidth, 'px');
|
|
HTMLTextBuilder.WriteStyleAttribute(saHeight, WebDateEdit.Height, 'px');
|
|
if not WebDateEdit.IsDesigning then
|
|
HTMLTextBuilder.WriteEventAttribute(eOnKeyPress, Format('DataEditKeyPress(''%s'', window.event);', [WebDateEdit.Name]));
|
|
end;
|
|
|
|
initialization
|
|
RegisterClasses([TcxWebDateEdit]);
|
|
|
|
end.
|