Ich aheb ein Programm geschrieben, wo ich mit einer eigenen Klasse und einem StringGrid arbeite.
Nun habe ich das Problem, dass der Compiler beim linken stehen bleibt, sobald ich die eigen Klasse aufrufe über einen zeiger.
Nehme ich den Code aus der Startdatei in Zeilen 19+20 raus, zeigt der mir die Form mit dem StringGrid an.
Woran liegt das?
Er gibt nirgends Fehler aus, die Processliste bleibt nur irgendwann stehen mit dieser Meldung:
Modul laden: msointl.dll. Ohne Debug-Infos. Basisadresse: $040A0000. Prozess projekt_Buchhaltung.exe (3604)
Thread-Start: Thread-ID: 5064. Prozess projekt_Buchhaltung.exe (3604)
Thread-Start: Thread-ID: 6040. Prozess projekt_Buchhaltung.exe (3604)
Thread-Start: Thread-ID: 464. Prozess projekt_Buchhaltung.exe (3604)
Modul laden: fx.dll. Ohne Debug-Infos. Basisadresse: $73F50000. Prozess projekt_Buchhaltung.exe (3604)
Modul laden: UNKNOWN_MODULE_12. Ohne Debug-Infos. Basisadresse: $03B50000. Prozess projekt_Buchhaltung.exe (3604)
Hier die Startdatei:
Die Headerdatei dazu:
UNd hier die Definition der eigenen Klasse:
Und die Funktionen innerhalb der Klasse:
Kann mir da jemand weiterhelfen woran das liegen könnte?
Nun habe ich das Problem, dass der Compiler beim linken stehen bleibt, sobald ich die eigen Klasse aufrufe über einen zeiger.
Nehme ich den Code aus der Startdatei in Zeilen 19+20 raus, zeigt der mir die Form mit dem StringGrid an.
Woran liegt das?
Er gibt nirgends Fehler aus, die Processliste bleibt nur irgendwann stehen mit dieser Meldung:
Modul laden: msointl.dll. Ohne Debug-Infos. Basisadresse: $040A0000. Prozess projekt_Buchhaltung.exe (3604)
Thread-Start: Thread-ID: 5064. Prozess projekt_Buchhaltung.exe (3604)
Thread-Start: Thread-ID: 6040. Prozess projekt_Buchhaltung.exe (3604)
Thread-Start: Thread-ID: 464. Prozess projekt_Buchhaltung.exe (3604)
Modul laden: fx.dll. Ohne Debug-Infos. Basisadresse: $73F50000. Prozess projekt_Buchhaltung.exe (3604)
Modul laden: UNKNOWN_MODULE_12. Ohne Debug-Infos. Basisadresse: $03B50000. Prozess projekt_Buchhaltung.exe (3604)
Hier die Startdatei:
Code:
#include <vcl.h> #pragma hdrstop #include "buchhaltung.h" #include "gridtable.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; //--------------------------------------------------------------------------- __fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { StringGrid1->Cells[0][0]="Einnahmen"; StringGrid1->Cells[1][0]="Betrag"; StringGrid1->Cells[2][0]="Ausgaben"; StringGrid1->Cells[3][0]="Betrag"; gridtable *grid = new gridtable(StringGrid1, ADOQuery1); grid->filltable("select * from konto"); } //--------------------------------------------------------------------------- void __fastcall TForm2::close(TObject *Sender) { ADOQuery1->Active=false; Close(); }
Code:
#ifndef buchhaltungH #define buchhaltungH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> #include <Grids.hpp> #include <Menus.hpp> #include <ADODB.hpp> #include <DB.hpp> //--------------------------------------------------------------------------- class TForm2 : public TForm { __published: // IDE-verwaltete Komponenten TButton *btn_back; TButton *btn_next; TLabel *lab_showdat; TStringGrid *StringGrid1; TPanel *Panel1; TMainMenu *MainMenu1; TMenuItem *Programm1; TMenuItem *beenden1; TADOQuery *ADOQuery1; void __fastcall close(TObject *Sender); private: // Benutzer Deklarationen public: // Benutzer Deklarationen __fastcall TForm2(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm2 *Form2; //--------------------------------------------------------------------------- #endif
Code:
#ifndef gridtableH #define gridtableH #include <Grids.hpp> #include <ADODB.hpp> #include <DB.hpp> class gridtable { private: TStringGrid* _table; TADOQuery* _query; public: __fastcall gridtable(TStringGrid *table, TADOQuery *query); __fastcall ~gridtable(); private: void __fastcall getData(String sql); public: void __fastcall filltable(String sql); void __fastcall setData(); }; #endif
Code:
#include "gridtable.h" __fastcall gridtable::gridtable(TStringGrid *table, TADOQuery *query) { _table = table; _query = query; } __fastcall gridtable::~gridtable() { //nothing } void __fastcall gridtable::getData(String sql) { _query->Close(); _query->SQL->Clear(); _query->SQL->Add(sql); _query->Open(); _query->First(); } void __fastcall gridtable::filltable(String sql) { int i=0; getData(sql); while(!_query->Eof) { _table->Cells[0][i]=_query->FieldByName("beschreibung")->AsString; _table->Cells[1][i]=_query->FieldByName("betrag")->AsFloat; } } void __fastcall gridtable::setData() { //nothing }
Comment