Wo ist der Fehler??? Berühmt berüchtigt: E2141)
-
Hier mal der Kode:
class inputacalculate{ //Quersumme------------------------------------------------------------------ int quersumme(int z) { int s=0; do { s+=z%10; z/=10; } while ((z>0) || (z==11)); return s; } //String konvertieren und Voakltrennung-------------------------------------- AnsiString konvert_u_vokal(AnsiString n, AnsiString vn) //initialisiere Name und Vorname { AnsiString a; a = n+vn; //n und vn in einen String a = a.UpperCase(); //in Großbuchstaben umwandeln AnsiString t; //Entferne alle Zeichen, die keine for (int i=1; i<=a.Length(); ++i) //Buchstaben sind und wandle Vokale um { if (a[i]=='Ä') a[i]='AE'; else if (a[i]=='Ö') a[i]='OE'; else if (a[i]=='Ü') a[i]='UE'; if (('A'<=a[i]) && (a[i]<= 'Z')) t+=a[i]; } AnsiString v; //Vokalsortierung bool errorflag=false; for (int i=1; i<=a.Length(); ++i) { if (t[i]=='A') v+=t[i]; if (t[i]=='E') v+=t[i]; if (t[i]=='I') v+=t[i]; if (t[i]=='O') v+=t[i]; if (t[i]=='U') v+=t[i]; else errorflag=true; } return t, v; } //Dateiname kreieren--------------------------------------------------------- AnsiString dateiname(AnsiString vn, AnsiString n, AnsiString gebday, AnsiString gebmonth) { AnsiString x=vn+"_"+n+"_"+gebday+"-"+gebmonth+".xml"; return x; } //String in Zahl------------------------------------------------------------ int stringinzahl(AnsiString w) { // ABCDEFGHIJKLMNOPQRSTUVWXYZ AnsiString code="12345678912345678912345678"; AnsiString x; //Zahlennummer erstellen for (int i=1; i<=w.Length(); ++i) { int q=w[i]; x+=code[q]; } int z = StrToInt(x); return z; } //Geburtstagkonverter-------------------------------------------------------- AnsiString gebdate(AnsiString a,AnsiString b, AnsiString c) { a = StrToInt(a); b = StrToInt(b); c = StrToInt(c); AnsiString x; x = a+b+c; return x; } //KLassenende: Input and calculate------------------------------------------- }; //Klasse: Ausgabe------------------------------------------------------------ class output{ //Initialize----------------------------------------------------------------- //#define COLORREF RGB(BYTE bRed, BYTE bGreen, BYTE bBlue); //dezimale Farbangabe //Zechne Grundgerüst--------------------------------------------------------- int grundgeruest() { //image->Canvas->RoundRect(10,10,130,130,15,15); } //KLassenende: Ausgabe------------------------------------------------------- }; //Button beenden------------------------------------------------------------- void __fastcall Tformular::beendenClick(TObject *Sender) { Close(); } //Button Eingabe verwerfen--------------------------------------------------- void __fastcall Tformular::but_verwerfenClick(TObject *Sender) { edit_name->Text=""; edit_vorname->Text=""; cb_tag->Text="Tag"; cb_monat->Text="Monat"; cb_jahr->Text="Jahr"; } //--------------------------------------------------------------------------- void __fastcall Tformular::ProgeammbeendenAltF41Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall Tformular::NeuStrgN1Click(TObject *Sender) { edit_name->Text=""; edit_vorname->Text=""; cb_tag->Text="Tag"; cb_monat->Text="Monat"; cb_jahr->Text="Jahr"; } //--------------------------------------------------------------------------- //Integration-Hauptprogramm-------------------------------------------------- #define COLORREF RGB(BYTE bRed, BYTE bGreen, BYTE bBlue); Image->Canvas->RoundRect(10,10,130,130,15,15);Fehler: E2141 Declaration Error... kann mir jemand helfen ich sitzt schon 2 Stunden dranne!
Vielen Dank!
-
Hallo
bei welcher Zeile wird denn der Fehler angezeigt?
bis bald
akari
-
b43r_3oo3 schrieb:
#define COLORREF RGB(BYTE bRed, BYTE bGreen, BYTE bBlue);
Was soll das sein? Für eine Funktionsdeklaration ist das #define fehl am Platz, für ein Präprozessorsymbol ist es absolut sinnlos.
-
in der letzten zeile (images->canv...)
ja ich weiß dass #define COLORREF man ohne #define macht.. aber fehler ist nicht da...
-
Und was für ein Fehler ist aufgetreten?
-
b43r_3oo3_nichtangemeldet schrieb:
in der letzten zeile (images->canv...)
Diese Zeile muss in einer Funktion stehen.
ja ich weiß dass #define COLORREF man ohne #define macht.. aber fehler ist nicht da...
Der (nächste) Fehler wird dort sein, wo du COLORREF benutzt - oder versuchst, RGB zu benutzen.
-
Hallo
erstmal ist das #DEFINE schon mal ein Fehler. Das kann sich auch erst in der nächste Zeile auswirken.
Der RoundRect-Aufruf ist an sich korrekt, aber steht anscheinend in keiner Methode.bis bald
akari
-
OK, wie ihr meint.. ich hbae den Code verändert... immer noch der gleiche Fehler: Image kennt der nicht
class inputacalculate{ //Quersumme------------------------------------------------------------------ int quersumme(int z) { int s=0; do { s+=z%10; z/=10; } while ((z>0) || (z==11)); return s; } //String konvertieren und Voakltrennung-------------------------------------- AnsiString konvert_u_vokal(AnsiString n, AnsiString vn) //initialisiere Name und Vorname { AnsiString a; a = n+vn; //n und vn in einen String a = a.UpperCase(); //in Großbuchstaben umwandeln AnsiString t; //Entferne alle Zeichen, die keine for (int i=1; i<=a.Length(); ++i) //Buchstaben sind und wandle Vokale um { if (a[i]=='Ä') a[i]='AE'; else if (a[i]=='Ö') a[i]='OE'; else if (a[i]=='Ü') a[i]='UE'; if (('A'<=a[i]) && (a[i]<= 'Z')) t+=a[i]; } AnsiString v; //Vokalsortierung bool errorflag=false; for (int i=1; i<=a.Length(); ++i) { if (t[i]=='A') v+=t[i]; if (t[i]=='E') v+=t[i]; if (t[i]=='I') v+=t[i]; if (t[i]=='O') v+=t[i]; if (t[i]=='U') v+=t[i]; else errorflag=true; } return t, v; } //Dateiname kreieren--------------------------------------------------------- AnsiString dateiname(AnsiString vn, AnsiString n, AnsiString gebday, AnsiString gebmonth) { AnsiString x=vn+"_"+n+"_"+gebday+"-"+gebmonth+".xml"; return x; } //String in Zahl------------------------------------------------------------ int stringinzahl(AnsiString w) { // ABCDEFGHIJKLMNOPQRSTUVWXYZ AnsiString code="12345678912345678912345678"; AnsiString x; //Zahlennummer erstellen for (int i=1; i<=w.Length(); ++i) { int q=w[i]; x+=code[q]; } int z = StrToInt(x); return z; } //Geburtstagkonverter-------------------------------------------------------- AnsiString gebdate(AnsiString a,AnsiString b, AnsiString c) { a = StrToInt(a); b = StrToInt(b); c = StrToInt(c); AnsiString x; x = a+b+c; return x; } //KLassenende: Input and calculate------------------------------------------- }; //Klasse: Ausgabe------------------------------------------------------------ class output{ //Initialize----------------------------------------------------------------- //Zeichne Grundgerüst--------------------------------------------------------- int grundgeruest() { Image->Canvas->RoundRect(10,10,130,130,15,15); } //KLassenende: Ausgabe------------------------------------------------------- }; ///Klassen------------------------------------------------------------------- //--------------------------------------------------------------------------- //Funktionen----------------------------------------------------------------- //--------------------------------------------------------------------------- //Button beenden------------------------------------------------------------- void __fastcall Tformular::beendenClick(TObject *Sender) { progbeenden(); } //Button Eingabe verwerfen--------------------------------------------------- void __fastcall Tformular::but_verwerfenClick(TObject *Sender) { clearinput(); } //Menu Programmende---------------------------------------------------------- void __fastcall Tformular::ProgeammbeendenAltF41Click(TObject *Sender) { progbeenden(); } //Menu Datei neu------------------------------------------------------------- void __fastcall Tformular::NeuStrgN1Click(TObject *Sender) { clearinput(); } //Programmbeenden------------------------------------------------------------ void progbeenden() { Close(); } //Eingabe verwerfen---------------------------------------------------------- void clearinput() { edit_name->Text=""; edit_vorname->Text=""; cb_tag->Text="Tag"; cb_monat->Text="Monat"; cb_jahr->Text="Jahr"; } ///Funktionen---------------------------------------------------------------- //--------------------------------------------------------------------------- //Integration-Hauptprogramm-------------------------------------------------- int main() { }
-
b43r_3oo3 schrieb:
OK, wie ihr meint.. ich hbae den Code verändert... immer noch der gleiche Fehler: Image kennt der nicht
...woher auch? "int grundgeruest()" ist keine methode der TForm Klasse... um von ausserhalb der Klasse darauf zuzugreifen, musst du über den Zeiger auf die Form darauf zugreifen
Form1->Image->Canvas->RoundRect(10,10,130,130,15,15);oder wenn deine Tformular instanz nicht Form1 heisst, ersetze Form1 durch den namen deiner instanz...
das gleiche problem wirste mit der funktion progbeenden kriegen... da musste dannForm1->Close();machen
das wäre ansonsten in etwa so, als würdest du dich wundern, warum du den ofen nicht ausschalten kannst, während du im bad bist... anderer raum => du kommst nicht dran => du musst erst in die küche gehen (andere klasse => die methoden sind nicht im gültigkeitsbereich => du musst über ne instanz darauf zugreifen)
cyaAlgoMan