RuZleBIFf Skrevet 29. april 2005 Del Skrevet 29. april 2005 Heisann. Driver med en liten aplikasjon her! Og der har jeg planer om å ha med samme systemet som Notepad har hvis du viser Status Bar! Her vises koordinatene til musa, og den oppdateres såfort du flytter den bittelitt! Private Sub MenStatusBar_Click() Do Until MenStatusBar.Click = True GetCursorPos lpPoint Label1.Caption = "X: " & lpPoint.x & "Y: " & lpPoint.y Loop End Sub Over er kodesnutten jeg bruker, men denne funker selvsagt ikke siden .Click ikke "eksisterer". Derfor lurte jeg på om noen av dere har en måte jeg kan gjøre dette på? Vil altså at koordinatene til musa skal vises helt til man trykker på meny-knappen på nytt! Sindre Lenke til kommentar
Jonas Skrevet 29. april 2005 Del Skrevet 29. april 2005 Hva med å bare bruke en Timer? .Enabled = False når man trykker på knappen din. Lenke til kommentar
aadnk Skrevet 29. april 2005 Del Skrevet 29. april 2005 Ellers kan du jo alltids bruke en variabel deklarert utenfor prosedyren: ' Denne linjen må plasseres helt til topps i kodedelen Private bLoop As Boolean Private Sub MenStatusBar_Click() ' Endre boolean-verdien til det omvendte bLoop = Not bLoop Do While bLoop GetCursorPos lpPoint Label1.Caption = "X: " & lpPoint.x & "Y: " & lpPoint.y Loop End Sub Lenke til kommentar
RuZleBIFf Skrevet 29. april 2005 Forfatter Del Skrevet 29. april 2005 (endret) aadnk: da klikka programmet fullstendig! hehe Men hvorfor klikker programmet mitt her? Private Sub MenStatusBar_Click() Do Until MenStatusBar.Enabled = False GetCursorPos lpPoint Label1.Caption = "X: " & lpPoint.x & "Y: " & lpPoint.y Sleep 500 Loop End Sub Endret 29. april 2005 av RuZleBIFf Lenke til kommentar
Jonas Skrevet 29. april 2005 Del Skrevet 29. april 2005 Du må nok legge til Doevents og en Sleep for at det skal fungere. Lenke til kommentar
RuZleBIFf Skrevet 29. april 2005 Forfatter Del Skrevet 29. april 2005 doevents som vist over? eller hadde du noe annet i tankene? Lenke til kommentar
Jonas Skrevet 29. april 2005 Del Skrevet 29. april 2005 Doevents som i Doevents. Bare en vanlig kode: Private Sub MenStatusBar_Click() Do Until MenStatusBar.Enabled = False DoEvents GetCursorPos lpPoint Label1.Caption = "X: " & lpPoint.x & "Y: " & lpPoint.y Sleep 500 Loop End Sub Lenke til kommentar
RuZleBIFf Skrevet 30. april 2005 Forfatter Del Skrevet 30. april 2005 hehe.. funker fint nå! men nå har jeg da ett nytt problem! for jeg får den ikke til å gå ut av løkka! som i at jeg vil at den skal skrive Label1.Caption = "" når jeg trykker på meny-knappen en gang til! prøvde å legge inn en teller, men siden jeg har Do Until MenStatusBar.Enabled = False så går den aldri ut av løkka! (uansett om jeg trykker på MenStatusBar til jeg ser mannen med jå'n! Lenke til kommentar
aadnk Skrevet 30. april 2005 Del Skrevet 30. april 2005 så går den aldri ut av løkka! (uansett om jeg trykker på MenStatusBar til jeg ser mannen med jå'n! Dersom MenStatusBars Enable-egenskap er satt til False, kan du heller ikke klikke på kontrollen. Derfor bør du aller helst benytte en variabel, som vist i koden i mitt innlegg ovenfor. I tillegg vil jeg ikke anbefale å vente i større intervaller enn 10-100 millisekunder når du benytter Sleep i en pågående løkke. Går en høyere enn dette, kan programmet, især for brukeren, ha en nokså lang reponstid. En løsning på dette, er å anvende en FOR-løkke som følger: Dim Tell As Long For Tell = 1 To 50 DoEvents Sleep 10 Next Lenke til kommentar
Jonas Skrevet 30. april 2005 Del Skrevet 30. april 2005 RuZleBIFf, nå har du nok blandet min og aadnk sin løsning Du må legge til en global variabel i toppen av dokumentet ditt: Private bLoop As Boolean Så skriver du: Do Until bLoop = True For å få loopen til å stoppe skriver du bare "bLoop = True". Lenke til kommentar
RuZleBIFf Skrevet 30. april 2005 Forfatter Del Skrevet 30. april 2005 OK!! Tusen takk! nå er jeg på riktig vei i allefall! Private Sub MenAbout_Click() bLoop = False Do Until bLoop = True DoEvents GetCursorPos lpPoint Label1.Caption = "X: " & lpPoint.x & "Y: " & lpPoint.y Sleep 10 Loop End Sub Private Sub MenStatusBar_Click() bLoop = True End Sub Jeg bruker (som dere ser) bare en annen knapp for å vise koordinatene, og dette funker jo helt flott! Men hvordan kan jeg få dette under samme knapp? Må kanskje ha en teller da!? som teller til 2! og når den er på 1 så vises koordinatene, og når den er på 2 så vises de ikke! Eller finnes det en mye lettere måte å gjøre dette på? Tusen takk for all hjelp i allefall! For nå funker det! Lenke til kommentar
Jonas Skrevet 30. april 2005 Del Skrevet 30. april 2005 Nå henger jeg ikke helt med.. Jeg skjønner ikke helt hvilken annen ting du gjøre samtidig. Jeg har heller ikke noe kardinator på status-baren i NotePad. Kan du forklare litt mer? Lenke til kommentar
RuZleBIFf Skrevet 30. april 2005 Forfatter Del Skrevet 30. april 2005 Nei.. mente i paint! Jeg vil at når jeg starter programmet så skal label1 være blank! (og det er den nå) Når jeg trykker på MenStatusBar så skal koordinatene til musa vises på label1 Når jeg trykker på MenStatusBar en gang til så skal label1 bli blank Når jeg trykker enda en gang skal koordinatene vises i label1 Osv. håper dette ga ett bedre bilde på hva jeg er ute etter! Lenke til kommentar
GeirGrusom Skrevet 30. april 2005 Del Skrevet 30. april 2005 Du burde legge det i en timer som du evt. enabler. Du trenger ikke si Do Until bLoop = True, dette er smør på flesk, da en Do Until sjekker om det som står etter blir true eller false, derfor vil koden din se slik ut for datamaskinen compare bLoop, 1 compare (result), 1 jump if Lenke til kommentar
Jonas Skrevet 30. april 2005 Del Skrevet 30. april 2005 (endret) RuZleBIFf, da skjønner jeg greia. En timer, som Geir sier, blir nok best. Men å vise vanlige musekordinater er jo .. på tryne, mildt sagt. (Hvis jeg har forstått deg rett) Man er jo ute etter å vise kordinater i forhold til "tegne-bildet". Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.Caption = X & " " & Y End Sub Edit: Så kan du jo slenge på en IF-setning, slik at man kan enable og disable funksjonen. Endret 30. april 2005 av Jonas Lenke til kommentar
RuZleBIFf Skrevet 30. april 2005 Forfatter Del Skrevet 30. april 2005 men jeg har ikke noe tegne-bilde! jeg vil bare vise dem for morro-skyld! hehe fritids-problemer? nei det har vi ik-ikke sett! Så kan du jo slenge på en IF-setning, slik at man kan enable og disable funksjonen. er det jeg har planer om, ja! så jeg får nok knotte litt! Lenke til kommentar
Jonas Skrevet 30. april 2005 Del Skrevet 30. april 2005 Jaok. Legg til en Timer, og denne koden: Private Sub Timer1_Timer() GetCursorPos lpPoint Label1.Caption = "X: " & lpPoint.x & "Y: " & lpPoint.y End Sub For å stoppe/starte timeren: Private Sub MenStatusBar_Click() Timer1.Enabled = Not Timer1.Enabled End Sub Så kan du jo velge selv hvor stort interval du vil ha, osv. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå