Re: OCX aktualisieren (comctl32.ocx > mscomctl.ocx) ?
- From: "Wolfgang Marx" <in21@xxxxxxx>
- Date: Fri, 30 Mar 2007 11:02:16 +0200
Hallo Oliver
Sorry, aber ich fürchte das kapier ich nicht. Wo liegt mein Denkfehler?
Entferne mal bei einer Kopie den Verweis auf das ocx und kompiliere Dein
Projekt,
Das Projekt enthält nur die benötigten Veweise "Visual Basic for
Applications", "Access 9.0" und "DAO 3.6"
Listview-Controls sind vorhanden, da auf Form gezeichnet. Auflistungen wie
z.B. "ListItems" werden als "Object" deklariert und per Code aus der DB
gefüllt.
Wenn ich "LateBinding" richtig verstehe, dann müsste der Code ungefähr
folgendermassen aussehen, da die Instanz des Controls erst zur Laufzeit
erstellt werden soll, nicht?
Dim myLstView As Object, lstItem As Object
Private Sub Form_Load()
Set myLstView = CreateObject("MSComctlLib.ListViewCtrl.2")
Set lstItem = myLstView.listItems.Add(, , "TEXT")
debug.print lstItem.index
End Sub
Bis dahin funktioniert das (debug.Print liefert 1). Egenschaften wie
"Height", "Width", "Visible", etc. können so jedoch nicht gesetzt werden, da
das Control ja physisch gar nicht existiert?
Evtl. wäre ein Link hilfreich der mir die Thematik erläutert.
Dank nochmal
Wolfgang
"Oliver Straub" <oliver.straub_NoS@xxxxxx> schrieb im Newsbeitrag
news:eUCpY9mcHHA.4392@xxxxxxxxxxxxxxxxxxxxxxx
Hallo Wolfgang,
. Mir scheint allerdings der Aufwand auf LateBinding umzustellen
im Augenblick mangels echtem Druck zur Umstellung zu gross, da
augenblicklich (fast) alle Eigenschaften über die Eigenschaftsseiten der
OCX'e vorgenommen wurden. Wenn ich das richtig sehe, wirkt sich der
Vorteil
deines Vorschlags erst bei zukünftigen, also der auf die "Erstumstellung"
folgenden Updates der Controls aus?
nein, die Eigenschaften die Du eingestellt hast brauchen keinen Verweis
zur Bibliothek. Das ActiveX-Control erzeugt eine Instanz der registrierten
Klasse, die Informationen dafür kommen vom System (Windows). Entferne mal
bei einer Kopie den Verweis auf das ocx und kompiliere Dein Projekt, dann
siehst Du ja wo Du auf Informationen aus der Bibliothek zugreifst.
Datentypen müssen dann durch Object ersetzt werden, und die Konstanten
musst Du als Public Const im Projekt selber anlegen. Wenn Du parallel eine
Mdb offen hast, die den entfernten Verweis noch enthält, kannst Du schnell
mit copy&past im Direktfenster dieser Mdb den Wert abfragen. Wenn Du nur
mit copy&past arbeitest, dann ist so eine Umstellung ein Vorgang, den man
völlig ohne Hirn bewerkstelligen kann. (Konstante kopieren, erst die
Public Const Zeile anlegen, dann den Wert abfragen, den Wert kopieren und
beim Public Const einfügen, dann wieder kompilieren, ...) Das kann man als
kurze Pause zwischendurch durchziehen. Das kann auch einer machen, der
keine Ahnung davon hat, was er da tut. Beim einhalten der QS sind Fehler
ausgeschlossen. :-)
Gruss
Oliver
.
- Follow-Ups:
- Re: OCX aktualisieren (comctl32.ocx > mscomctl.ocx) ?
- From: Oliver Straub
- Re: OCX aktualisieren (comctl32.ocx > mscomctl.ocx) ?
- References:
- OCX aktualisieren (comctl32.ocx > mscomctl.ocx) ?
- From: Wolfgang Marx
- Re: OCX aktualisieren (comctl32.ocx > mscomctl.ocx) ?
- From: Oliver Straub
- Re: OCX aktualisieren (comctl32.ocx > mscomctl.ocx) ?
- From: Wolfgang Marx
- Re: OCX aktualisieren (comctl32.ocx > mscomctl.ocx) ?
- From: Oliver Straub
- OCX aktualisieren (comctl32.ocx > mscomctl.ocx) ?
- Prev by Date: Re: Meldung Schreibgeschütz nicht anzeigen
- Next by Date: Access 97, Subselect und die eckige Klammer
- Previous by thread: Re: OCX aktualisieren (comctl32.ocx > mscomctl.ocx) ?
- Next by thread: Re: OCX aktualisieren (comctl32.ocx > mscomctl.ocx) ?
- Index(es):
Relevant Pages
|