Hej.
Próbuję zrobić obiektowo takie menu z przyciskami z wykorzystaniem biblioteki Adafruit_GFX.
Chce stworzyć klasę Pushbutton, która posłuży do tworzenia przycisków na ekranie wyswietlacza.
Ćwiczę na wyświetlaczu Nokia 5110 i też używam biiblioteki Adafruit_PCD8544.
Napisałem prosty kod definiujacy klasę, ale gdy tworzę obiekt to kompilator wywala mi błąd:
"cannot declare variable 'timebase' to be of abstract type 'Pushbutton"
Problem dotyczy linii:
Pushbutton timebase(" ");
Jak usunę linie deklarujące obiekty klasy Pushbutton, to kompilacja przechodzi bez błądów.
Pewnie jeszcze nie wszystko rozumiem z tymi klasami konstruktorami i obiektami, przeciążaniem i stąd kłopot, ale może dobra doświadczona dusza z tego forum mi pomoże to skapować.
Poniżej Kod:
Próbuję zrobić obiektowo takie menu z przyciskami z wykorzystaniem biblioteki Adafruit_GFX.
Chce stworzyć klasę Pushbutton, która posłuży do tworzenia przycisków na ekranie wyswietlacza.
Ćwiczę na wyświetlaczu Nokia 5110 i też używam biiblioteki Adafruit_PCD8544.
Napisałem prosty kod definiujacy klasę, ale gdy tworzę obiekt to kompilator wywala mi błąd:
"cannot declare variable 'timebase' to be of abstract type 'Pushbutton"
Problem dotyczy linii:
Pushbutton timebase(" ");
Jak usunę linie deklarujące obiekty klasy Pushbutton, to kompilacja przechodzi bez błądów.
Pewnie jeszcze nie wszystko rozumiem z tymi klasami konstruktorami i obiektami, przeciążaniem i stąd kłopot, ale może dobra doświadczona dusza z tego forum mi pomoże to skapować.
Poniżej Kod:
Kod:
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
using namespace std;
class Pushbutton : public Adafruit_GFX
{
boolean Active = false;
boolean Visible = true;
String Label = "";
byte Width = 30;
byte PositionV = 0;
byte PositionH = 0;
byte TextSize = 1;
public:
//Constructor
Pushbutton::Pushbutton(String Lab = "", byte Widt = 30, byte PositV = 0, byte PositH = 0, byte TextS = 1, boolean Activ = false, boolean Visibl = true):Adafruit_GFX(LCDWIDTH, LCDHEIGHT)
{
Active = Activ;
Visible = Visibl;
Width = Widt;
Label = Lab;
PositionV = PositV;
PositionH = PositH;
TextSize = TextS;
}
//End of Constructors
void Pushbutton::displayButton()
{
if (Active)
Adafruit_GFX::setTextColor(WHITE, BLACK);
else
Adafruit_GFX::setTextColor(WHITE, BLACK);
if (Visible)
{
Adafruit_GFX::setCursor(PositionH, PositionV);
Adafruit_GFX::print(Label);
}
}
}; //End of Class Button
Pushbutton timebase(" ");
Pushbutton triggermode(" ", 6, 41, 34);
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}