Focus vraagje? (VB)

Status
Niet open voor verdere reacties.
Moest gisteravond weg, dus helaas geen tijd gehad; ik hoop dat ik vandaag meer geluk heb.

De sub LostFocus heb ik in mijn code geplaatst, maar die voert weinig uit.
Als het bij jou wel iets doet, dan is dat wel ty***ch aangezien je dezelfde code hebt.
Kun je jouw code compileren en de .EXE file ingepakt hier aanbieden?
Dan check ik het bij mij; werkt het dan het hele project inpakken en toesturen.

Mits mogelijk natuurlijk.


groet,
Dave.
 
Onbegrijpelijk, maar het werkt niet.
Het leek mij heel logisch om naar de KeyAscii te kijken, maar ik ben bang dat voordat de Tab-toets in de buffer van KeyAscii komt al verwerkt wordt door naar het volgende textveld te gaan.

De sub txt_System.Changed doet, net als LostFocus helemaal niets.

Kan het zijn dat er iets ingesteld moet worden in het object txt_System?
 
Maar Dennis, heb je een test programmaatje gemaakt waarin dit wel lukt dan?

Als je die hier neer zet, krijg ik misschien wel weer wilde ID-en!



groet,
Dave.
 
Excuus zo laat.

Hierbij doe ik jou het gecompileerde programma toekomen.
Je bent de maker v.h. programma, dus weet je ook dat txt_System
synoniem moet zijn aan je computernaam, want anders wordt er een
foutmelding gegenereerd. Dit moet je nog ondervangen.

Als het programma werkt, dan hoef ik niet eens het hele project naar je toe
te sturen. Je kunt mij gewoon laten zien wat je precies bij LostFocus
hebt ingetypt. Dus een exacte copie laten zien.

Groetjes.
 

Bijlagen

Laatst bewerkt:
!!!!!

Onbegrijpelijk, maar de tab toets werkt nu prima, maar de Enter doet niets.
Bijzaak: de tab doet in ieder geval datgene wat ik wilde.

Tja, nu wil ik toch graag de code zien die erbij hoort, ondanks dat ikhet zelf al zou moeten hebben.

Ligt het misschien aan de versie van VB?
Ik werk met versie 6.0
 
Werk zelf ook met VB6.

Ik werk ook met VB6, dus daar zal het niet aangelegen hebben.

Hierbij nogmaals de code voor LostFocus en KeyPress. Je moet
ze allebei gebruiken natuurlijk. Met andere woorden, txt_System
heeft 2 events. Eén voor het gebruik v.d. de Tab-toets (LostFocus
event) en één voor het gebruik v.d. Enter-toets (KeyPress event).

Dat ik nu de code enigszins gewijzigd heb is NIET om de Tab- en Enter-toets
goed te laten functioneren. De vorige listings deden dat al.
Dit is een bijzaak. Had je ook kunnen doen.

De wijziging is bij elke listing onderaan te zien. Te beginnen bij
"If txt_Title.Visible = True Then enz....."
Dit komt doordat je 2 omgevingen hebt. Zit je bijvoorbeeld
in "Standard environment", dan is de zichtbaarheid van txt_Title
False, dan moet txt_MB maar de focus krijgen. Maar dit moet je
zelf bepalen.

GetObject werkt alleen als je je computernaam in txt_System intypt.
Anders wordt er een foutmelding gegenereerd, je zou dit dus moeten
ondervangen. Ik weet, dat je dit ook weet, maar zeg het even voor
de zekerheid.

Lostfocus:

Code:
Private Sub txt_System_LostFocus()
   Dim Memory As Integer
   Dim Inp As String

   Inp = txt_System.Text
   Set LoginProfiles = GetObject("winmgmts:\\" & Inp).InstancesOf("CIM_PhysicalMemory")
   For Each Profile In LoginProfiles
      Memory = CInt(Profile.Capacity / 1024 / 1024)
      Mem = Mem + Memory
      Next
   If Mem > 0 Then
     txt_MB.Text = Mem
   End If
   If txt_Title.Visible = True Then
      txt_Title.SetFocus
      Else
      txt_MB.SetFocus
   End If
End Sub


KeyPress:

Code:
Private Sub txt_System_KeyPress(KeyAscii As Integer)
  If (KeyAscii = 13) Then
     Dim Memory As Integer
     Dim Inp As String

     Inp = txt_System.Text
     Set LoginProfiles = GetObject("winmgmts:\\" & Inp).InstancesOf("CIM_PhysicalMemory")
     For Each Profile In LoginProfiles
        Memory = CInt(Profile.Capacity / 1024 / 1024)
        Mem = Mem + Memory
     Next
     If Mem > 0 Then
        txt_MB.Text = Mem
     End If
     If txt_Title.Visible = True Then
        txt_Title.SetFocus
        Else
        txt_MB.SetFocus
     End If
  End If
End Sub

Mvg.
 
Ben er even weer.

Je code in Form_Load() om het geheugen te berekenen kun je
gewoon weglaten. Je gebruikte het waarschijnlijk om te testen
net als de Test knop.

In Form_Load() kun je bijvoorbeeld txt_System een naam
toekennen die gelijk is aan je computernaam.

Dus, txt_Sytem = "Je computernaam"

Na het runnen v.h. programma hoef je dan alleen op de Tab-toets
en/of op de Enter-toets te drukken.

Wordt het programma op een andere computer gerund, dan verander
je gewoon de naam.
 
Zoals je kunt zien maakt het programma een behoorlijke code, genaamd een environment.
Deze code word gebruikt in SightLine, een programma om gegevens van servers uit te lezen zoals proccesor gebruik, beschikbaar geheugen, Disk I/O's, etc.
Om 1 grafiek te krijgen met data moet ik behoorlijk wat handelingen doen.
We maken grafieken voor de dag, week & maand.
Per tijdseenheid maken we standaard 5 grafieken.
Dit betekend voor elke server die we hebben, dat ik 15 grafieken moet maken.
We hebben zo'n 350 servers, dus dat ben ik niet van plan.

Met dit programma hoef ik alleen de servernaam in te typen om de grafieken te krijgen (de code moet ik dan nog implementeren in SightLine, maar dat is zo gebeurt).
Helaas is het wel zo dat elke server weer een ander getal aan intern geheugen heeft, en de waarde van het interne geheugen is ook de hoogste waarde van de grafiek (dus bepaald de schaalverdeling van de grafiek).
Daarom moet ik een textveld Memory hebben.
Als deze dus automatisch ingevuld wordt, dan scheelt me dat een boel gezoek door serverdocumentatie.

Het zou dus mooi zijn als de formule op elke server werkt, maar dat is niet zo.
Alleen de PC's waar je een connectie mee hebt zijn te bepalen.

Dus het wordt niet alleen mijn eigen PC naam (sterker, die hoeft niet eens :) ).

Ik zal straks de code implementeren.

groet,
Dave.
 
Dennis, je hebt me gewelig geholpen.
Het werkt nu fantastisch.
Zowel met de tab toets als met de Enter toets.
Mijn programma wordt er steeds beter op.
Straks nog mooier maken en dan is het helemaal feest.

Als het programma straks af is, dan zal ik je naam ik de about box plaatsen!


Bedankt!


groet,
Dave.
 
You're welcome.

Hallo Dave,

"geweldig geholpen". Nou, gaat wel hoor. In ieder geval bedankt.
Ik vind je programma tot dusver best al mooi. Weliswaar heb ik de algehele
code niet voor de volle 100% bestudeerd. Heb alleen geconcentreerd op de vraag
die je mij stelde en dat was m.i. niet zo erg moeilijk.

Ik voel mij gevlijd, plaats svp alleen de naam v.d. maker v.h. programma
(dat ben jij dus) in de About box. Anyway thanks.

Groet,

Dennis.

P.S. Nog bedankt voor de uitleg wat je programma beoogt te doen. Wil even
iets kwijt: Ben zelf niet de Haarlemmerolie voor alle VB problemen. Ben nog
lang geen VB Guru.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan