[VB6] ProgressBar Andersom

Pagina: 1
Acties:

  • Spike_wolf
  • Registratie: Maart 2003
  • Laatst online: 23-05 15:25

Spike_wolf

Genius Or Madman?.. You Decide

Topicstarter
Hey,

Okay zoals de titel zegt: Ik heb een stel Progressbars die ik als VU metertjes gebruik, maar k wil graag dat ze de andere kant op uitslaan dan ze normaal doen :P is dit mogenlijk en hoe?

edit:
K heb al gezocht op Google en op GoT maar hier niks over kunnen vinden :'(

[ Voor 20% gewijzigd door Spike_wolf op 26-08-2004 14:51 ]

Wat doet Ctrl+W ook alweer?
Humankind… be both.
Star Wars Awakens | Instagram


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Je stuurt ze aan door een waarde te veranderen, kun je dan niet die waarde veranderen met maxwaarde - waarde? Dus als ze van 0 naar 100 gaan kun je ipv 30 door te sturen 100-30 doorsturen.

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

Of bedoel je dat ie vanaf rechts moet vollopen?

  • Spike_wolf
  • Registratie: Maart 2003
  • Laatst online: 23-05 15:25

Spike_wolf

Genius Or Madman?.. You Decide

Topicstarter
GX schreef op 26 augustus 2004 @ 15:08:
Of bedoel je dat ie vanaf rechts moet vollopen?
ja hij moet van rechts naar links inplaats van links naar rechts.... nou ja, eigenlijk van boven naar beneden :P

Wat doet Ctrl+W ook alweer?
Humankind… be both.
Star Wars Awakens | Instagram


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Dan schrijf je toch iets met GDI?

  • Spike_wolf
  • Registratie: Maart 2003
  • Laatst online: 23-05 15:25

Spike_wolf

Genius Or Madman?.. You Decide

Topicstarter
questa schreef op 26 augustus 2004 @ 15:24:
Dan schrijf je toch iets met GDI?
Euh... GDI :?

Wat doet Ctrl+W ook alweer?
Humankind… be both.
Star Wars Awakens | Instagram


  • BestTested!
  • Registratie: Oktober 2003
  • Laatst online: 20:37
Ik begrijp het probleem niet helemaal. Je hebt een aantal VU meters die verticaal op je form staan. ProgressBars dienen hier de VU meters te simuleren.

De ProgressBars moeten dus van boven naar beneden uitslaan. (Helemaal leeg bij klein waarde en daarna gelijdelijk aan naar onderen vollopen naarmate er een hogere waarde komt.)

Dan neem ik aan dat je de kleuren blauw als 'vol' wil hebben en de grijs/wit als 'leeg' wil, en dit momenteel andersom is.

Klopt dit allemaal?

  • Spike_wolf
  • Registratie: Maart 2003
  • Laatst online: 23-05 15:25

Spike_wolf

Genius Or Madman?.. You Decide

Topicstarter
BestTested! schreef op 26 augustus 2004 @ 16:12:
Ik begrijp het probleem niet helemaal. Je hebt een aantal VU meters die verticaal op je form staan. ProgressBars dienen hier de VU meters te simuleren.

De ProgressBars moeten dus van boven naar beneden uitslaan. (Helemaal leeg bij klein waarde en daarna gelijdelijk aan naar onderen vollopen naarmate er een hogere waarde komt.)

Dan neem ik aan dat je de kleuren blauw als 'vol' wil hebben en de grijs/wit als 'leeg' wil, en dit momenteel andersom is.

Klopt dit allemaal?
Heej.. daar zeg je wat... alleen zitten er nu lege streepjes tussen de bars (bars bestaan uit blokjes) maar die kan je natuurlijk zo weg halen...
als k die kleuren omdraai doet ie t zelfde ja ..... dat is helemaal geen slecht idee :D

edit:
hmm, net ff gechect. maar kijk ik ergens overheen of kan je gewoon de kleur niet veranderen van een progressbar :? ik krijg standaard XP theme kleuren

[ Voor 11% gewijzigd door Spike_wolf op 26-08-2004 16:57 ]

Wat doet Ctrl+W ook alweer?
Humankind… be both.
Star Wars Awakens | Instagram


  • RobzQ
  • Registratie: Februari 2000
  • Laatst online: 21-12-2020

RobzQ

greedy as a pig

Progressbars hebben toch meestal een max en min value?
Neem als min 0 en als max 100 geeft vervolgens de progressbar de waarde 100-X mee (waarbij X uit jouw programma komt)

..so be wary of any man who keeps a pig farm..


  • BestTested!
  • Registratie: Oktober 2003
  • Laatst online: 20:37
Progressbars hebben toch meestal een max en min value?
Neem als min 0 en als max 100 geeft vervolgens de progressbar de waarde 100-X mee (waarbij X uit jouw programma komt)
Op zich werkt dit wel. Je krijgt de inderdaad een ProgressBar die 'omgekeerd' werkt. Het probleem waar de TS nu nog mee zit is dat wanneer je dit toepast, de kleur van vol/actief nu grijs is en de kleur van leeg/inactief blauw. Dus de kleuren zijn omgekeerd. En omdat bij elke ProgessBar die je in Windows ziet de kleuren blauw voor vol/acties staan er grijs voor leeg/inactief krijg je een verkeerd beeld.

De ProgessBar van Windows Common Controls 6.0 heeft inderdaad geen optie om even snel de kleuren in te snellen. Dit is echter wel mogelijk met API calls.

Volgens mij is de eerste hit al meteen raak:
[google=vb colors progressbar]

[ Voor 19% gewijzigd door BestTested! op 27-08-2004 21:00 ]


  • FTPlus
  • Registratie: Februari 2003
  • Laatst online: 10-11-2024

FTPlus

Pluisje

Ik zal dit erg gemakkelijk oplossen en een eigen progressbar maken. :P
Met twee Shapes: Eén voor de omlijning en de ander voor de vulling.
Als je het nodig vind kan je er een Class van bouwen. (zodat je hem in andere projecten kan importeren)
Maar anders gewoon simpele berekening:

Shape1 = de omlijning
Shape2 = de vulling
code:
1
2
3
4
5
6
7
8
Sub UpdateBar(P as integer)
'grootte berekenen
P = (Shape1.Width/100)*P

'vulling sizen
Shape2.Width = P
Shape2.Left = Shape1.Width - P
end Sub


Met kleine aanpassing kan je hem ook van links naar rechts of van boven naar beneden laten gaan. Je kan ook Images gebruiken en er een plaatje op zetten.

Succes :P

P.S.
Mocht hij buiten de de lijntjes gaan dan kan je ScaleWidth gebruiken ipv Width.

[ Voor 4% gewijzigd door FTPlus op 27-08-2004 21:25 . Reden: typo ]

-=Waiz=-


  • Spike_wolf
  • Registratie: Maart 2003
  • Laatst online: 23-05 15:25

Spike_wolf

Genius Or Madman?.. You Decide

Topicstarter
FTPlus schreef op 27 augustus 2004 @ 21:23:
Ik zal dit erg gemakkelijk oplossen en een eigen progressbar maken. :P
Met twee Shapes: Eén voor de omlijning en de ander voor de vulling.
Als je het nodig vind kan je er een Class van bouwen. (zodat je hem in andere projecten kan importeren)
Maar anders gewoon simpele berekening:

Shape1 = de omlijning
Shape2 = de vulling
code:
1
2
3
4
5
6
7
8
Sub UpdateBar(P as integer)
'grootte berekenen
P = (Shape1.Width/100)*P

'vulling sizen
Shape2.Width = P
Shape2.Left = Shape1.Width - P
end Sub


Met kleine aanpassing kan je hem ook van links naar rechts of van boven naar beneden laten gaan. Je kan ook Images gebruiken en er een plaatje op zetten.

Succes :P

P.S.
Mocht hij buiten de de lijntjes gaan dan kan je ScaleWidth gebruiken ipv Width.
OKay, klinkt leuk... maar euhh.. hebbie misschien wat meer code :? k kom er nie helemaal uit :X

