Delphi Deep Exploration – Datenbank – ActiveX-Steuerelement löschen
Die leistungsstarke Datenbankentwicklungsfunktion ist zweifellos das Kronjuwel von Delphi. Mindestens 80 % der Menschen verwenden Delphi täglich, um Datenbankprogramme zu entwickeln. Basierend auf der Baustein-VCL-Datenbanksteuerung sowie den leistungsstarken Datenbank-Clear-Steuerungen von Drittanbietern, die von Unternehmen wie Dev ExPRess und Woll2Woll bereitgestellt werden, ist es keine Übertreibung zu sagen, dass wir einfach nur die Eigenschaften festlegen und mit der Maus ziehen müssen einige Male, um die Programmentwicklung sehr schnell abzuschließen. Da die Datenbankfunktion von Delphi zu leistungsfähig ist, übersehen viele Menschen, dass ActiveX auch eine flexible Datenbankbindung bieten kann. Leider ist keines der von Delphi selbst bereitgestellten ActiveX-Steuerelemente datenbankfähig, was indirekt zu einem Missverständnis führte , was dazu führt, dass viele Leute fälschlicherweise glauben, dass Delphi keine ActiveX-Steuerelemente mit klaren Daten unterstützt (einschließlich mir vor langer Zeit). Das ist natürlich eine falsche Sichtweise. Verwendung des ActiveX-Steuerelements zum Löschen von Daten in Delphi Im folgenden Beispiel verwenden wir das im System mit Office 2000 installierte Steuerelement für Microsoft Calendar 9.0 zur Demonstration. Es handelt sich um ein Steuerelement zum Löschen von Daten. Wählen Sie Komponente |. ActiveX-Steuerelement importieren, wählen Sie Microsoft Calendar 9.0 (siehe Abbildung 1.12 unten), ändern Sie den Klassennamen von TCalendar in TAXCalendar, um Konflikte mit dem ursprünglichen Steuerelement mit demselben Namen im System zu vermeiden, und klicken Sie dann auf die Schaltfläche „Installieren“, um dieses zu installieren Kontrolle.
Erstellen Sie ein neues Programm und platzieren Sie ein TAXCalendar-Steuerelement im Formular. Fügen Sie eine weitere Datenquelle und ein Tabellensteuerelement ein. Legen Sie den Datensatz von DataSource auf Table1 fest, legen Sie dann die DataBaseName-Eigenschaft von Table1 auf DBDEMOS, die TableName-Eigenschaft auf EMPLOYEE.DB und schließlich die Table1.Active-Eigenschaft auf True fest. Als nächstes ist es an der Zeit, die Datenbank zu binden. Beachten Sie, dass der eingeführte TAXCalendar zwei Eigenschaften hat, DataSource und DataBindings, die sich vom allgemeinen ActiveX-Steuerelement unterscheiden. Dies liegt daran, dass der ActiveX-Import-Assistent vor der Einführung zunächst ermittelt, ob es sich um ein datenbankfreundliches Steuerelement handelt das ActiveX-Steuerelement. Wenn ja, verwenden Sie TDBOleControl als Basisklasse zum Erben. Wenn nicht, erben Sie von TOleControl. Das TDBOleControl implementiert die Eigenschaften DataBindings und DataSource. Legen Sie die Eigenschaft AXCalendar1.DataSource auf Datasource1 fest. Wenn wir zu diesem Zeitpunkt mit der rechten Maustaste auf das TAXCalendar-Steuerelement im Formular klicken, finden wir im Kontextmenü einen zusätzlichen Menüpunkt „DataBindings...“ (siehe Abbildung 1.13 unten).
Nachdem Sie auf den Menüpunkt geklickt haben, wird das Bearbeitungsfeld für das Datenbindungsattribut angezeigt (siehe Abbildung 1.14 unten). Wählen Sie „HireDate“ im Listenfeld „FieldName“ aus, wählen Sie „Value(12)“ im Listenfeld „Property Name“ (12 ist die Dispid-Nummer von Value) und klicken Sie auf die Schaltfläche „Binden“, um eine Datenzuordnung zwischen dem Datenbankfeld und der Value-Eigenschaft herzustellen.
Platzieren Sie abschließend ein DBGrid- und ein DBNavigator-Steuerelement im Formular und legen Sie deren DataSource auf DataSource1 fest. Wenn Sie das Programm ausführen und die aktuelle Datenposition verschieben, können Sie feststellen, dass sich auch die Datumsanzeige in ActiveX entsprechend dem Einstellungsdatum in der Datenbank ändert. Wie in Abbildung 1.15 dargestellt:
Erstellen von ActiveX-Steuerelementen mit Datenlöschung Obwohl wir bereits wissen, dass Delphi tatsächlich ActiveX-Steuerelemente mit Datenlöschung verwenden kann, stellt sich eine neue Frage. Kann Delphi selbst ActiveX-Steuerelemente mit Datenlöschung erstellen? Da Delphi die Konvertierung und Generierung von ActiveX-Steuerelementen in einem Schritt ermöglicht, hoffen viele Menschen, die leistungsstarken Datenbanksteuerelemente in Delphi in ActiveX-Steuerelemente umzuwandeln, damit sie bei der Entwicklung von Datenbankprogrammen in anderen Entwicklungsumgebungen, die ActiveX unterstützen, weiterhin die gleiche Erfahrung wie in Delphi genießen können . Das gleiche entspannte und glückliche Gefühl. Aber wie ich im ersten Teil erwähnt habe, kann Delphi seine leistungsstarke Datenbanksteuerung nicht einfach direkt konvertieren, da sich der interne Mechanismus der Datenlöschsteuerung von Delphi zu sehr von dem der ActiveX-Datenbanksteuerung unterscheidet. Bedeutet das, dass wir nichts tun können? Natürlich nicht! Tatsächlich können wir mit dem Typbibliothekseditor ganz einfach ein ActiveX-Steuerelement mit klaren Daten implementieren. Versuchen wir es mit dem TEdit-Steuerelement und sehen wir, wie es geht. Wählen Sie den Menübefehl Neu | ActiveX-Steuerelement, um den ActiveX-Steuerelement-Konvertierungsassistenten zu starten, wählen Sie das TEdit-Steuerelement als Konvertierungsobjekt aus und generieren Sie das EditX-ActiveX-Framework. Als Nächstes transformieren wir die Text-Eigenschaft von TEdit, um die Datenbindung zu unterstützen. Wählen Sie „Ansicht |“. Typbibliothek, um die von Delphi generierte Typbibliothek anzuzeigen, wählen Sie die Eigenschaft „Text“ aus und wechseln Sie dann zur Eigenschaftenseite „Flags“ (siehe Abbildung 1.16 unten).
Beachten Sie, dass es auf der Eigenschaftenseite „Flags“ viele Kontrollkästchen gibt. Für uns sind nur die Optionen im Zusammenhang mit der Datenbindung wichtig. Es gibt die Optionen „Bindbar“, „Anzeige bindbar“, „Standard bindbar“, „Sofort bindbar“ und „Bearbeitung anfordern“. Nachdem eine Eigenschaft als bindbar markiert und an ein Datenbankfeld gebunden wurde, benachrichtigt das Steuerelement die Datenbank, wenn der Benutzer die Eigenschaft ändert, dass sich der Wert geändert hat, und fordert die Datenbank auf, den Aktualisierungsstatus aufzuzeichnen Datensatzaktualisierung war erfolgreich. Die Option „Bindbar“ gibt an, dass die Eigenschaft die Datenbindung unterstützt. Wenn die Eigenschaft als bindbar markiert ist, benachrichtigt die Eigenschaft ihren Container, wenn sich ihr Wert ändert. „Request Edit“ gibt an, dass die Eigenschaft OnRequestEdit-Benachrichtigungsmeldungen unterstützt, die es dem Steuerelement ermöglichen, den Container zu fragen, ob der Eigenschaftswert vom Benutzer geändert werden darf. „Bindbar anzeigen“ bedeutet, dass der Container dem Benutzer anzeigen kann, dass diese Eigenschaft bindbar ist. „Standard bindbar“ bedeutet, dass es das einzige standardmäßig bindbare Attribut ist. Um es verwenden zu können, muss gleichzeitig das Attribut „Bindbar“ markiert werden. Wenn „Immediate Bindable“ markiert ist, werden alle Änderungen benachrichtigt und die Flags „Bindable“ und „Request Edit“ müssen gesetzt werden. Als nächstes markieren wir die Text-Eigenschaft des EditX-Steuerelements als Bindable, Display Bindable, Default Bindable und Request Edit. Klicken Sie dann auf die Schaltfläche „Aktualisieren“, um die Typbibliothek zu aktualisieren, und wählen Sie schließlich „Ausführen | ActiveX-Server registrieren“, um das ActiveX-Steuerelement zu registrieren. Wenn Sie das neue EditX-ActiveX-Steuerelement einführen, werden Sie feststellen, dass es tatsächlich die Datenbindungsfunktion implementiert. Das Folgende ist ein Diagramm 1.17 der Funktionsweise eines EditX-Programms, das die Datenlöschfunktion verwendet einfach und cool, nicht wahr?