Graphbar and Varslide
in
Programming Questions
•
3 years ago
Hello everyone,
I am trying to create a graphbar that i can chance by value by using a varslide (don't know the right name for it
). I have created 2 functions in order to do that, to be able to add more graphbars and varslides. The problem is that when I want to add a varslide all the varslides will get the same value. The problem lies whit global declaring the integer data. I just started programming so I could not find a sulution for this. You can find the code below. Comments are in dutch (sorry
). I could translate if you want to.


Thanks,
Willem
- int data=0; // Variabele die veranderd wanneer er op de knoppen wordt gedrukt.
- int tempdata=1;
- long tempMillis = 0; // Variabelen die worden gebruikt om ervoor te zorgen dat wanneer er op een knop gedrukt wordt de variabele
- long interval = 80; // "data" maar met 1 wordt verlaagd of verhoogd.
- void setup() {
- size(500,500); // Groote van het aplicatie scherm.
- background(#D1E5FF); // Kleur van de achtergrond van de aplicatie. Is in dit geval blauw.
- PFont fontA;
- fontA = loadFont("Calibri-48.vlw");
- textFont(fontA, 16);
- }
- void draw() {
- long Millis = millis();
- if(Millis - tempMillis > interval) { // Wanneer er op een knop gedrukt wordt zullen de volgende acties pas na de ingestelde tijdinterval weer
- tempMillis = Millis; // meedoen met het programma.
- int Varslide1 = Varslide(80, 80);
- graphbar(50, 50, Varslide1);
- }
- }
- int Varslide(int tempX, int tempY) {
- boolean Plus = false; // Plus wordt geinitieerd als "false".
- boolean Min = false; // Min wordt geinitieerd als "false".
- //---------------------------- Plus
- if(mouseX>tempX && mouseX <tempX+40 && mouseY>tempY && mouseY <tempY+20) {
- if(mousePressed) { // Wanneer de muis cursor over de knop wordt gesleept zal deze grijs kleuren.
- Plus =true; // Wanneer de muis cursor over de knop wordt gesleept en de muisknop wordt bediend zal buttonp "true" worden.
- stroke(0);
- fill(0);
- }
- else {
- stroke(0);
- fill(#A6A6A7);
- }
- }
- else { // Wanneer er niet op de button wordt gedrukt zal de buttonp logisch "0" worden en zal de kleur van de button
- stroke(0); // blauw worden.
- fill(#25C9F5);
- }
- rect(tempX, tempY, 40, 20); // Een "rect" dat de button voorstelt.
- fill(0);
- text("+", tempX+16, tempY+15);
- if(Plus == true && data <= 99 ) { // Wanneer "Plus" bediend wordt zal de variabele "data" veranderen.
- data++; // De waarde opgeslagen in "data" kan niet hoger worden dan 100 en lager dan 0.
- }
- //---------------------------- Min
- if(mouseX>tempX && mouseX <tempX+40 && mouseY>tempY+20 && mouseY <tempY+20+20) {
- if(mousePressed) { // Wanneer de muis cursor over de knop wordt gesleept zal deze grijs kleuren.
- Min=true; // Wanneer de muis cursor over de knop wordt gesleept en de muisknop wordt bediend zal buttonp "true" worden.
- stroke(0);
- fill(0);
- }
- else {
- stroke(0);
- fill(#A6A6A7);
- }
- }
- else { // Wanneer er niet op de button wordt gedrukt zal de buttonp logisch "0" worden en zal de kleur van de button
- stroke(0); // blauw worden.
- fill(#25C9F5);
- }
- rect(tempX, tempY+20, 40, 20); // Een "rect" dat de button voorstelt.
- fill(0);
- text("-", tempX+18, tempY+34);
- if(Min == true && data >= 1 ) {
- data--;
- }
- //---------------------------- Weergave van data.
- if(data!=tempdata) { // Wanneer de waarde data veranderd zal de variabele "data" op het scherm vernieuwen.
- stroke(0);
- fill(#25C9F5);
- rect(tempX+40, tempY, 40, 40);
- fill(0);
- text(data + "%", tempX+44, tempY+25);
- tempdata=data;
- }
- return data;
- }
- void graphbar(int tempX, int tempY, int tempData) {
- stroke(0); // Buitenbalk.
- fill(255);
- rect(tempX, tempY, 200, 10);
- stroke(#25C9F5); // Binnenbalk.
- fill(#25C9F5);
- rect(tempX+1, tempY+1, tempData*1.98, 8);
- }
1