![]() |
Datenbank: egal • Version: egal • Zugriff über: egal
DBKomponente POST/CANCEL Events?
Ich schreibe mir gerade eine Komponente, die per TFieldDataLink mit einem DataSource verbunden wird.
Nun muß ich beim speichern und so, in einer anderen Datenbank SQL Aktionen ausführen, aber ich finde weder ein Event, noch ein property, mit dem ich feststellen kann, das der USer ein POST oder CANCEL Ereignis ausführt. Ich sehe nur den aktuellen Zustand der DataSource ... Gibt es da was anderes? Oder wie komme ich zu den Events in der Komponente? |
Re: DBKomponente POST/CANCEL Events?
Hallo,
im DataSource nicht, aber im dort festgelegten Dataset. Die Events sind im übrigen lokal, wenn auf einem anderen Rechner mit dem gleichen Dataset (Tabelle) was gemacht wird, bekommst du das nicht mit. Heiko |
Re: DBKomponente POST/CANCEL Events?
aber, wie kann ich VON der Komponente darauf zugreifen?
ich mache eine Art von TDBComboBox, die aber beim POST Ereignis der DataSource noch spezielle Sachen ausführen muß. |
Re: DBKomponente POST/CANCEL Events?
DataSource != DataSet
|
Re: DBKomponente POST/CANCEL Events?
Hi,
dafür ist IMHO OnEditingChange von TFieldDatalink zuständig. Frank |
Re: DBKomponente POST/CANCEL Events?
Zitat:
aber, wie gesagt, ich möchte gerne eine DB Komponente designen, die ich dann auf mein Form ploppe, den DataSource und den Feldnamen auswähle Das ändern, speichern und co, funktioniert ja mit dem TFieldDataLink ja ganz toll, aber nun muß ich in dieser Komponente, beim speichern der DataSource (wird natürlich die DataSet gespeichert) noch extra Sachen ausführen. Man bekommt ja die events OnEditingChange, aber leider weiss man da nicht, ob es wegen POST oder CANCEL oder was weiss ich ist. nun müsste ich im DataSet ein Flag setzen, und dieses dann im OnEditingChange des TFieldDataLink abfragen, nur möchte ich das ganze so Global wie möglich halten. |
Re: DBKomponente POST/CANCEL Events?
Hallo,
TFieldDatalink hat ja sogar ein DataSet als Property. Erzeuge also ein Ereignismethode für das gewünschte DataSet Event (AfterCancel, BeforeCancel oder was du auch willst). Etwa so.
Delphi-Quellcode:
type
TMyComponent = class procedure MyEvent of Object; end; und irgendwo Self.DataSet.OnBeforeCancel:= MyEvent; Zu Events war letzte Woche ne Menge getippert worden. Heiko |
Re: DBKomponente POST/CANCEL Events?
Zitat:
Geht das nicht anders? So muß ich mir ja dann die letzen Events merken (dieses Events werden natürlich schon verwendet), ich brauche nun sowas wie einen FieldDataLink, nur der mir Infos über den DataSet gibt. Wie man Evernts generell verwendet ist mir klar, nur ist es natürlich nicht schön in einer Komponente, die man dann ja auch 3 mal auf das Form geben kann, jedesmal auf das Event des DataSet zuzugreien, das wird mir dabei übel, wenn ich das wirklich so lösen müsste ... |
Re: DBKomponente POST/CANCEL Events?
Hallo
und irgendwo Self.DataSet.OnBeforeCancel:= MyEvent; sollte heissen "und irgendwo in deiner Komponente". Also nicht an mehreren Stellen. Natürlich sollte deine Komponente vor dem Setzen von OnBeforeCancel:= MyEvent den alten Event-Handler speichern und ihn vor deinem oder nach deinem eigenen Handler aufrufen. Das ganze ist aber immer nur einmal (in deiner Komponente) vorhanden. Heiko |
Re: DBKomponente POST/CANCEL Events?
Zitat:
Zitat:
Das Problem ist deshalb, da ich zur Laufzeit auch die Events ändern kann (da läuft eine Script Engine und Formulareditor mit, und der bekommt dann probs, wenn jemand anders als die Scriptengine diese Events verwendet ... ) deshalb wollte ich eine Standardlösung machen, die mit den Defaultmitteln von Delphi DB Komponenten auskommt, und nicht ein eigenes Süppchen kochen, aber wenns nicht anders geht, muß ich wohl oder übel mit Flags arbeiten :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz