ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 30.11.2000

Diese Seite wurde zuletzt aktualisiert am 30.11.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Extra-Tag per API

Zurück...


Anzeige

(-hg) mailto:hg_extratag@aboutvb.de

Visual Basic-Objekte wie Forms und Steuerelemente verfügen über die Tag-Eigenschaft, in der Sie einen beliebigen String ablegen können. So können Sie irgendwelche Daten fest mit einem Objekt verbinden, ohne globale Variablen samt einer eventuell komplizierten Verwaltung für mehrere Instanzen von Objekten einrichten zu müssen.

Manchmal wäre es allerdings wünschenswert, mehrere solcher Datenablage-Möglichkeiten zur Verfügung zu haben. So sollte beispielsweise bei Verwendung der API-Methode MSDN Library - API SetParentSetParent das bei ihrem Aufruf zurückgegebene Fenster-Handle des vorherigen Besitzers festgehalten werden, um später die Änderung des Parent-Verhältnisses wieder exakt rückgängig machen zu können. Sie könnten dieses Handle zwar in der Tag-Eigenschaft des per SetParent verschobenen Steuerelements ablegen, würde sich aber damit jede andere Nutzungsmöglichkeit der Tag-Eigenschaft blockieren.

Wenn es, wie im geschilderten Fall, lediglich um Long-Werte gehen sollte, könnten Sie über das API eine zusätzliche Datenablage-Möglichkeit nutzen. Jedes Fenster verfügt nämlich ähnlich der Tag-Eigenschaft in VB über einen kleinen Speicherbereich, in dem ein Long-Wert abgelegt werden kann. Den Zugriff auf diesen erhalten Sie über die API-Funktionen MSDN Library - API SetWindowLongSetWindowLong und MSDN Library - API GetWindowLongGetWindowLong und den Index-Parameter GWL_USERDATA.

Die Prozedur SetExtraTag und die Funktion GetExtraTag vereinfachen den Aufruf:

Private Declare Function GetWindowLong Lib "user32" _
 Alias "GetWindowLongA" (ByVal hWnd As Long, _
 ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" _
 Alias "SetWindowLongA" (ByVal hWnd As Long, _
 ByVal nIndex As Long, ByVal dwNewLong As Any) As Long

Private Const GWL_USERDATA = (-21)

Public Sub SetExtraTag(ByVal hWnd As Long, ByVal Value As Long)
  SetWindowLong hWnd, GWL_USERDATA, Value
End Sub

Public Function GetExtraTag(ByVal hWnd As Long) As Long
  GetExtraTag = GetWindowLong(hWnd, GWL_USERDATA)
End Function

Bei Visual Basic-eigenen Forms und Steuerelementen sollten Sie diese Speicherstelle problemlos verwenden können. Bei externen Steuerelementen und Komponenten sollten sie sich jedoch vergewissern, ob diese nicht diese Speicherstelle bereits selbst verwenden (eventuell auch nur kurzzeitig zwischendurch).


Modul modExtraTag (modExtraTag.bas - ca. 0,8 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer