Avatar billede kjeld_klit Nybegynder
06. juli 2002 - 09:54 Der er 11 kommentarer og
1 løsning

Bevægelse med Timer

Jeg har en Label1 som kommer ind fra højre og køre ud på venstre side min SplashScreen, en slags rulletekst.

Jeg bruger Timer1.Interval = 10 til at flytte Label1.Left i ryk af "10". Det ser pænt nok ud men teksten er tilbøjelig til at blinke og er også noget afhængig af skærmopløsningen.

Mit spørgsmål er om der er en anden (bedre) måde at lave dette på?

Maskinen er i øvrigt en PIII 800 med 32 mb grafikkort. Hvis det ikke er nok burde det vel laves på en mindre maskinkrævende måde.

\kjeld
Avatar billede tjacob Juniormester
06. juli 2002 - 11:14 #1
Det er ikke fordi det er for maskinkrævende. Jeg har haft samme problem (med stationære labels), og jeg tror det er en bug i VB. Det er tilsyneladende kun labels der har dette problem.
Jeg kan se  i hvert fald to løsninger for dig:

1.) Anvend en textbox i stedet for label.

2.) Skip kontrollen helt, og skriv direkte på formen i stedet for.
    (sæt Form.CurrentX og -Y i timeren, og skriv med Form.Print "tekst").

/tjacob
Avatar billede kjeld_klit Nybegynder
06. juli 2002 - 11:38 #2
Bare du ikke har ret tjacob, men tilsyneladende er det rigtigt ;-)

Jeg prøvede at bruge en tekstboks og det er rigtigt, den kører rigtig nydeligt. Det er bare det ved det at det er et billede den kører hen over, derfor brugte jeg en label med tranparent baggrund.

Dit 2. forslag kan måske bruges. Men der er knyttet en Click.Event til Label1 (Label1_MouseDown(...); Text1.Appearance = 1; Unload Me)

Det kunne jeg evt. flyttet til selve billedet. Men hvordan bruger man metoden du beskriver - jeg har aldrig prøvet det ;-)

kjeld
Avatar billede tjacob Juniormester
06. juli 2002 - 11:45 #3
Først angiver du HVOR på formen der skal skrives. Det gøres med:

Form.CurrentX = 100
Form.CurrentY = 100
-Tallene afhænger selvfølgelig af Scalemode.

Derefter kan du sætte farve og font osv for formen.

Så skriver du med: Form.Print "Kurt"

-Dette vil skive "Kurt" i 100,100 på formen.

/tjacob
Avatar billede kjeld_klit Nybegynder
06. juli 2002 - 11:58 #4
Hvordan undgår jeg at det bliver til én lang streg når jeg flytter CurrentX med Timeren.

Jeg prøvede Me.Refresh med ind i Timeren men så kommer der ingen tekst.

kjeld
Avatar billede kjeld_klit Nybegynder
06. juli 2002 - 11:59 #5
Hov undskyld det var ikke meningen at jeg ville afvise dit svar tjacob, kan du ikke markere det som svar igen?

kjeld
Avatar billede tjacob Juniormester
06. juli 2002 - 13:08 #6
Det bliver en lang streng, fordi det du har skrevet skal slettes før du skriver igen. Hvis du ikke har skrevet (eller tegnet) andet på formen kan du bruge cls:

Form.Cls
Form.Print "Kurt"

Hvis du har andet på formen er det lidt mere kompliceret. Så kunne man f.eks. skrive det samme igen det samme sted, men i formens Backcolor.
Dette ville også "slette" det.

/tjacob
Avatar billede kjeld_klit Nybegynder
06. juli 2002 - 13:27 #7
Teksten bliver skrevet oven på et billede, så billedet skal gentegnes, det virker også med Refresh (når jeg placerer den rigtig) men så bliver billedet og teksten ustabil igen som på label. Kan man nøjes med at gentegne en del af billedet på en eller anden måde?

Ellers er jeg ved at indtille mig på at bruge dit første forslag med textbox istedet. Her er jeg dog irriteret på at cursoren står og blinker i textboxen. Kan den gøres usynlig?
Avatar billede tjacob Juniormester
06. juli 2002 - 13:43 #8
kjeld>> Jeg er nødt til at flytte til en maskine uden internetadgang i en halv times tid, men jeg vil stadig arbejde på en løsning.
-Vender tilbage omkring 14.15

/tjacob
Avatar billede tjacob Juniormester
06. juli 2002 - 14:35 #9
Så er jeg tilbage.
Du kan fjerne cursoren ved at sætte textboxens property Locked til True.

Prøv at se her:
http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=23089&lngWId=1

-Der kan du se hvordan man kan lave en textbox transparent med et par API-kald.

/tjacob
Avatar billede kjeld_klit Nybegynder
06. juli 2002 - 15:01 #10
Bortset fra at cursoren er der selv om textbox er Locked
Avatar billede tjacob Juniormester
06. juli 2002 - 15:30 #11
Prøv at sætte textboxens TabStop til False
Avatar billede kjeld_klit Nybegynder
06. juli 2002 - 15:34 #12
Det har jeg prøvet uden held. Forklaringen er nok at der ikke er nogen kontroller på formen der kan modtage fokus (kun et billede og så min "rulletekst")
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester