/ Forside/ Teknologi / Udvikling / VB/Basic / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Oprette en popup menu.
Fra : foobar
Vist : 488 gange
150 point
Dato : 08-04-01 02:29

Hvordan kan jeg oprette en popup menu runtime i VB??

Jeg er igang med en source editor, og nu skal jeg have en popup menu til at poppe frem, når en bruger trykker punktum, mit problem er, at denne menu skal genereres "on the fly", for det er forskelligt hvad der skal stå i den, og det ved jeg kun på popup tidspunktet......

Med venlig hilsen

Foobar

 
 
Kommentar
Fra : Nyhedsbruger


Dato : 08-04-01 09:25

"foobar" <foobar.news@kandu.dk> wrote in message
news:9aob96$51h$1@sunsite.dk...
> Hvordan kan jeg oprette en popup menu runtime i VB??
>
Du kan gøre det at du laver et menupunkt som du gør Visible = false

Under dette punkt opretter du x antal subitems. Dem gør du også alle Visible
= false. Husk at de skal have samme navn. Men forskelligt index
(0,1,2,3,4,5....)

Når du så skal bruge din menu så ved du jo på forhånd hvad teksten på
punkterne skal være samt hvor mange du skal bruge. Du løber så en løkke
igennem med det antal du skal bruge og indsætter teksten samt gør Visible =
true.

Tilsidst åbner du menupunktet og vupti.... en "dynamisk" popup-menu.

Jeg bruger samme princip på mine "dynamiske" menuer da jeg endnu ikke har
fundet ud af hvordan man kan bruge API til at lave dem.


--
Niels Henriksen
Systemudvikler
Netopcom Danmark ApS
www.netopcomdanmark.dk





Kommentar
Fra : foobar


Dato : 08-04-01 10:26

Hej Niels,
Tak for dit svar, men jeg kan desværre ikke bruge det, for jeg løber igennem interfacet af en masse com objekter, og tager properties og metoder ud fra dem, hvorefter jeg vil opbygger min popupmenu ud fra dette, så jeg aner overhovedet ikke hvor mange og hvad for nogle items som skal med i min popupmenu, før programmet køres.

Foobar

"Niels Henriksen" skrev d. 08-04-01 09:25 dette indlæg :
> "foobar" <foobar.news@kandu.dk> wrote in message
> news:9aob96$51h$1@sunsite.dk...
> > Hvordan kan jeg oprette en popup menu runtime i VB??
> >
> Du kan gøre det at du laver et menupunkt som du gør Visible = false
>
> Under dette punkt opretter du x antal subitems. Dem gør du også alle Visible
> = false. Husk at de skal have samme navn. Men forskelligt index
> (0,1,2,3,4,5....)
>
> Når du så skal bruge din menu så ved du jo på forhånd hvad teksten på
> punkterne skal være samt hvor mange du skal bruge. Du løber så en løkke
> igennem med det antal du skal bruge og indsætter teksten samt gør Visible =
> true.
>
> Tilsidst åbner du menupunktet og vupti.... en "dynamisk" popup-menu.
>
> Jeg bruger samme princip på mine "dynamiske" menuer da jeg endnu ikke har
> fundet ud af hvordan man kan bruge API til at lave dem.
>
>
> --
> Niels Henriksen
> Systemudvikler
> Netopcom Danmark ApS
> www.netopcomdanmark.dk
>
>
>
>

Accepteret svar
Fra : AntonV

Modtaget 150 point
Dato : 08-04-01 22:19

Hej
Prøv med lidt API.
Opret en form med 2 textbokse (Text1 og Text2) + en label (Label1).
Indsæt følgende kode i formen:

'--SNIP

Const TPM_LEFTALIGN As Long = &H0&
Const MF_STRING As Long = &H0&

Private Declare Function CreatePopupMenu Lib "user32" () As Long
Private Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hWnd As Long, ByVal lprc As Any) As Long
Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Private Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As Long

Dim hMenu As Long

'Init form
Private Sub Form_Load()
Text1.Text = 0
Label1.Caption = "Angiv antallet af menupunkter."
Text2.Text = ""
End Sub

Private Sub DisplayPopup(x As Single, y As Single)
Dim i As Integer
'Start with destroying the menu
DestroyMenu hMenu
'Create it again. (Better to add and remove items)
hMenu = CreatePopupMenu()
'Add the number of items choosen
For i = 1 To Text1.Text
AppendMenu hMenu, MF_STRING, i, ByVal "Menu Item " & i
Next i
'Track the popup menu
TrackPopupMenu hMenu, TPM_LEFTALIGN, x, y, 0, Me.hWnd, ByVal 0&
End Sub

Private Sub Form_Unload(Cancel As Integer)
'Destroy menu
DestroyMenu hMenu
End Sub

Private Sub Text2_Change()
'When writing a "." Show popup
If Right(Text2.Text, 1) = "." Then
Call DisplayPopup(50, 50)
End If
End Sub

'--SNIP

Prøv det og se om der ikke kommer hvad du beder om.
Du fylder selv popup'pen i løkken i DisplayPopup.

mvh
Anton

Godkendelse af svar
Fra : foobar


Dato : 08-04-01 22:40

Du er genial Anton,

Det var lige det jeg skulle bruge, jeg har lagt 100 point oveni som tak for det perfekte svar.

Foobar
                        

Kommentar
Fra : Nyhedsbruger


Dato : 08-04-01 23:13

"foobar" <foobar.news@kandu.dk> wrote in message
news:9ap783$sl4$1@sunsite.dk...
> Hej Niels,
> Tak for dit svar, men jeg kan desværre ikke bruge det, for jeg løber
igennem interfacet af en masse com objekter, og tager properties og metoder
ud fra dem, hvorefter jeg vil opbygger min popupmenu ud fra dette, så jeg
aner overhovedet ikke hvor mange og hvad for nogle items som skal med i min
popupmenu, før programmet køres.
>
Jamen det er jo lige præcis det jeg gør.

Når programmet kører så kan man åbne og lukke menupunkterne uden problemer.
Man skla blot vide hvor mange punkter man skal bruge og hvad teksten skal
være på dem.


--
Niels Henriksen
Systemudvikler
Netopcom Danmark ApS
www.netopcomdanmark.dk



Kommentar
Fra : Nyhedsbruger


Dato : 09-04-01 09:58

Hej
Windows devolpers journal havde i november en artikel om hvordan man laver
popup menuer i VB med API kald, du kan finde det her.
http://www.wdj.com/articles/2000/0011/0011b/0011b.htm

Hilsen Michael


"foobar" <foobar.news@kandu.dk> skrev i en meddelelse
news:9ap783$sl4$1@sunsite.dk...
> Hej Niels,
> Tak for dit svar, men jeg kan desværre ikke bruge det, for jeg løber
igennem interfacet af en masse com objekter, og tager properties og metoder
ud fra dem, hvorefter jeg vil opbygger min popupmenu ud fra dette, så jeg
aner overhovedet ikke hvor mange og hvad for nogle items som skal med i min
popupmenu, før programmet køres.
>
> Foobar
>
> "Niels Henriksen" skrev d. 08-04-01 09:25 dette indlæg :
> > "foobar" <foobar.news@kandu.dk> wrote in message
> > news:9aob96$51h$1@sunsite.dk...
> > > Hvordan kan jeg oprette en popup menu runtime i VB??
> > >
> > Du kan gøre det at du laver et menupunkt som du gør Visible = false
> >
> > Under dette punkt opretter du x antal subitems. Dem gør du også alle
Visible
> > = false. Husk at de skal have samme navn. Men forskelligt index
> > (0,1,2,3,4,5....)
> >
> > Når du så skal bruge din menu så ved du jo på forhånd hvad teksten på
> > punkterne skal være samt hvor mange du skal bruge. Du løber så en løkke
> > igennem med det antal du skal bruge og indsætter teksten samt gør
Visible =
> > true.
> >
> > Tilsidst åbner du menupunktet og vupti.... en "dynamisk" popup-menu.
> >
> > Jeg bruger samme princip på mine "dynamiske" menuer da jeg endnu ikke
har
> > fundet ud af hvordan man kan bruge API til at lave dem.
> >
> >
> > --
> > Niels Henriksen
> > Systemudvikler
> > Netopcom Danmark ApS
> > www.netopcomdanmark.dk
> >
> >
> >
> >
>
>
> Leveret af:
> http://www.kandu.dk/
> "Vejen til en hurtig løsning"
>



Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177549
Tips : 31968
Nyheder : 719565
Indlæg : 6408820
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste