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. 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
|
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,