Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


uppdatering av textruta

Postades av 2005-03-12 13:33:04 - Jonas Nilsson, i forum visual basic - allmänt, Tråden har 11 Kommentarer och lästs av 650 personer

Hej

Ett kanske enkelt problem som jag inte kan lösa:
hur uppdaterar man en textruta frekvent? Dvs Jag använder koden nedan och vill se hur många varv loopen har körts. (den tar lååång tid så det är intressant)

den skriver bara ut, dvs uppdaterar så att jag ser det, ibland. Serien kan bli 1 56 149 osv.
Jag vill att den visar åtminstone varje sekund. Rör jag musen uppdateras det hela tiden.

Kan man göra detta med någon timer funktion eller något liknande.

<code>
do
..
text1.text = i
..
..
loop while i < 10 000
</code>

\jonas


Svara

Sv: uppdatering av textruta

Postades av 2005-03-12 17:23:06 - Pelle Johansson

i loopen lägger du in kommandot DoEvents. Det gör att operativsystemet får några millisekunder över att uppdatera skärmen. Räcker inte det kan du även skriva textbox1.refresh - men det skall inte behövas.


Svara

Sv:uppdatering av textruta

Postades av 2005-03-14 09:01:05 - Heinz Svedling

Eller prova det här.

do
..
text1.text = i
text1.Refresh
..
loop while i < 10 000


Svara

Sv: uppdatering av textruta

Postades av 2005-03-14 10:25:10 - Jonas Nilsson

ok, tackar DoEvent funkar.
Vet någon hur ett sådant kommando påverkar prestandan. Det borde ju rimligt innebära att körningen tar ännu längre tid. Eller?

\jonas


Svara

Sv:uppdatering av textruta

Postades av 2005-03-16 13:28:33 - Benny Olsson

Prestandan påverkas självklart väldigt negativt. om du vill ta reda på exakt hur mycket så kan du ju använda anropet getTickCount innan körningen och sen igen efter körningen. på det sättet kan du se hur många millisekunder körningen tagit, och därigenom ta reda på hur prestandan påverkas av att du använder DoEvents()..


B


Svara

Sv: uppdatering av textruta

Postades av 2005-03-16 13:47:14 - Sven Åke Persson

Skulle vara intressant om du ville göra en studie på detta ex.

<code>
Option Explicit
Private Declare Sub Sleep Lib "kernel32" _
(ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
Dim i As Long
Do Until i >= 10000
i = i + 1
If i Mod 100 = 0 Then
Text1.Text = i
DoEvents
Sleep (200) '0.2 sek
End If
Loop
End Sub
</code>


Svara

Sv:uppdatering av textruta

Postades av 2005-03-16 14:46:20 - Johan Djupmarker

Självklart tar det längre tid, DoEvents låter operativsystemet utföra kommandon som köats... En kompromiss kan vara att köra DoEvents var hundrade eller tusende varv:

do
..
text1.text = i
if i mod 1000 = 0 then
  DoEvents
End if
..
..
loop while i < 10 000


/Johan


Svara

Sv: uppdatering av textruta

Postades av 2005-03-16 22:40:13 - Sven Åke Persson

Det är ju ett konstigt problem.Varför skall man uppdatera Text1.Text
när man ändå inte hinner se ändringarna.
Tex. 10000 körningar med DoEvents går så snabbt att det bara blir en läsning.
Min lösning med Sleep(200) är väl en rimlig lösning på problemet.


Svara

Sv:uppdatering av textruta

Postades av 2005-03-16 22:47:06 - Sven Åke Persson

Ett tips som inte riktigt har med detta att göra men väl
när man vill snabba upp loopar men ändå ha med ett DoEvents.

[DoEvents i Loop:ar]


Svara

Sv:uppdatering av textruta

Postades av 2005-03-17 07:50:37 - Johan Djupmarker

Sven, varför ska du ha med sleep? Det tar ju bara längre tid... Din lösning utan sleep borde vara den optimala...

/Johan


Svara

Sv: uppdatering av textruta

Postades av 2005-03-17 09:55:01 - Sven Åke Persson

Anledning till att han har Text1.Text i loopen är att han vill se hur
loopen utvecklas.När jag kör utan Sleep så går det så snabbt så man
ser bara ett resultat nämnligen 10 000 då är vitsen med att ha Text1
med i loopen borta.Iofs är hela lösningen med en TextBox i loopen
inte bra,vill man se utvecklingen är en ProgressBar bättre.

Men Ok Vi ser inte hela hans kod i loopen,det finns kanske en trög
broms i slingan då skall han givetvis inte ha med Sleep.

Synd att han inte har vett att svara hur det gick sedan !


Svara

Sv:uppdatering av textruta

Postades av 2005-03-18 13:12:00 - Jonas Nilsson

Hej

Nu är det inte så att jag inte har vett att svara utan inte hjunnit med utan sysslat med annat några dagar.

Eftersom Åke inte förstod problemet riktigt så kommer ett klargörande:
Inuti loopen hämtas ett antal celler ur olika excel-ark och datan bearbetas. Jag skriver ut vilken rad som bearbetas eftesom jag framför allt vill se att körningen går frammåt och inte har hängt sig. Varje varv i loopen tar ca 0.3 sekunder.

Med doEvents så skrivs radnummer i den takt att man hinner läsa stigande nummer ungefär som en snabbt tickande klocka.

Jag har gjort en körning på 1500 rader (tar ca 3-4 min) och ser ingen större skillnad med DoEvents. Därför har jag inte testat någon annan variant.

\jonas


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 721
27 958
271 751
5 866
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies