Skip to main content
Skip table of contents

TbeCbAttachment

TbeCbAttachment

Die Klasse TbeCbAttachment ist ein Panel, das ermöglicht Drag&Drop für Anhänge zu nutzen. In den F12-Formularen ist die Komponente in der Tab-Karte "Allgemein" unter dem Icon

zu finden.

Eigenschaften

Beschreibung

DropTarget:O

Ein Element des Formulars oder den Formular selbst. Definiert den Bereich, in welchen werden Drops akzeptiert.

DataSet:O

Die Tabelle, welche beim jeden Drop editiert wird, und die musste danach gespeichert werden (DbPost, CbPost usw.).

Achtung: kann aktuell nur mit TBeStandardTable und deren Ableitungen verwendet werden (nicht TMemCalcTable, TBeMemtable etc)

DataField:S

Das Feld der Tabelle DataSet, in welchem wird den Anhang beim jeden Drop gespeichert. Es muss um einen MEMO Feld gehen.

ShowEmbeddedAttachments:L

Steuert, ob LoadAttachments die eingebettete Anhänge auch in dem Control angezeigt werden können. Muss vor dem Aufruf von LoadAttachments gesetzt werden.
Default: false

Achtung: Wenn diese Eigenschaft auf true gesetzt wird, kann man die eingebetteten Anhänge unter Umständen auch löschen. Dadurch können z.B. E-Mail-Anhänge defekt werden.

Funktionen / Methoden

Beschreibung

LoadAttachments()

Ladet neu alle schon vorher gespeicherte Anhänge aus DataSet:DataField.

Beispiel

CODE
|
   Form, btn_Next, btn_Prev, btn_Save, attach_Main, btn_Cancel,
   lbl_Id, lbl_Subject, pnl_State, DataSet, DataSource
|

function RefreshForm()
   lbl_Id.Caption := 'ID: ' + Str(DataSet:MEMO_ID),
   lbl_Subject.Caption := 'Betreff: ' + DataSet:BETREFF,
   attach_Main.LoadAttachments(),
end,

function Resize(aCtrl, aLeft, aTop, aWidth, aHeight)
   aCtrl.Left   := aLeft,
   aCtrl.Top    := aTop,
   aCtrl.Width  := aWidth,
   aCtrl.Height := aHeight,
end,

function btn_Prev_Click( Sender )
   DataSet.CbPrior(),
   RefreshForm(),
end,

function btn_Next_Click( Sender )
   DataSet.CbNext(),
   RefreshForm(),
end,

function btn_Save_Click( Sender )
   DataSet.CbPost(),
   RefreshForm(),
end,

function btn_Cancel_Click( Sender )
   DataSet.CbCancel(),
   RefreshForm(),
end,

function RefreshActions()
|State|
   State := DBState(DataSet),
   btn_Prev.Enabled := State = dsBrowse,
   btn_Next.Enabled := State = dsBrowse,
   btn_Save.Enabled := State = dsInsert or State = dsEdit,
   btn_Cancel.Enabled := State = dsInsert or State = dsEdit,
end,

function DataSource_OnStateChange( Sender )
   case DBState(DataSet)
      of dsInactive       :: pnl_State.Color := clRed,
      of { dsInsert, dsEdit } :: pnl_State.Color := clGreen,
      otherwise pnl_State.Color := clActiveBorder,
   endcase,
   RefreshActions(),
end,

startseq
   Form := CreateObject('TFormEx'),
   startseq
      btn_Prev    := CreateObject('TbeButton', 'btn_Prev', Form, Form),
      btn_Save    := CreateObject('TbeButton', 'btn_Save', Form, Form),
      btn_Cancel  := CreateObject('TbeButton', 'btn_Cancel', Form, Form),
      btn_Next    := CreateObject('TbeButton', 'btn_Next', Form, Form),
      attach_Main := CreateObject('TbeCbAttachment', 'attach_Main', Form, Form),
      lbl_Id      := CreateObject('TbeLabel', 'lbl_Id', Form, Form),
      lbl_Subject := CreateObject('TbeLabel', 'lbl_Subject', Form, Form),
      pnl_State   := CreateObject('TPanel', 'pnl_State', Form, Form),
      DataSource  := CreateObject('TDataSourceEx', 'DataSource_D065', Form),
      DataSet     := BeOpen(waDab065, 'DAB06B'),

      btn_Prev.Caption   := 'Previous',
      btn_Save.Caption   := 'Save',
      btn_Cancel.Caption := 'Cancel',
      btn_Next.Caption   := 'Next',
      pnl_State.Caption  := '',

      Form.ClientHeight := 180,
      Form.ClientWidth  := 320,
      Form.Position     := poScreenCenter,

      Resize(btn_Prev, 5, 5, 70, 25),
      Resize(btn_Save, 85, 5, 70, 25),
      Resize(btn_Cancel, 165, 5, 70, 25),
      Resize(btn_Next, 245, 5, 70, 25),
      Resize(attach_Main, 4, 35, 312, 100),
      Resize(lbl_Id, 40, 140, 0, 0),
      Resize(lbl_Subject, 40, 157, 0, 0),
      Resize(pnl_State, 5, 139, 30, 32),

      DataSource.DataSet := DataSet,

      DataSource_OnStateChange(DataSource),

      AssignEvent(btn_Prev, 'OnClick', 'btn_Prev_Click'),
      AssignEvent(btn_Next, 'OnClick', 'btn_Next_Click'),
      AssignEvent(btn_Cancel, 'OnClick', 'btn_Cancel_Click'),
      AssignEvent(btn_Save, 'OnClick', 'btn_Save_Click'),
      AssignEvent(DataSource, 'OnStateChange', 'DataSource_OnStateChange'),

      attach_Main.DropTarget              := Form,
      attach_Main.DataSet                 := DataSet,
      attach_Main.DataField               := 'DATA',
      attach_Main.ShowEmbeddedAttachments := false,

      DataSet.CbLast(),

      RefreshForm(),
      RefreshActions(),
      ShowModal(Form),
   always
      DestroyObject(Form),
   stopseq,
onerror
   Writeln(GetErrorText(GEtErrorObj())),
stopseq, 


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.