Wacht ff... k geloof dat k hem snap... ff prutsen met de code uit m'n progje :D

[ Voor 6% gewijzigd door Spike_wolf op 27-08-2004 21:57 ]

Wat doet Ctrl+W ook alweer?
Humankind… be both.
Star Wars Awakens | Instagram


  • FTPlus
  • Registratie: Februari 2003
  • Laatst online: 10-11-2024

FTPlus

Pluisje

OK, sorry dat ik ene beetje kort was :P

Die twee shapes zijn dus je bar. Je sized ze ook in de vorm die je wil.
Hij gaat ervan uit de de bar zo groot word als je omlijning.
Als je de vooruitgang in de bar wil laten zien doe je bijvoorbeeld:
code:
1
UpdateBar(30)

30 is dan het percentage en als je een bar van 300 Pixels hebt word de vulling 100 Pixels en schuift naar achteren.
Elke keer dat je een nieuwe update wil doen, herhaal je dit gewoon. Je zou het in een loopje kunnen zetten of gewoon na een event bv:
Nu zijn we op de helft dus UpdateBar(50)

Ik hoop dat ik nu wat duidelijker was :)

P.S.
Mocht je een andere eenheid willen gebruiken ipv uit de honderd, dan moet je ff die honderd aanpassen. Zijn 'gewoon' breuken :P

-=Waiz=-


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 21:15

Sponge

Serious Game Developer

http://vbnet.mvps.org/index.html?code/forms/psflood.htm

Probeer die eens bij te werken. Erg simpel in gebruik, gebruik stukje code al jaren :)

  • FTPlus
  • Registratie: Februari 2003
  • Laatst online: 10-11-2024

FTPlus

Pluisje

Ja die gebruikt een Picturebox en drawt daar een vlak in met standaard windows drawfuncties.
Heeft voordelen en nadelen.
Shape maakt ook gebruik van die functies alleen heeft het het voordeel dat hij automatisch refresht.
Je zou het zelfde resultaat kunnen halen met een kleine mutatie op m'n vorige code:
- Verander Shape1 in een Picturebox
- Maak Shape2 in de Picturebox (Zet de Parent van Shape2 op Picturebox1 of hoe je hem ook noemt)

Dit scheelt nogal wat code volgens mij ;) Sponge's code was ook uber 1337 hoor. O-)

Succes :P

P.S.
Als het vulvak niet zichtbaar is dan is de Picturebox waarschijnlijk niet de parent van de Shape.

-=Waiz=-


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 21:15

Sponge

Serious Game Developer

Vlgens mij kan je als je met autoredraw klooit gewoon dat ding automatisch laten refreshen hoor :). * Sponge is niet liefhebber om met shapes dingen te maken.

  • BestTested!
  • Registratie: Oktober 2003
  • Laatst online: 20:37
Op Planet Source Code staat ook een voorbeeld van een omgekeerde progessbar.

Afbeeldingslocatie: http://rr.exhedra.com/upload_PSC/screenshots/PIC200341282339349.jpg

Ik heb hier momenteel geen VB tot m'n beschikking dus ik kan 'm niet testen. Maar volgens mij hoef je alleen nog maar de orientation te veranderen. Klikker-de-klik
* Sponge is niet liefhebber om met shapes dingen te maken.
* BestTested! agrees with Sponge. Op de een of andere manier ziet het er bij mij altijd zo onprofessioneel uit als ik met shapes ga werken. Kan natuurlijk ook aan mij liggen.

[ Voor 3% gewijzigd door BestTested! op 28-08-2004 10:03 ]


  • FTPlus
  • Registratie: Februari 2003
  • Laatst online: 10-11-2024

FTPlus

Pluisje

Nouja smaken verschillen, maar het maakt natuurlijk geen hol uit hoe je het doet. De Shape Control gebruikt exact dezelfde api's als de VB drawfuncties. Of je het nou met een shape doet of met een draw functie, op het beeld ziet het er hetzelfde uit. :P
Meestal gebruik ik ook drawfuncties maar voor een simpele progressbar ga ik niet meer lines coden dan nodig is. :)

-=Waiz=-

Pagina: 1