Einzelnen Beitrag anzeigen

sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#9

Re: automatisches post bei scroll verhindern

  Alt 10. Aug 2006, 15:50
reden wir von der gleichen sache?

Zitat:
In TFIBDataSet

AfterCancel
AfterClose
AfterDelete
AfterEdit
AfterInsert
AfterOpen
AfterPost
AfterRefresh
AfterScroll
BeforeCancel
BeforeClose

BeforeDelete
BeforeEdit
BeforeEndUpdateTransaction
BeforeInsert
BeforeOpen
BeforePost
BeforeRefresh
BeforeScroll

Derived from TFIBCustomDataSet
AfterEndTransaction

AfterEndUpdateTransaction
AfterFetchRecord
AfterStartTransaction
AfterStartUpdateTransaction
BeforeEndTransaction

BeforeFetchRecord
BeforeStartTransaction
BeforeStartUpdateTransaction
DatabaseDisconnected
DatabaseDisconnecting

DatabaseFree
OnCompareFieldValues
OnDisableControls
OnEnableControls
OnEndScroll
OnFieldChange

OnFillClientBlob
OnGetRecordError
OnUpdateError
OnUpdateRecord
TransactionEnded
TransactionEnding

TransactionFree

Derived from TDataSet
OnCalcFields
OnDeleteError
OnEditError
OnFilterRecord
OnNewRecord
OnPostError
Aber die Idee mit dem Flag war gut. Was ich momentan gemacht habe, ist im BeforeAction des Navigators folgenden Code einzuführen:

Delphi-Quellcode:
procedure TWBWin.DBNavigator4BeforeAction(Sender: TObject;
  Button: TNavigateBtn);
begin
  if Button = nbPost then
    TDataModule1(self.Owner).DicentriesMayPost := true;
end;
Das Posten sieht dann folgendermaßen aus:

Delphi-Quellcode:
procedure TDataModule1.DataSetDicEntriesBeforePost(DataSet: TDataSet);
begin
      if (not self.DicentriesMayPost) then
      begin
        self.DataSetDicEntries.Cancel();
        abort();
      end
      else
        self.DicentriesMayPost := false;
end;
Der einzige Nachteil, den das hat, ist natürlich, dass wenn ich durch das Dataset scrolle während es im Edit-Mode ist, dann wird einfach nurgecancelt und dann abgebrochen (also der Pointer bleibt auf dem Eintrag); ich muss dann noch ein zweites Mal scrollen, damit's dann wirklich zum nächsten oder vorherigen Eintrag geht...
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat