{"id":150,"date":"2017-03-08T15:00:27","date_gmt":"2017-03-08T15:00:27","guid":{"rendered":"http:\/\/hahne-software.de\/?p=150"},"modified":"2018-05-24T12:12:59","modified_gmt":"2018-05-24T12:12:59","slug":"verwendung-von-soview","status":"publish","type":"post","link":"https:\/\/hahne-software.de\/?p=150","title":{"rendered":"Verwendung von SOView"},"content":{"rendered":"<p>Die Komponente\u00a0<strong>TSOView<\/strong>\u00a0aus der Unit <strong>SOViewUnit<\/strong> erm\u00f6glicht es den Inhalt eines Objektes das von der Klasse <strong>TStorableObject<\/strong> abgeleitet wurde inhaltlich anzuzeigen. Es werden entsprechend der vorgegeben Datentypen Eingabefelder, Checkboxen, Datum-Auswahlfelder und Auswahllisten automatisch erzeugt. Eventuell ben\u00f6tigte Lookup-Listen f\u00fcr die Auswahllisten bzw. Radiogruppen werden bei Bedarf automatisch geladen. Weiterhin unterst\u00fctzt <strong>SOView<\/strong> das Speichern und Laden der Daten. \u00dcber die Events <strong>OnBeforeCreateControl<\/strong>\u00a0und <strong>OnAfterCreateControl<\/strong> die vor bzw. nach dem Erzeugen eines Controls aufgerufen werden, ist es m\u00f6glich die Erstellung \u00a0bzw. die Positionierung der Controls zu beeinflussen. Es besteht auch die M\u00f6glichkeit ein <strong>SOView\u00a0<\/strong>mit einem <strong>Dataset<\/strong> zu verbinden, dadurch ist es m\u00f6glich die angezeigten Daten direkt zu aktualisieren wenn im Dataset \u00c4nderungen durch ein First, Last, Next oder Prior auftreten.<\/p>\n<p>Ein <strong>SOView <\/strong>kann auf jedem Delphi-Control platziert werden das von der Klasse <strong>TCustomControl<\/strong> abgeleitet wurde.<\/p>\n<h4>Beispiel f\u00fcr die Bearbeitung eines Objektes vom Typ TCustomer:<\/h4>\n<pre><span style=\"color: #3366ff;\">\/\/ Lade den Datensatz von dem Kunden mit der ID 1 in das Objekt cus<\/span>\r\ncus := TCustomer.Create(StorageProvider, 1);\r\n\r\n<span style=\"color: #3366ff;\">\/\/ Auf dem Formular befindet sich eine Komponente vom Typ TSOView mit dem Namen sov<\/span>\r\nsov.LinkToObject(cus);\r\n\r\n<span style=\"color: #3366ff;\">\/\/ Erzeuge die ben\u00f6tigten Controls<\/span>\r\nsov.CreateControls;\r\n\r\n<span style=\"color: #3366ff;\">\/\/ Nehme die Daten aus cus und lade diese in die erzeugten Controls<\/span>\r\nsov.Load;<\/pre>\n<h4>Beispiel f\u00fcr die Koppelung mit einem Dataset:<\/h4>\n<pre><span style=\"color: #3366ff;\">\/\/ Verbinde die Datenmenge \"Dataset\" mit der Klasse TCustomer<\/span>\r\nsov.LinkToDataset(StorageProvider, Dataset, TCustomer);\r\n\r\n<span style=\"color: #3366ff;\">\/\/ Erzeuge die ben\u00f6tigten Controls<\/span>\r\nsov.CreateControls;<\/pre>\n<pre><span style=\"color: #3366ff;\">\/\/ Lade die Daten aus dem Dataset und zeige diese an. <\/span>\r\nsov.Load;\r\n\r\n<span style=\"color: #3366ff;\">\/\/ Danach werden die Daten automatisch angezeigt wenn das Dataset bewegt wird.<\/span><\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Komponente\u00a0TSOView\u00a0aus der Unit SOViewUnit erm\u00f6glicht es den Inhalt eines Objektes das von der Klasse TStorableObject abgeleitet wurde inhaltlich anzuzeigen. Es werden entsprechend der vorgegeben Datentypen Eingabefelder, Checkboxen, Datum-Auswahlfelder und Auswahllisten automatisch erzeugt. Eventuell ben\u00f6tigte Lookup-Listen f\u00fcr die Auswahllisten bzw. Radiogruppen werden bei Bedarf automatisch geladen. Weiterhin unterst\u00fctzt SOView das Speichern und Laden der Daten. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,3],"tags":[],"class_list":["post-150","post","type-post","status-publish","format-standard","hentry","category-delphi","category-storableobjects"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts\/150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=150"}],"version-history":[{"count":7,"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts\/150\/revisions"}],"predecessor-version":[{"id":287,"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts\/150\/revisions\/287"}],"wp:attachment":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}