You've already forked lazarus-ccr
Initial import
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@338 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
284
components/tvplanit/source/vpprtfmtcbox.pas
Normal file
284
components/tvplanit/source/vpprtfmtcbox.pas
Normal file
@@ -0,0 +1,284 @@
|
||||
{*********************************************************}
|
||||
{* VPPRTFMTCBOX.PAS 1.03 *}
|
||||
{*********************************************************}
|
||||
|
||||
{* ***** BEGIN LICENSE BLOCK ***** *}
|
||||
{* Version: MPL 1.1 *}
|
||||
{* *}
|
||||
{* The contents of this file are 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/ *}
|
||||
{* *}
|
||||
{* 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. *}
|
||||
{* *}
|
||||
{* The Original Code is TurboPower Visual PlanIt *}
|
||||
{* *}
|
||||
{* The Initial Developer of the Original Code is TurboPower Software *}
|
||||
{* *}
|
||||
{* Portions created by TurboPower Software Inc. are Copyright (C) 2002 *}
|
||||
{* TurboPower Software Inc. All Rights Reserved. *}
|
||||
{* *}
|
||||
{* Contributor(s): *}
|
||||
{* *}
|
||||
{* ***** END LICENSE BLOCK ***** *}
|
||||
|
||||
{$I Vp.INC}
|
||||
|
||||
unit VpPrtFmtCBox;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFDEF LCL}
|
||||
LMessages,LCLProc,LCLType,LCLIntf,
|
||||
{$ELSE}
|
||||
Windows,Messages,
|
||||
{$ENDIF}
|
||||
Messages,
|
||||
SysUtils,
|
||||
Classes,
|
||||
Controls,
|
||||
StdCtrls,
|
||||
VpBase,
|
||||
VpBaseDS,
|
||||
VpConst;
|
||||
|
||||
type
|
||||
TVpPrintFormatComboBox = class (TCustomComboBox)
|
||||
private
|
||||
FControlLink : TVpControlLink;
|
||||
|
||||
protected
|
||||
procedure Change; override;
|
||||
function GetAbout : string;
|
||||
procedure Loaded; override;
|
||||
procedure Notification (AComponent : TComponent;
|
||||
Operation : TOperation); override;
|
||||
procedure SetAbout (const Value : string);
|
||||
procedure SetControlLink (const v : TVpControlLink);
|
||||
procedure VpPrintFormatChanged (var Msg : TMessage); message Vp_PrintFormatChanged;
|
||||
|
||||
public
|
||||
constructor Create (AOwner : TComponent); override;
|
||||
destructor Destroy; override;
|
||||
|
||||
procedure UpdateItems;
|
||||
|
||||
property Style;
|
||||
|
||||
published
|
||||
property Version : string read GetAbout write SetAbout stored False;
|
||||
property ControlLink : TVpControlLink
|
||||
read FControlLink write SetControlLink;
|
||||
|
||||
property Cursor;
|
||||
property DragCursor;
|
||||
property DragMode;
|
||||
property DropDownCount;
|
||||
property Enabled;
|
||||
property Font;
|
||||
property HelpContext;
|
||||
property Hint;
|
||||
{$IFNDEF LCL}
|
||||
property ImeMode;
|
||||
property ImeName;
|
||||
{$ENDIF}
|
||||
property ItemHeight;
|
||||
property Items;
|
||||
property MaxLength;
|
||||
property ParentColor;
|
||||
property ParentFont;
|
||||
property ParentShowHint;
|
||||
property PopupMenu;
|
||||
property ShowHint;
|
||||
property Sorted;
|
||||
property TabStop;
|
||||
property TabOrder;
|
||||
property Text;
|
||||
property Visible;
|
||||
|
||||
property OnChange;
|
||||
property OnClick;
|
||||
property OnDblClick;
|
||||
property OnDragDrop;
|
||||
property OnDragOver;
|
||||
property OnEndDrag;
|
||||
property OnEnter;
|
||||
property OnExit;
|
||||
property OnKeyDown;
|
||||
property OnKeyPress;
|
||||
property OnKeyUp;
|
||||
property OnMeasureItem;
|
||||
property OnMouseDown;
|
||||
property OnMouseMove;
|
||||
property OnMouseUp;
|
||||
property OnStartDrag;
|
||||
end;
|
||||
|
||||
function SearchControlLink (const C : TComponent) : TVpControlLink;
|
||||
|
||||
implementation
|
||||
|
||||
function SearchControlLink (const C : TComponent) : TVpControlLink;
|
||||
|
||||
function FindControlLink (const C : TComponent) : TVpControlLink;
|
||||
var
|
||||
I : Integer;
|
||||
begin
|
||||
Result := nil;
|
||||
if not Assigned (C) then
|
||||
Exit;
|
||||
|
||||
{Look through all of the owned components}
|
||||
for I := 0 to C.ComponentCount - 1 do begin
|
||||
if C.Components[I] is TVpControlLink then begin
|
||||
Result := TVpControlLink (C.Components[I]);
|
||||
Exit;
|
||||
end;
|
||||
|
||||
{If this isn't one, see if it owns other components}
|
||||
Result := FindControlLink (C.Components[I]);
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
{Search the entire form}
|
||||
Result := FindControlLink (C);
|
||||
end;
|
||||
|
||||
constructor TVpPrintFormatComboBox.Create (AOwner : TComponent);
|
||||
begin
|
||||
inherited Create (AOwner);
|
||||
|
||||
Style := csDropDownList;
|
||||
Sorted := True;
|
||||
|
||||
FControlLink := SearchControlLink (Owner);
|
||||
UpdateItems;
|
||||
end;
|
||||
|
||||
destructor TVpPrintFormatComboBox.Destroy;
|
||||
begin
|
||||
if (HandleAllocated) and (Assigned (FControlLink)) then
|
||||
FControlLink.Printer.DeregisterWatcher (Handle);
|
||||
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TVpPrintFormatComboBox.Change;
|
||||
var
|
||||
NewFormat : Integer;
|
||||
|
||||
begin
|
||||
if not Assigned (FControlLink) then
|
||||
Exit;
|
||||
|
||||
NewFormat := FControlLink.Printer.Find (Text);
|
||||
if NewFormat >= 0 then
|
||||
FControlLink.Printer.CurFormat := NewFormat;
|
||||
end;
|
||||
|
||||
function TVpPrintFormatComboBox.GetAbout: string;
|
||||
begin
|
||||
Result := VpVersionStr;
|
||||
end;
|
||||
|
||||
procedure TVpPrintFormatComboBox.Loaded;
|
||||
begin
|
||||
inherited Loaded;
|
||||
|
||||
UpdateItems;
|
||||
end;
|
||||
|
||||
procedure TVpPrintFormatComboBox.Notification (AComponent : TComponent;
|
||||
Operation : TOperation);
|
||||
{ Handle new/deleted components }
|
||||
begin
|
||||
inherited Notification (AComponent, Operation);
|
||||
|
||||
if Operation = opRemove then begin
|
||||
{ Owned components going away }
|
||||
if AComponent = FControlLink then begin
|
||||
FControlLink := nil;
|
||||
UpdateItems;
|
||||
end;
|
||||
end else if Operation = opInsert then begin
|
||||
{ Check for new TVpControlLink }
|
||||
if AComponent is TVpControlLink then begin
|
||||
if not Assigned (FControlLink) then begin
|
||||
FControlLink := TVpControlLink (AComponent);
|
||||
UpdateItems;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TVpPrintFormatComboBox.SetAbout(const Value: string);
|
||||
begin
|
||||
//Empty on purpose
|
||||
end;
|
||||
|
||||
procedure TVpPrintFormatComboBox.SetControlLink (const v : TVpControlLink);
|
||||
begin
|
||||
if v <> FControlLink then begin
|
||||
if Assigned (FControlLink) then
|
||||
FControlLink.Printer.DeregisterWatcher (Handle);
|
||||
FControlLink := v;
|
||||
if Assigned (FControlLink) then
|
||||
FControlLink.Printer.RegisterWatcher (Handle);
|
||||
UpdateItems;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TVpPrintFormatComboBox.VpPrintFormatChanged (var Msg : TMessage);
|
||||
begin
|
||||
UpdateItems;
|
||||
end;
|
||||
|
||||
procedure TVpPrintFormatComboBox.UpdateItems;
|
||||
var
|
||||
i : Integer;
|
||||
Ctr : Integer;
|
||||
|
||||
begin
|
||||
if not Assigned (FControlLink) then
|
||||
Exit;
|
||||
if not Assigned (FControlLink.Printer) then
|
||||
Exit;
|
||||
if csDesigning in ComponentState then
|
||||
Exit;
|
||||
|
||||
Items.Clear;
|
||||
|
||||
Ctr := 0;
|
||||
|
||||
for i := 0 to FControlLink.Printer.PrintFormats.Count - 1 do begin
|
||||
if (FControlLink.Printer.PrintFormats.Items[i].FormatName <> '') and
|
||||
(FControlLink.Printer.PrintFormats.Items[i].Visible) then
|
||||
Items.Add (FControlLink.Printer.PrintFormats.Items[i].FormatName)
|
||||
else if FControlLink.Printer.PrintFormats.Items[i].Visible then begin
|
||||
Items.Add ('Unknown ' + IntToStr (Ctr));
|
||||
Inc (Ctr);
|
||||
end;
|
||||
end;
|
||||
i := 0;
|
||||
while i < Items.Count do
|
||||
if FControlLink.Printer.PrintFormats.Items[FControlLink.Printer.CurFormat].FormatName =
|
||||
Items[i] then begin
|
||||
ItemIndex := i;
|
||||
Break;
|
||||
end else
|
||||
Inc (i);
|
||||
if i >= Items.Count then
|
||||
ItemIndex := -1;
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
||||
RegisterClass (TVpPrintFormatComboBox);
|
||||
|
||||
end.
|
Reference in New Issue
Block a user