/Gedemin/Messaging/msg_dlgOpenAttachment.pas

http://gedemin.googlecode.com/ · Pascal · 108 lines · 90 code · 16 blank · 2 comment · 4 complexity · 3453228e6cfec205baac0e4399405b06 MD5 · raw file

  1. unit msg_dlgOpenAttachment;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5. StdCtrls, ExtCtrls, Db, IBCustomDataSet, gdcBase, gdcMessage, gd_createable_form;
  6. type
  7. Tfrm_msgOpenAttachment = class(TCreateableForm)
  8. Bevel1: TBevel;
  9. Image1: TImage;
  10. lblOpen: TLabel;
  11. lblFileName: TLabel;
  12. btnOk: TButton;
  13. btnCancel: TButton;
  14. rbOpen: TRadioButton;
  15. rbSave: TRadioButton;
  16. lblQuetion: TLabel;
  17. lblAttention1: TLabel;
  18. lblAttencion2: TLabel;
  19. Label1: TLabel;
  20. lblAttention3: TLabel;
  21. gdcAttachmentOpen: TgdcAttachment;
  22. msgOpenDataSource: TDataSource;
  23. SaveDialogAttachment: TSaveDialog;
  24. procedure rbSaveClick(Sender: TObject);
  25. procedure rbOpenClick(Sender: TObject);
  26. procedure btnCancelClick(Sender: TObject);
  27. procedure btnOkClick(Sender: TObject);
  28. procedure FormCreate(Sender: TObject);
  29. private
  30. FFileName: String;
  31. { Private declarations }
  32. public
  33. constructor CreateDialog(AOwner: TComponent; AFileName: String);
  34. end;
  35. var
  36. frm_msgOpenAttachment: Tfrm_msgOpenAttachment;
  37. implementation
  38. uses
  39. msg_frmmain, msg_attachment;
  40. {$R *.DFM}
  41. procedure Tfrm_msgOpenAttachment.rbSaveClick(Sender: TObject);
  42. begin
  43. rbOpen.Checked := not rbSave.Checked;
  44. end;
  45. procedure Tfrm_msgOpenAttachment.rbOpenClick(Sender: TObject);
  46. begin
  47. rbSave.Checked := not rbOpen.Checked;
  48. end;
  49. procedure Tfrm_msgOpenAttachment.btnCancelClick(Sender: TObject);
  50. begin
  51. ModalResult := mrCancel;
  52. Close;
  53. end;
  54. procedure Tfrm_msgOpenAttachment.btnOkClick(Sender: TObject);
  55. begin
  56. if rbOpen.Checked then
  57. gdcAttachmentOpen.OpenAttachment
  58. else
  59. begin
  60. SaveDialogAttachment.FileName := GetCurrentDir;
  61. if copy(SaveDialogAttachment.FileName, Length(SaveDialogAttachment.FileName), 1) = '\' then
  62. SaveDialogAttachment.FileName := SaveDialogAttachment.FileName + FFileName
  63. else
  64. SaveDialogAttachment.FileName := SaveDialogAttachment.FileName +
  65. '\' + FFileName;
  66. if SaveDialogAttachment.Execute then
  67. attSaveToFile(SaveDialogAttachment.FileName,
  68. gdcAttachmentOpen.FieldByName('bdata').AsString);
  69. end;
  70. ModalResult := mrOk;
  71. Close;
  72. end;
  73. procedure Tfrm_msgOpenAttachment.FormCreate(Sender: TObject);
  74. begin
  75. with msg_mainform do
  76. begin
  77. gdcAttachmentOpen.Transaction := IBTransaction;
  78. msgOpenDataSource.DataSet := ibqMessage;
  79. gdcAttachmentOpen.Open;
  80. gdcAttachmentOpen.Locate('FileName', FFileName, [loCaseInsensitive]);
  81. end;
  82. lblFileName.Caption := FFileName;
  83. end;
  84. constructor Tfrm_msgOpenAttachment.CreateDialog(AOwner: TComponent;
  85. AFileName: String);
  86. begin
  87. inherited Create(AOwner);
  88. FFileName := AFileName;
  89. if Pos('&', FFileName) > 0 then
  90. Delete(FFileName, Pos('&', FFileName), 1);
  91. end;
  92. end.