33
Wizards & Wizards & Builders Builders GmbH GmbH Ansteuerung von Treeview Ansteuerung von Treeview Die Ansteuerung des Die Ansteuerung des MS Treeview-Controls unter MS Treeview-Controls unter Microsoft Visual FoxPro Microsoft Visual FoxPro

Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Embed Size (px)

Citation preview

Page 1: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Ansteuerung von Ansteuerung von TreeviewTreeview

Die Ansteuerung desDie Ansteuerung desMS Treeview-Controls unterMS Treeview-Controls unter

Microsoft Visual FoxProMicrosoft Visual FoxPro

Page 2: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Diese Schulung dient der Einführung in die Ansteuerung von

Treeview-Controls sowie der Darstellung einer Meta-

datengesteuerten Treeview-Klasse unter Microsoft Visual FoxPro

Page 3: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

ThemenübersichtThemenübersicht

Treeview-ControlTreeview-Control NodesNodes ImagesImages LoadTreeLoadTree LoadNodesLoadNodes Konfiguration, interner CursorKonfiguration, interner Cursor Events, ImagesEvents, Images MetadatenstrukturMetadatenstruktur AufrufreihenfolgeAufrufreihenfolge Sonstige HinweiseSonstige Hinweise

Page 4: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Grundaufbau TreeviewGrundaufbau Treeview

Die Komponenten des Die Komponenten des Treeview-Controls unterTreeview-Controls unterMicrosoft Visual FoxProMicrosoft Visual FoxPro

Page 5: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Wo finde ich was?Wo finde ich was?

Treeview-Control in COMCTL32.DLLTreeview-Control in COMCTL32.DLL Hilfedatei unter COMCTL1.HLP oder Hilfedatei unter COMCTL1.HLP oder

CTRLREF.HLPCTRLREF.HLP Stichwort: Strukturansicht Stichwort: Strukturansicht

(Treeview)(Treeview) Beispiel unter ACTIVEX.VCX (Buch)Beispiel unter ACTIVEX.VCX (Buch)

Page 6: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Treeview-Control (1)Treeview-Control (1)

Eigenschaften:Eigenschaften: Visible, EnabledVisible, Enabled BorderStyle, BorderStyle,

LineStyleLineStyle LabelEditLabelEdit ScrollbarsScrollbars Height, Width, Height, Width,

Top, LeftTop, Left Imagelist (!)Imagelist (!)

Eigenschaften:Eigenschaften: SortedSorted

Nodes (!)Nodes (!)

Page 7: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Treeview-Control (2)Treeview-Control (2)

Methoden:Methoden: ClearClear SetFocusSetFocus GetVisible, HitTestGetVisible, HitTest StartLabelEditStartLabelEdit RemoveRemove SetFocusSetFocus RefreshRefresh

Ereignisse:Ereignisse: Before/AfterLabel EditBefore/AfterLabel Edit Node/Click, DblClickNode/Click, DblClick Collapse, ExpandCollapse, Expand DragDrop, DragOvDragDrop, DragOv MouseDo/Up/MoveMouseDo/Up/Move KeyDown/Up/PressKeyDown/Up/Press Got/LostFocusGot/LostFocus

Page 8: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Nodes-ControlNodes-Control

Eigenschaften:Eigenschaften: Enabled, VisibleEnabled, Visible TextText Index, KeyIndex, Key Expanded(Image)Expanded(Image) (Selected)(Image)(Selected)(Image) RootRoot

Methoden:Methoden: Add Add (relative, (relative,

relationship, key, text, relationship, key, text, image, selectedimag)image, selectedimag)

ClearClear CreateDragImageCreateDragImage EnsureVisibleEnsureVisible Item (Index / Key )Item (Index / Key ) Remove (dito)Remove (dito)

Page 9: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

ImageList-ControlImageList-Control

Eigenschaften:Eigenschaften: BackColorBackColor MaskColorMaskColor ImageHeigth /ImageHeigth /

WidthWidth ListImagesListImages IndexIndex NameName

