home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 February / PCWorld_1999-02_cd.bin / temacd / HotKeys / AboutEdt.pas < prev    next >
Pascal/Delphi Source File  |  1997-02-14  |  2KB  |  97 lines

  1. unit AboutEdt;
  2.  
  3. interface
  4.  
  5. uses
  6.   WinTypes, WinProcs, Classes, Graphics, Forms, Controls,
  7.   StdCtrls, ExtCtrls, Buttons, DsgnIntf, AboutPrp;
  8.  
  9. type
  10.   TAboutPropertyEditor = class(TPropertyEditor)
  11.   public
  12.     procedure Edit; override;
  13.     function GetAttributes: TPropertyAttributes; override;
  14.     function GetValue: string; override;
  15.   end;
  16.  
  17.   TAboutPropertyDlg = class(TForm)
  18.     btnOk: TButton;
  19.     pnlFrame: TPanel;
  20.     lblCopyright: TLabel;
  21.     btnPaletteBmp: TSpeedButton;
  22.     lblDescription: TLabel;
  23.     lblCompany: TLabel;
  24.     bvlSeparatorLine: TBevel;
  25.     pbxComponentName: TPaintBox;
  26.     procedure pbxComponentNamePaint(Sender: TObject);
  27.   private
  28.     FAboutInfo : TAboutInfo;
  29.     procedure SetAboutInfo(Value: TAboutInfo);
  30.   public
  31.     ComponentName : string;
  32.     property AboutInfo : TAboutInfo read FAboutInfo write SetAboutInfo;
  33.   end;
  34.  
  35.  
  36. implementation
  37.  
  38. {$R *.DFM}
  39.  
  40. uses
  41.   SysUtils;
  42.  
  43. function TAboutPropertyEditor.GetAttributes: TPropertyAttributes;
  44. begin
  45.   Result := [paDialog, paReadOnly];
  46. end;
  47.  
  48.  
  49. function TAboutPropertyEditor.GetValue: string;
  50. begin
  51.   Result := 'Press ... to Display';
  52. end;
  53.  
  54.  
  55. procedure TAboutPropertyEditor.Edit;
  56. var
  57.   Dialog: TAboutPropertyDlg;
  58. begin
  59.   Dialog := TAboutPropertyDlg.Create(Application);
  60.   try
  61.     Dialog.ComponentName := GetComponent(0).ClassName;
  62.     Dialog.AboutInfo := TAboutInfo(GetOrdValue);
  63.     Dialog.ShowModal;
  64.   finally
  65.     Dialog.Free;
  66.   end;
  67. end;
  68.  
  69.  
  70. procedure TAboutPropertyDlg.SetAboutInfo(Value: TAboutInfo);
  71.  
  72. begin
  73.   lblCopyright.Caption := 'Copyright ⌐ '+ Value.CopyrightDate;
  74.   lblCompany.Caption := Value.Company;
  75.   lblDescription.Caption := Value.Description;
  76.   btnPaletteBmp.Glyph.Handle := LoadBitmap(HInstance, PChar(UpperCase(ComponentName)));
  77.   if ComponentName[1] = 'T' then Delete(ComponentName, 1, 1);
  78.   Caption := 'About the ' + ComponentName + ' component';
  79. end;
  80.  
  81. procedure TAboutPropertyDlg.pbxComponentNamePaint(Sender: TObject);
  82. begin
  83.   with pbxComponentName.Canvas do
  84.    begin
  85.      Font.Name := 'Times New Roman';
  86.      Font.Size := 18;
  87.      SetBkMode(Handle, TRANSPARENT);
  88.      Font.Color := clBtnShadow;
  89.      TextOut(2, 2, ComponentName);
  90.      Font.Color := clWindowText;
  91.      TextOut(0, 0, ComponentName);
  92.    end;
  93. end;
  94.  
  95. end.
  96.  
  97.