unit uFormPropiedadesInforme; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, StdCtrls, JvExControls, JvComponent, JvgWizardHeader, ExtCtrls, ImgList, PngImageList, JvExStdCtrls, JvButton, JvCtrls, Menus, JvMenus, ActnList; type TfrPropiedadesInforme = class(TForm) edtNombre: TcxTextEdit; Label1: TLabel; Label2: TLabel; bAceptar: TButton; memDescripcion: TcxMemo; JvgWizardHeader1: TJvgWizardHeader; cbModificable: TCheckBox; Label3: TLabel; Bevel1: TBevel; btnIcono: TJvImgBtn; ReportImages: TPngImageList; JvPopupMenu1: TJvPopupMenu; N11: TMenuItem; procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure JvPopupMenu1Popup(Sender: TObject); private procedure SetDescripcion(const Value: String); procedure SetNombre(const Value: String); function GetDescripcion: String; function GetNombre: String; function GetModificable: Boolean; procedure SetModificable(const Value: Boolean); function GetIcono: Integer; procedure SetIcono(const Value: Integer); procedure OnMenuItemClick(Sender: TObject); public property Nombre : String read GetNombre write SetNombre; property Descripcion : String read GetDescripcion write SetDescripcion; property Modificable : Boolean read GetModificable write SetModificable; property Icono : Integer read GetIcono write SetIcono; end; implementation {$R *.dfm} procedure TfrPropiedadesInforme.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := Length(edtNombre.Text) > 0; if not CanClose then ShowMessage('Debe indicar al menos el nombre de este informe.'); end; function TfrPropiedadesInforme.GetDescripcion: String; begin Result := memDescripcion.Lines.Text; end; function TfrPropiedadesInforme.GetIcono: Integer; begin Result := btnIcono.ImageIndex; end; function TfrPropiedadesInforme.GetModificable: Boolean; begin Result := not cbModificable.Checked; end; function TfrPropiedadesInforme.GetNombre: String; begin Result := edtNombre.Text; end; procedure TfrPropiedadesInforme.SetDescripcion(const Value: String); begin memDescripcion.Lines.Text := Value; end; procedure TfrPropiedadesInforme.SetIcono(const Value: Integer); begin btnIcono.ImageIndex := Value; end; procedure TfrPropiedadesInforme.SetModificable(const Value: Boolean); begin cbModificable.Checked := not Value; end; procedure TfrPropiedadesInforme.SetNombre(const Value: String); begin edtNombre.Text := Value; end; procedure TfrPropiedadesInforme.JvPopupMenu1Popup(Sender: TObject); var AItem : TMenuItem; i : integer; begin JvPopupMenu1.Items.Clear; for i := 0 to ReportImages.Count - 1 do begin AItem := TMenuItem.Create(JvPopupMenu1); AItem.OnClick := OnMenuItemClick; AItem.ImageIndex := i; JvPopupMenu1.Items.Add(AItem); end; end; procedure TfrPropiedadesInforme.OnMenuItemClick(Sender: TObject); begin btnIcono.ImageIndex := (Sender as TMenuItem).ImageIndex; end; end.