Eigenschaften:Eigenschaften: TagTag ObjectObject ParentParent

Methoden:Methoden: OverlayOverlay

Page 10: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Einfaches Treeview-Einfaches Treeview-BeispielBeispiel

Einfaches Beispiel zur Einfaches Beispiel zur Treeview-Ansteuerung für Treeview-Ansteuerung für

Microsoft Visual FoxProMicrosoft Visual FoxPro

Page 11: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

LoadTreeLoadTree

Buch: Rod Paddock, ACTIVEX.VCXBuch: Rod Paddock, ACTIVEX.VCX (Code auch in „Notizen“ zu den Slides)(Code auch in „Notizen“ zu den Slides)

Parameter: Parameter: Key, Parent Key, Key, Parent Key, DescriptionDescription

This.Nodes.Add( )This.Nodes.Add( ) ggf. This.LoadNodes( )ggf. This.LoadNodes( )

eigene Funktioneigene Funktion

Page 12: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

LoadNodeLoadNode

Parameter: DBF, Key, ParentOrderParameter: DBF, Key, ParentOrder SCAN-Schleife über ChildSCAN-Schleife über Child Node addierenNode addieren Recno merken (!)Recno merken (!) Falls Subchilds: Rekursiver AufrufFalls Subchilds: Rekursiver Aufruf Recno wiederherstellenRecno wiederherstellen

Page 13: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Treeview-Treeview-KlassenbibliothekKlassenbibliothek

Beispiel für eine Wrapper-Beispiel für eine Wrapper-Klasse um das Treeview-Klasse um das Treeview-

Control unter Control unter Microsoft Visual FoxProMicrosoft Visual FoxPro

Page 14: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Konfiguration, interner Konfiguration, interner CursorCursor

Konfigurationsmöglichkeit INI-DateiKonfigurationsmöglichkeit INI-Datei Verwendung von GetPrivateProfileString()Verwendung von GetPrivateProfileString() Konfiguration der Metadatentabellen / ParameterKonfiguration der Metadatentabellen / Parameter

Verwendung INCLUDE-DateiVerwendung INCLUDE-Datei Konstanten/Funktionen in .h-Datei (genericname)Konstanten/Funktionen in .h-Datei (genericname)

Datenablage in internem CursorDatenablage in internem Cursor Info-Funktion zum Auslesen CursordatenInfo-Funktion zum Auslesen Cursordaten schneller als FindItem (durch Treeview scannen)schneller als FindItem (durch Treeview scannen)

Page 15: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Events, ImagesEvents, Images

Herauslegung diverser EventsHerauslegung diverser Events Collapse, ExpandCollapse, Expand Click, Doubleclick, RightclickClick, Doubleclick, Rightclick Achtung: Unterscheidung nur Mousedown Achtung: Unterscheidung nur Mousedown

mögl.mögl.

Dynamisches Laden der BitmapsDynamisches Laden der Bitmaps Referenz auf object.listimagesReferenz auf object.listimages .Add( loadpicture( ) ).Add( loadpicture( ) ) Achtung: Keine numerischen SchlüsselAchtung: Keine numerischen Schlüssel

Page 16: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

MetadatensteuerungMetadatensteuerung

Beispiel für eine Beispiel für eine Metadatensteuerung für das Metadatensteuerung für das

Treeview-Control unter Treeview-Control unter Microsoft Visual FoxProMicrosoft Visual FoxPro

Page 17: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

STR-MetadateiSTR-Metadatei

CID (Primärschlüssel)CID (Primärschlüssel) SORT (Sortierkennzeichen)SORT (Sortierkennzeichen) CODE (externer Aufrufcode für Ebene)CODE (externer Aufrufcode für Ebene) RECCNT (Satzzähler einblenden)RECCNT (Satzzähler einblenden) NAME (Anzeigetext)NAME (Anzeigetext) VALID (Gültigkeitsschalter)VALID (Gültigkeitsschalter) Diverse Image-FelderDiverse Image-Felder

