schmat Geschrieben 27. Juli 2007 Geschrieben 27. Juli 2007 Hallo, ich bin neu hier und muss gleich dazu sagen, ich habe keine Ahnung vom programmieren. Mache zwar ne Ausbildung als Fachinformatiker aber in Fachrichtung Systemintegration.Leider muss man in der Berufschule auch das Programmieren lernen und wir machen es mit dem Borland c++ builder. Jetzt die Frage, gibt es hier jemanden der sich damit auskennt. Ich habe nämlich mit einer Onlinehilfe ein Zeichenprogramm (sollte jedenfalls eines werden) erstellt und das funkt net. Wenn ja, bitte mal anschauen !!! Projekt siehe Anhang! schon mal danke und ein schönes Wochenende Projekt.zip Zitieren
Klotzkopp Geschrieben 27. Juli 2007 Geschrieben 27. Juli 2007 Hallo schmat, und Willkommen auf dem Board Wenn du hier Hilfe suchst, solltest du dein Problem schon ein wenig genauer beschreiben. Ein einfaches das funkt net reicht jedenfalls als Problembeschreibung nicht aus. Damit erweckst du nur den Eindruck, dass du jemanden suchst, der deine Arbeit macht. Also, wo genau ist das Problem? Zitieren
schmat Geschrieben 30. Juli 2007 Autor Geschrieben 30. Juli 2007 Guten Morgen, danke für den Tipp Klotzkopp. Ich versuch jetzt mal das Problem genauer zu beschreiben. Also beim kompilieren des Programmes treten folgende Fehlermeldungen auf: 1.) #ifndef CircleH #define CircleH #include "Base.h" class CCircle : public CGeometricObj { public: void Draw(TCanvas *dest); } //---------------------------------------------------------------------- #endif Fehlermeldung lautet: [C++ Error] Circle.h(8): E2176 Too many types in declaration 2.) #include <vcl.h> #pragma hdrstop #include "MainForm.h" #include "Triangle.h" #include "Quad.h" #include "Circle.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TfrmMain *frmMain; //--------------------------------------------------------------------------- __fastcall TfrmMain::TfrmMain(TComponent* Owner) : TForm(Owner) { } . . .(Quellcode geht noch weiter) Fehlermldung: (oben rot markiert) [C++ Error] MainForm.cpp(14): E2141 Declaration syntax error Hoffentlich könnt ihr mir jetzt weiterhelfen!!! Zitieren
Klotzkopp Geschrieben 30. Juli 2007 Geschrieben 30. Juli 2007 Am Ende der class-Definition von CCircle fehlt das Semikolon. Vermutlich hast du bei CGeometricObj denselben Fehler gemacht. Zitieren
schmat Geschrieben 30. Juli 2007 Autor Geschrieben 30. Juli 2007 class CCircle : public CGeometricObj { public: void Draw(TCanvas *dest); }; class CGeometricObj { protected: int m_x; int m_y; int m_Size; public: void SetXY(int x,int y); void SetSize(int size); }; leider immer noch der fehler.[C++ Error] Circle.h(8): E2176 Too many types in declaration Zitieren
schmat Geschrieben 30. Juli 2007 Autor Geschrieben 30. Juli 2007 ok. 1. Fehler weg, aber viele andere dazu. 1.) //--------------------------------------------------------------------------- #ifndef TriangleH #define TriangleH #include "Base.h" class CTriangle : public CGeometricObj { public: void Draw(TCanvas *dest); }; //--------------------------------------------------------------------------- #endif Fehler: [C++ Error] Triangle.h(11): E2293 ) expected 2.) //--------------------------------------------------------------------------- //#include #pragma hdrstop #include "Triangle.h" void CTriangle::Draw(TCanvas *dest) { dest->MoveTo(m_x,m_y+(m_Size/2)); dest->LineTo(m_x+(m_Size/2),m_y-(m_Size/2)); dest->MoveTo(m_x+(m_Size/2),m_y-(m_Size/2)); dest->LineTo(m_x-(m_Size/2),m_y-(m_Size/2)); dest->MoveTo(m_x-(m_Size/2),m_y-(m_Size/2)); dest->LineTo(m_x,m_y+(m_Size/2)); } //--------------------------------------------------------------------------- #pragma package(smart_init) Fehler: [C++ Error] Triangle.cpp(7): E2147 'TCanvas' cannot start a parameter declaration [C++ Error] Triangle.cpp(8): E2316 'CTriangle::Draw(int *)' is not a member of 'CTriangle' Zitieren
schmat Geschrieben 27. August 2007 Autor Geschrieben 27. August 2007 Hallo, kann mir keiner helfen??? Ich habe immer noch die Fehler, welche ich im letzten Betreag beschrieben habe. Zitieren
schmat Geschrieben 27. August 2007 Autor Geschrieben 27. August 2007 hier die "Base.h" //--------------------------------------------------------------------------- #ifndef BaseH #define BaseH class CGeometricObj { protected: int m_x; int m_y; int m_Size; public: void SetXY(int x,int y); void SetSize(int size); }; //--------------------------------------------------------------------------- #endif Zitieren
Klotzkopp Geschrieben 27. August 2007 Geschrieben 27. August 2007 Das sieht soweit gut aus. Du brauchst aber in Triangle.cpp auf jeden Fall eine Includedirektive für die Headerdatei, in der TCanvas deklariert ist. In Triangle.h reicht auch eine Forward Declaration dieses Typs. Vielleicht kann da jemand einspringen, der den BCB hat. Zitieren
schmat Geschrieben 27. August 2007 Autor Geschrieben 27. August 2007 wie soll das aussehen? ich hab es versucht mit #include "TCanvas.h" und #include <TCanvas.h> leider ohne erfolg. In der Beschreibung, mit der ich auch das Programm erstellt habe heißt es:" Die Funktion Draw empfängt als Parameter einen Zeiger auf TCanvas. TCanvas ist eine Klasse der Entwicklungsumgebung, die Funktionen und Variablen zum zeichnen auf ein Windowsobjekt, z.B.: Ein Formular, enthält. Wir müssen nicht wissen wie sie funktioniert, wir brauchen sie nur zum Zeichnen." Vielleicht nicht so hilfreich aber hier mal der Link, da ist auch dann der ganze Quellcode den ich habe. //C++ Kurs bei Punkt 3 gehts los. Zitieren
Pointerman Geschrieben 27. August 2007 Geschrieben 27. August 2007 Moin! [q]wie soll das aussehen? ich hab es versucht mit #include "TCanvas.h" und #include <TCanvas.h> leider ohne erfolg.[/q] Wenn ich mich recht erinnere musst Du die VCL einbinden. Das ist die Borland Klassenbibliothek, in der TCanvas enthalten ist. Probier also mal #include <vcl.h> und dann sollte es laufen. Viel Erfolg noch! Gruß, Maart Zitieren
schmat Geschrieben 27. August 2007 Autor Geschrieben 27. August 2007 Hallo Pointerman, vielen vielen Dank. Ich hab es eingefügt und es funktioniert. Natürlich auch dir Klotzkopp Danke für deine Hilfe. bye Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.