He tweakers. Ik ben in VB met een programma begonnen, maar omdat hier heel veel dezelfde voorwerpen in moesten komen dacht ik, laat ik maar eens usercontrols proberen, nou, na 5 minuten proberen had ik het wel door, maar nu heb ik een paar probleempjes. Ik moest dus ook een soort van button maken, want ik vond die grijze standaardbuttons te lelijk, dus ik een usercontrol maken met een shape en een label erin en wat script erom heen en naar een DLL gecompiled, maar ik wil nu die caption van de label aanpassen, maar hoe moet dat? Is het ook mogelijk om die caption van de label te koppelen aan een van de properties van de User Control zelf? Alvast bedankt, Ed.
Verwijderd
Daar is een prachtige wizard voor
. Klik op Add... -> Usercontrol -> Selecteer de usercontrol wizard (of iets wat daarop lijkt) en selecteer nu kan je via deze eenvoudige wizard dit zo oplossen.
PS Je kan natuurlijk ook zo'n mooie button van www.pscode.com downloaden, maar echte bikkels vinden het wiel rustig twee keer uit
PS Je kan natuurlijk ook zo'n mooie button van www.pscode.com downloaden, maar echte bikkels vinden het wiel rustig twee keer uit
Wat de usercontrol wizard doet kun je ook zelf doen. Het meeste van wat hij doet is properties koppelen.
Om bijvoorbeeld de caption property van een label te koppelen aan de Caption property van je usercontrol doe je dit:
hier staat een voorbeeldje van een eenvoudige VB6 usercontrol, deels gemaakt met de Usercontrol Wizard.
Om bijvoorbeeld de caption property van een label te koppelen aan de Caption property van je usercontrol doe je dit:
code:
1
2
3
4
5
6
| Public Property Let Caption(NewCaption as String) Label1.Caption = NewCaption End Property Public Property Get Caption() As String Caption = Label1.Caption End Property |
hier staat een voorbeeldje van een eenvoudige VB6 usercontrol, deels gemaakt met de Usercontrol Wizard.
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Thx, maar nu nog een probleempje, als ik dus die waarde intik in de properties en ik start het programma, is het ok, maar als ik dan het programma weer sluit is de waarde weer weg.
Hoe kan ik dat fixen?
Verwijderd
Je moet een aantal events gebruiken:
Dit is een stukje van een van mijn usercontrols, maar hier moet je wel wat mee kunnen lijkt me
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| 'Initialize Properties for User Control
Private Sub UserControl_InitProperties()
m_Description = m_def_Description
m_ShowSearchButton = m_def_ShowSearchButton
m_ShowSaveButton = m_def_ShowSaveButton
m_ShowExpandButton = m_def_ShowExpandButton
m_ShowCollapseButton = m_def_ShowCollapseButton
m_ShowButtonDescriptions = m_def_ShowButtonDescriptions
End Sub
'Load property values from storage
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
m_Description = PropBag.ReadProperty("Description", m_def_Description)
Description = m_Description
tbrMain.BackColor = PropBag.ReadProperty("BackColor", &H8000000F)
tbrMain.ForeColor = PropBag.ReadProperty("ForeColor", &H80000012)
tbrMain.Enabled = PropBag.ReadProperty("Enabled", True)
m_ShowSearchButton = PropBag.ReadProperty("ShowSearchButton", m_def_ShowSearchButton)
ShowSearchButton = m_ShowSearchButton
m_ShowSaveButton = PropBag.ReadProperty("ShowSaveButton", m_def_ShowSaveButton)
ShowSaveButton = m_ShowSaveButton
m_ShowExpandButton = PropBag.ReadProperty("ShowExpandButton", m_def_ShowExpandButton)
ShowExpandButton = m_ShowExpandButton
m_ShowCollapseButton = PropBag.ReadProperty("ShowCollapseButton", m_def_ShowCollapseButton)
ShowCollapseButton = m_ShowCollapseButton
m_ShowButtonDescriptions = PropBag.ReadProperty("ShowButtonDescriptions", m_def_ShowButtonDescriptions)
ShowButtonDescriptions = m_ShowButtonDescriptions
End Sub
'Write property values to storage
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("Description", m_Description, m_def_Description)
Call PropBag.WriteProperty("BackColor", tbrMain.BackColor, &H8000000F)
Call PropBag.WriteProperty("ForeColor", tbrMain.ForeColor, &H80000012)
Call PropBag.WriteProperty("Enabled", tbrMain.Enabled, True)
Call PropBag.WriteProperty("ShowSearchButton", m_ShowSearchButton, m_def_ShowSearchButton)
Call PropBag.WriteProperty("ShowSaveButton", m_ShowSaveButton, m_def_ShowSaveButton)
Call PropBag.WriteProperty("ShowExpandButton", m_ShowExpandButton, m_def_ShowExpandButton)
Call PropBag.WriteProperty("ShowCollapseButton", m_ShowCollapseButton, m_def_ShowCollapseButton)
Call PropBag.WriteProperty("ShowButtonDescriptions", m_ShowButtonDescriptions, m_def_ShowButtonDescriptions)
End Sub |
Dit is een stukje van een van mijn usercontrols, maar hier moet je wel wat mee kunnen lijkt me
Zoals in de post hierboven ook al gezegd is, je moet je properties opslaan. In mijn usercontrol voorbeeld zitten maar een paar properties die is wellicht wat simpeler te begrijpenOp maandag 13 mei 2002 18:46 schreef BasjeBanaantje het volgende:
Thx, maar nu nog een probleempje, als ik dus die waarde intik in de properties en ik start het programma, is het ok, maar als ik dan het programma weer sluit is de waarde weer weg.Hoe kan ik dat fixen?
In MSDN staat ook een uitstekend artikel over het schrijven van usercontrols en welke events je moet gebruiken enzo. Ik zoek het even op.
[edit]
Opgezocht: Creating an ActiveX Control
Dan moet je vooral even naar "Life and Times of a UserControl Object" kijken voor uitleg over de verschillende events.
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Ik dacht dat in VB5 er ook al een control interface wizard was?
Check je Add-ins menu (en dan je Add-in manager).
Je kan idd zoals hierboven al staat het prima zonder doen, alleen als je een standaard control uitbreidt, of een eigen control maar met properties en methods die ook in standaard controls zitten, zit je je helemaal suf te typen
Een paar klikjes in de wizard is dan wel makkelijker
(maar ja dan moet die wizard er wel bij zitten, misschien ben ik wel in de war
VB5 is alweer zo lang geleden
)
Check je Add-ins menu (en dan je Add-in manager).
Je kan idd zoals hierboven al staat het prima zonder doen, alleen als je een standaard control uitbreidt, of een eigen control maar met properties en methods die ook in standaard controls zitten, zit je je helemaal suf te typen
Exact expert nodig?
Op maandag 13 mei 2002 20:15 schreef BasjeBanaantje het volgende:
Hey, allemaal kei toppie wat jullie hebben uitgelegd, nu nog een vraagje (sorry...). Ik weet nu hoe ik een property ofzow moet maken met een invoerveld (Public Property Get Value() As String). Hoe kan je een True en False ding en een list met opties maken?
1. Na een kwartiertje kicken met zo'n norse opmerking helpt je niet echtOp maandag 13 mei 2002 20:31 schreef BasjeBanaantje het volgende:
Niemand???
2. Als je je property gewoon Boolean maakt (Public Property Get Blaat() As Boolean en Public Property Let Blaat(newValue As Boolean) ) dan zal er een True/False combo verschijnen in het properties venstertje in de VB IDE
Een list met opties maak je met een enum. Ik geloof dat als je een public enum maakt, je ook een combo krijgt in het properties venstertje met die waarden erin.
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
Verwijderd
Op maandag 13 mei 2002 20:31 schreef BasjeBanaantje het volgende:
Niemand???
Verwijderd
Wees blij! Zoiets wil je niet! Denk eens na: je gebruikt een componentje, en de programmeur is zo aardig geweest om al jouw forms te unloaden... bedankt... dus dat gaat hopelijk niet lukken.Op maandag 13 mei 2002 20:59 schreef BasjeBanaantje het volgende:
Ow gvd, weer een vraag. Sorry, echt de laatste. Ik heb dus nu een usercontrol gemaakt, en ik wil in het script daarvan ergens Unload Me zetten, dus dat hij de form unload waar hij dan in werkt, maar dat magie niet volgens VBWeet iemand hoe je dit toch kan oplossen?
Om zoiets te maken geef je een event (UnloadOwner ofzo?) aan je control en fire je die event. In de form vang je die event op en roep je unload me.Op maandag 13 mei 2002 21:01 schreef KoenM het volgende:
Wees blij! Zoiets wil je niet! Denk eens na: je gebruikt een componentje, en de programmeur is zo aardig geweest om al jouw forms te unloaden... bedankt... dus dat gaat hopelijk niet lukken.
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Pagina: 1