Permalänk
Medlem

Grafiskt krux i VB

Hej!

Finns det någon här som vet hur man blir av med det fruktansvärt fula och irriterande grafiska felet som finns på den bifogade bilden.

DVS man ser när applikationen ritar upp kontrollerna samtidigt som man ser den "gamla sidan"

Jag har testat att både skriva koden i button_click och i form_activate, fast samma krux båda gånger.

koden ser ut ungefär såhär

sql sats hämtar datan som ska visas

while blabalbla

rita upp kontroller

wend

form2.show

dvs även om jag inte har sagt åt applikationen att visa form2 innan allt e klart så gör den det!!

Problemet är även att applikationen körs på ett fruktansvärt slött nätverk (databasen där datan hämtas ligger på en annan dator), vilket ju gör att fördröjningarna blir ännu längre.

Hoppas någon har en bra lösning, för det måste ju finnas!!??

Tack på förhand

Pjoter

Visa signatur

Kan det jävlas så jävlas det!

Permalänk
Hedersmedlem

vad bra man såg felet på bilden då!

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av m0REc
vad bra man såg felet på bilden då!

Som du nog ser så ligger flera kontroller på varandra, dom nya kontrollerna ligger som ett
nät över det gamla, det e kruxet!!

Bilden e tagen med en skärmdump som du nog fattar.....

Och det går inte att lägga ut större bilder på forumet, därför är den så liten...

Visa signatur

Kan det jävlas så jävlas det!

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av m0REc
vad bra man såg felet på bilden då!

Du måste titta på den med 3d-glasögon för att se!

Visa signatur
Permalänk
Hedersmedlem

hehe

Pjoter: lägg upp bilden här istället: http://upl.silentwhisper.net

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem
Visa signatur

Kan det jävlas så jävlas det!

Permalänk
Medlem

Form.Autoredraw = True

Det kan fungera, går inte att sätta vid runtime utan måste ställas in innan.

Permalänk
Medlem

testa detta:

sql sats hämtar datan som ska visas while blabalbla rita upp kontroller wend Text1.Text = "done" If Text1.Text = "done" Then form2.show Else End If

liten fuling, men det kan hjälpa ^^

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Don_Tomaso
Form.Autoredraw = True

Det kan fungera, går inte att sätta vid runtime utan måste ställas in innan.

Japp.. testa det. Ser ut att vara ett sådant fel.

Visa signatur

tack o bock

Permalänk

DoEvents kan uträtta mirakel i VB... Typ om du målar upp ett formulär och hämtar data rån en databas eller från andra kontroller som tar lite tid får VB hicka och då kan en DoEvents släppa lite CPU till andra trådar som också snurrar...

Eller som jag gärna gör; "Hellre en DoEvents för mycket än en för lite..."

/Anders

Visa signatur

**************************
Om det fungerar för bra, installera om det...

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av formatckolon
"Hellre en DoEvents för mycket än en för lite..."

Jag antar att DoEvents är VBs motsvarighet till Delphis ProcessMessages. Om så är fallet, så ska man inte snåla med det.

Personligen lägger jag det i varje loop som tar längre än ca 0.5 sekunder att utföra. Det ger ökad smidighet åt programmet, och man slipper grafikbuggar iom att fönstret inte "re-drawas".

Visa signatur
Permalänk
Citat:

Ursprungligen inskrivet av s.c.s.i.

Jag antar att DoEvents är VBs motsvarighet till Delphis ProcessMessages...

Jepp, stämmer...

/Anders

Visa signatur

**************************
Om det fungerar för bra, installera om det...