IMAGE / IMAGEEXPAN / IMAGEKEY / ..KEYEX / CONDIMAGE / IMAGEEXPAN / IMAGEKEY / ..KEYEX / COND

Page 18: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

STRPAGE-Metadatei STRPAGE-Metadatei AllgemeinAllgemein

CID (Primärschlüssel)CID (Primärschlüssel) CPARENTCID (Zuordnung zu STR)CPARENTCID (Zuordnung zu STR) MODUL (Modulzuordnung für VCX-Laden)MODUL (Modulzuordnung für VCX-Laden) VALID (Gültigkeitsschalter)VALID (Gültigkeitsschalter) ENABLED (Element disabled dargestellt)ENABLED (Element disabled dargestellt) VISIBLE (Element sichtbar dargestellt)VISIBLE (Element sichtbar dargestellt) READONLY (Element Readonly READONLY (Element Readonly

dargestellt)dargestellt)

Page 19: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

STRPAGE-Metadatei (Sort 0)STRPAGE-Metadatei (Sort 0)

SORT (0 für Zuordnung zu STR)SORT (0 für Zuordnung zu STR) Diverse TabellendatenDiverse Tabellendaten

CHILD, CHILDALIAS für TabelleCHILD, CHILDALIAS für Tabelle CHILDFK für SchlüsselCHILDFK für Schlüssel FILTER, CTYP für Filter und SET KEY-EingrenzungFILTER, CTYP für Filter und SET KEY-Eingrenzung

CAPTION / EVAL (Text in Treeview)CAPTION / EVAL (Text in Treeview) MENUE (Kontextmenü für MENUE (Kontextmenü für

Treeview)Treeview) CLASS / CLASSLIB (Managerklasse)CLASS / CLASSLIB (Managerklasse)

Page 20: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

STRPAGE-Metadatei (Sort!STRPAGE-Metadatei (Sort!=0)=0)

SORT (Reihenfolge der Reiter in SORT (Reihenfolge der Reiter in Pageframe)Pageframe)

Diverse Tabellendaten für ChildtabelleDiverse Tabellendaten für Childtabelle CHILD, CHILDALIAS für TabelleCHILD, CHILDALIAS für Tabelle CHILDFK für SchlüsselCHILDFK für Schlüssel FILTER, CTYP für Filter und SET KEY-EingrenzungFILTER, CTYP für Filter und SET KEY-Eingrenzung

CAPTION / EVAL (Text für Reiter)CAPTION / EVAL (Text für Reiter) MENUE (Shortcut-Menü in Reiter)MENUE (Shortcut-Menü in Reiter) CLASS / CLASSLIB (Container in Reiter)CLASS / CLASSLIB (Container in Reiter)

Page 21: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Programmierung Programmierung TreeviewTreeview

Programmierung einer Meta-Programmierung einer Meta-datensteuerung für Treeviews datensteuerung für Treeviews

unterunterMicrosoft Visual FoxProMicrosoft Visual FoxPro

Page 22: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Initialisierung MetadatenInitialisierung Metadaten

LoadTreeviewMetaDataLoadTreeviewMetaData OpenTreeviewStrTablesOpenTreeviewStrTables OpenTableOpenTable LoadClassLibsFromModulesLoadClassLibsFromModules AddLevelAddLevel

Page 23: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Neue Ebene anlegenNeue Ebene anlegen

AddLevelAddLevel AddLeveltoTreeviewAddLeveltoTreeview AddManagerAddManager SetManagerSetManager AddPageFrameAddPageFrame AddPageAddPage

Page 24: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Navigieren im TreeviewNavigieren im Treeview

NavigInTableNavigInTable SetManagerSetManager NavigInAllPagesNavigInAllPages NavigInPageNavigInPage NavigInTableNavigInTable

Page 25: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Custom-Page-KlasseCustom-Page-Klasse

Custom Page-Klasse Custom Page-Klasse notwendig u.a. für folgende notwendig u.a. für folgende Methoden:Methoden:

Activate( )Activate( ) RightClick( )RightClick( ) ggf. ShowWhatsThis( )ggf. ShowWhatsThis( )

Page 26: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Komplexere SteuerungenKomplexere Steuerungen

Hierarchische Berechnungen sehr Hierarchische Berechnungen sehr zeitaufwendig bei der Optimierungzeitaufwendig bei der Optimierung

Bei komplexeren Treeviews Bei komplexeren Treeviews Trennung zwischen Manager- und Trennung zwischen Manager- und ZeilenobjektZeilenobjekt

Editor und Validier-Funktionen für Editor und Validier-Funktionen für Metadaten sinnvoll aber aufwendigMetadaten sinnvoll aber aufwendig

Page 27: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Sonstige HinweiseSonstige Hinweise

Sonstige Hinweise zum Einsatz Sonstige Hinweise zum Einsatz des Treeview-Controls unterdes Treeview-Controls unter

Microsoft Visual FoxProMicrosoft Visual FoxPro

Page 28: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Performance beim AufbauPerformance beim Aufbau

Kleiner Performance-Trick:Kleiner Performance-Trick: treeview.Visible = .F.

treeview.Top = treeview.Top + 9999

*-- Treeview mit Daten füllen

treeview.Top = treeview.Top - 9999

treeview.Visible = .T.

(erspart Refresh-Zeiten des Treeviews)(erspart Refresh-Zeiten des Treeviews)

Page 29: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Problem bei neuerer Problem bei neuerer VersionVersion

COMCTL32.OCX ab 97 vergeßlich:COMCTL32.OCX ab 97 vergeßlich: TreeView.Init:TreeView.Init: this.object.ImageList = thisform.imagelist1.object

ListView.Init:ListView.Init: this.object.Icons = thisform.imagelist2.object

this.object.SmallIcons = thisform.imagelist3.object

Außerdem:Außerdem: nicht abwärtskompatibelnicht abwärtskompatibel

Page 30: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Weitere IdeenWeitere Ideen

Wegschalten des Treeviews wie bei der Wegschalten des Treeviews wie bei der neuen HTML-Hilfe von Visual FoxProneuen HTML-Hilfe von Visual FoxPro

Schalter für verschiedene Breite des Schalter für verschiedene Breite des Treeview-Controls zum PlatzsparenTreeview-Controls zum Platzsparen

Multiple Instanzen von Masken mit/ohne Multiple Instanzen von Masken mit/ohne Treeview-ControlTreeview-Control

„„Abreißbare“ Pages als EinzelmaskenAbreißbare“ Pages als Einzelmasken

Page 31: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Was ist zu beachten?Was ist zu beachten?

Container um Container um Treeview bauenTreeview bauen

Interner Cursor für Interner Cursor für Daten-verwaltungDaten-verwaltung

Events / ImagesEvents / Images Metadaten sehr Metadaten sehr

leistungsfähig leistungsfähig Neue Versionen!Neue Versionen!

Page 32: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Vielen Dank!Vielen Dank!

Das waren die Themen:Das waren die Themen: Treeview-ControlTreeview-Control NodesNodes ImagesImages LoadTreeLoadTree LoadNodesLoadNodes Konfiguration, interner Konfiguration, interner

CursorCursor Events, ImagesEvents, Images MetadatenstrukturMetadatenstruktur AufrufreihenfolgeAufrufreihenfolge ProgrammierhinweiseProgrammierhinweise Sonstige Hinweise...Sonstige Hinweise...

Page 33: Wizards & Builders GmbH Ansteuerung von Treeview Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Wenn Fragen bestehen:Wenn Fragen bestehen:

Wizards & BuildersWizards & BuildersMethodische Software-Methodische Software-

Entwicklung GmbHEntwicklung GmbH

Frankfurter Str. 21bFrankfurter Str. 21b

61476 Kronberg61476 Kronberg

Tel.: 06173-950906Tel.: 06173-950906

Fax: 06173-950907Fax: 06173-950907

CIS: 101605,175CIS: 101605,175