ansteuerung von treeview

Post on 23-Jan-2016

107 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Ansteuerung von Treeview. Die Ansteuerung des MS Treeview-Controls unter Microsoft Visual FoxPro. Diese Schulung dient der Einführung in die Ansteuerung von Treeview-Controls sowie der Darstellung einer Meta-datengesteuerten Treeview-Klasse unter Microsoft Visual FoxPro. Themenübersicht. - PowerPoint PPT Presentation

TRANSCRIPT

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

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

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

Wizards & Wizards & Builders GmbH Builders GmbH

Grundaufbau TreeviewGrundaufbau Treeview

Die Komponenten des Die Komponenten des Treeview-Controls unterTreeview-Controls unterMicrosoft Visual FoxProMicrosoft 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)

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 (!)

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

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)

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

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

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

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

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

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)

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

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

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

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)

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)

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)

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

Wizards & Wizards & Builders GmbH Builders GmbH

Initialisierung MetadatenInitialisierung Metadaten

LoadTreeviewMetaDataLoadTreeviewMetaData OpenTreeviewStrTablesOpenTreeviewStrTables OpenTableOpenTable LoadClassLibsFromModulesLoadClassLibsFromModules AddLevelAddLevel

Wizards & Wizards & Builders GmbH Builders GmbH

Neue Ebene anlegenNeue Ebene anlegen

AddLevelAddLevel AddLeveltoTreeviewAddLeveltoTreeview AddManagerAddManager SetManagerSetManager AddPageFrameAddPageFrame AddPageAddPage

Wizards & Wizards & Builders GmbH Builders GmbH

Navigieren im TreeviewNavigieren im Treeview

NavigInTableNavigInTable SetManagerSetManager NavigInAllPagesNavigInAllPages NavigInPageNavigInPage NavigInTableNavigInTable

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( )

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

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

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)

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

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

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!

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...

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

top related