Zum Inhalt springen

TDM

Mitglieder
  • Gesamte Inhalte

    1804
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von TDM

  1. Code der Funktion: void CAzubiTestMFC_IDlg::On_BnOutput_Clicked() { m_CtrlLbAll.ShowWindow(SW_SHOWNORMAL); if (CPerson::s_nCount == 0) { m_CtrlLbAll.InsertColumn(0, "Fehler", LVCFMT_LEFT, 289); m_CtrlLbAll.InsertItem(0,"Es wurden keine Datensätze eingegeben."); [COLOR="Red"]// <-- DA[/COLOR] } else { m_CtrlLbAll.InsertColumn(0, "Vorname", LVCFMT_LEFT, 72); m_CtrlLbAll.InsertColumn(1, "Name", LVCFMT_LEFT, 72); m_CtrlLbAll.InsertColumn(2, "Gewicht", LVCFMT_LEFT, 72); m_CtrlLbAll.InsertColumn(3, "ÜNÜ", LVCFMT_LEFT, 72); CPerson Person(*m_pPerson); Person = (m_pPerson -> getFirst()); m_CtrlLbAll.DeleteAllItems(); m_CtrlLbAll.InsertItem(Person.getID(), Person.getFName()); while (Person.getNext() != NULL) { Person = *(Person.getNext()); m_CtrlLbAll.SetItemText(Person.getID(), 1, Person.getFName()); m_CtrlLbAll.SetItemText(Person.getID(), 2, Person.getGewicht()); m_CtrlLbAll.SetItemText(Person.getID(), 3, Person.getBMI()); } } }
  2. m_CtrlLbAll.InsertColum(0, "Fehler); m_CtrlLbAll.InsertItem(0, "Keine Datensätze vorhanden."); Toll... jetzt kommt irgentwas von Debug Assertion Failed
  3. Weil irgendwie will InsertItem jetzt überhaupt nichts mehr reinschreiben (auch wenn keine Spalten drin sind...)
  4. Extras -> Umgebung -> Internationale Einstellungen -> Englisch Ahh... ich habs gefunden *an Kopf klatsch* Und wie kann ich da jetzt Spalten reinmachen und auf die zugreifen ? ich hab nur setColoum
  5. 2002 Bei mir isses Deutsch... aber die Sprache kann man so und so umschalten Weil ichs nicht gefunden hab, wo man es umstellt *g* Außerdem wär es interessant falls ich mal nen Programm schreiben muss, welches dieses während der Laufzeit macht
  6. TDM

    Primfaktorzerlegung

    ok, stimmt... ich mag solche Früh-morgens-Aufgaben nicht naja... ich hab mal bissl rumgetestet mal sehen ob du wieder Fehler findest Klotzkopp (kann ich nur draus lernen :floet: ) bool teilt (int n, int t); bool prim (int n); int potenz (int n, int p); int main () { int n; int count = 0; cin >> n; cout << "Primfaktoren von " << n << "\n"; for (int i=2; i<n; ++i){ if (teilt (n, i) && prim (i)) { cout << i << " hoch " << potenz (n, i) << "\n"; ++count; } } if (count == 0) cout << n << " ist eine Primzahl\n"; else cout << endl; } bool teilt (int n, int t) { return (n % t == 0); } bool prim (int n) { if (n == 2) return true; for (int i = 2; i<n; ++i) { if (teilt (n, i)) return false; } return true; } int potenz (int n, int p) { int i = 0, pp = 1; while (teilt (n, pp)) { ++i; pp *= p; } return i-1; } müsste eigentlich gehen... bei mir funzt es jedenfalls (angelehnt an UltimateRuppi's Vorschlag)
  7. VS.Net Ich brauch das nicht ? gibts da eine andere Funktion oder meinst du, dass du es nicht im quelltext ändern würdest?
  8. TDM

    Primfaktorzerlegung

    Wie kommst du auf 143 ? O.o
  9. Und wo ? Ich krieg jetzt den Fehler, dass SetView kein Element von CListCtrl ist O.o hab ich vergessen etwas einzubinden btw: danke Amstelchen
  10. und wie setz ich das auf Report-Style ? ich hab bisher zwar die Funktion CListCtrl::SetView gefunden aber ich weis nicht was ich als parameter übergeben muss... In der MSDN steht nur:
  11. TDM

    Primfaktorzerlegung

    99 ist ja durch 3 teilbar also würde der da schon zurückgeben, dass es keine ist. Alle zahlen die keine Primzahlen sind setzen sich aus 2, 3, 5 und 7 zusammen, ansonsten ist es eine Primzahl Dann halt return *pnResult; das ist keine unvollständige teilerlist... alles was eine valide zahl ist, ist ein Primzahlfaktor (gut, man hätte den Array vorher mit 0 füllen können...)
  12. hmm danke, das ging Nächste Frage zum Anzeigen in der Listbox: Wie kann ich die in Spalten aufteilen und dann in die einzelnen Zellen schreiben ? (ich kenn von VBA her list() aber die scheint es hier nicht zu geben bzw. hab ich die nicht gefunden). Ich habe bisher immer einen String mit "\t" probiert aber da kommt nur ein Viereck und wie lösch ich dann eine einzelne Zeile ohne gleich die ganzen Zellen durchzugehen ? (cols() und rows() gibts hier nämlich auch nicht )
  13. TDM

    Primfaktorzerlegung

    du durchsuchst erstmal eine Zahl ob es eine Primzahl ist, wenn du dies machst, und dies keine ist, dann speicherst du dir einfach den faktoren in nem Array und gibst am Ende den Array zurück. #define MAX_PRIMFAKTOREN 255 bool isPrimzahl(int x) { int faktor = 2; while (faktor <= 7) //alternativ auch x/2 { if ((x % faktor) == 0) return false faktor++; } return true; } int* Primfaktor (int x) { int faktor = 2; int i = 0, int pnResult[MAX_PRIMFAKTOREN]; pnResult[i] = 0; //erste auf 0 setzen falls es doch eine Primzahl ist while (faktor < (x/2)) { if ((x % faktor) == 0) if (isPrimzahl(faktor)) pnResult[i] = faktor; i++; faktor++; } return pnResult; }
  14. TDM

    Problem mit Operatoren

    Deswegen hab ich den als friend deklariert (damit der auch von anderen Objekten, die nicht der Klasse angehören übernommen werden können)
  15. Hallo, Ich habe das Problem, dass ich Operatoren habe, die ein Objekt der Klasse CPerson wiedergeben, in der Klasse funktionieren diese eigentlich, außerhalb bekomm ich die Fehlermeldung: "Operator '=' muss ein nicht-statisches Element sein" Ich weis nicht warum das kommt, weil eigentlich hatte ich nichts von static geschrieben h: class CPerson { public: //Konstruktor und Destruktor CPerson(void); CPerson(CString FName, CString Name, double Gewicht, CPerson* lpPrev, CPerson* lpNext); CPerson(CPerson&); ~CPerson(void); //Funktionen //gibt den Vorgänger CPerson* getPrev(void); //gibt den Nachfolger CPerson* getNext(void); //gibt den Vornamen CString getFName(void); //gibt den Namen CString getName(void); //gibt das Gewicht double getGewicht(void); //gibt die ID int getID(void); //Operatoren CPerson operator = (CPerson&); friend CPerson operator = (CPerson&, CPerson&); //Klassenvariable static int s_nCount; private: // Member nimmt Name auf CString m_lpName; // Member nimmt Vornamen auf CString m_lpFName; // Member nimmt Gewicht auf double m_dGewicht; // Member ID der Person UINT m_unID; // Member nimmt Vorgänger auf CPerson* m_pPrev; // Member nimmt Nachfolger auf CPerson* m_pNext; // //Übergewicht, Normalgewicht, Untergewicht int m_nBMI; }; cpp: ///////////////////////////////////////////////////////////////////////////////////////////////////////////// // Konstruktion/Destruktion ///////////////////////////////////////////////////////////////////////////////////////////////////////////// CPerson::CPerson(void):m_lpFName(""), m_lpName(""), m_dGewicht(0) , m_nBMI(0), m_unID(0) { CPerson* m_pPrev = NULL; CPerson* m_pNext = NULL; } CPerson::CPerson(CString FName, CString Name, double Gewicht, CPerson* pPrev, CPerson* pNext):m_lpFName(FName), m_lpName(Name), m_dGewicht(Gewicht) { CPerson* m_pPrev = new CPerson(*pPrev); CPerson* m_pNext = new CPerson(*pNext); s_nCount++; m_unID = (unsigned) s_nCount; } CPerson::CPerson(CPerson& Person) { if (&Person != NULL) { this -> m_dGewicht = Person.m_dGewicht; this -> m_lpFName = Person.m_lpName; this -> m_lpName = Person.m_lpName; this -> m_pNext = NULL; this -> m_pPrev = &Person; this -> m_pPrev -> m_pPrev = this; } } CPerson::~CPerson(void) { m_pPrev = NULL; delete m_pPrev; m_pNext = NULL; delete m_pNext; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////// // Operatoren ///////////////////////////////////////////////////////////////////////////////////////////////////////////// CPerson CPerson::operator =(CPerson& rhs) { this -> m_dGewicht = rhs.getGewicht(); this -> m_lpFName = rhs.getFName(); this -> m_lpName = rhs.getName(); this -> m_pNext = new CPerson(*(rhs.m_pNext)); this -> m_pPrev = new CPerson(*(rhs.m_pPrev)); return *(this); } CPerson operator =(CPerson& rhs, CPerson& lhs) { lhs.m_dGewicht = rhs.getGewicht(); lhs.m_lpFName = rhs.getFName(); lhs.m_lpName = rhs.getName(); lhs.m_pNext = new CPerson(*(rhs.m_pNext)); lhs.m_pPrev = new CPerson(*(rhs.m_pPrev)); return lhs; } Der normale Operator geht im Kopierkonstruktor. (In der Klasse) Beim anderen (mit rhs und lhs) kommt immer die obengenannte Fehlermeldung.
  16. Hallo, ich habe ein Frame in dem eine versteckte Listbox ist. Jetzt wollte ich fragen wie ich es anstelle dass die Listbox bei Klick auf einen Button sichtbar wird. Ich hatte mir zwar schon das ganze für Buttons angesehen, aber es scheint ich brauch da ein Control auf die Listbox oder ? Wenn ja würd ich gern wissen wie die Funktion heißt, weil ich find in der MSDN nicht wirklich was brauchbares. Danke im Vorraus TDM
  17. Hatte ich auch probiert - ging ne... das aber: [B]int[/B] CPerson::s_nCount = 0; mir gings ja nicht ums erhöhen sondern nur ums initiallisieren
  18. Hallo, ich habe das Problem, dass ich eine Klasse Person habe und diese einen Zähler. Wenn ich diesen aber initialisieren möchte kommt bei mir der Fehler: "CPerson::s_nCount" Fehlende Speicherklasse oder Typspezifizierer hier noch der Code der Header: class CPerson { public: CPerson(Name, Vorname); static int s_nCount; private: CString m_Name; CString m_Vorname } und die cpp: CPerson::s_nCount = 0; // <-- das geht nicht CPerson::CPerson(CString Name, CString Vorname):m_Name(Name), m_Vorname(Vorname) { s_nCount++; //<--- Nicht aufgelöstes externes Symbol } Danke im Vorraus mfg TDM
  19. Bottom = Top + Height?
  20. Dim x,y as Double x = me.Textbox.Left y = me.Textbox.Bottom
  21. Gibt es eine Möglichkeit eine Tabellenzeile komplett zu markieren um diese dann auszublenden ? Weil jede Zelle einzeln auszublenden ist relativ lahm :/
  22. TDM

    [VBA] Format klappt nicht

    nein, dGes ist das Ges-amte Endergebnis (double) Da werden auch die Daten korrekt eingetragen - nur hatte der wahrscheinlich Probleme, weil die zweite Kommastelle eine 0 ist. Hab das mit debuggen probiert - da kam, dass dGes 100,5 wäre - Format(dGes, "###0.00") hatte "100,50" zurückgeliefert aber danach war es immernoch 100,5 O.o hab das jetzt so gemacht: .Tables(2).Cell(7, 2).Select Selection.Text = CStr(CInt(dGes)) .Tables(2).Cell(7, 4).Select Selection.Text = Right(CStr(Format(dGes, "###0.00")), 2) geht trotzdem *g* aber deine Lösung merk ich mir mal
  23. Hallo, Ich möchte Werte aus einer Tabelle auslesen und diese dann getrennt (nach vollen Euros und Cent) in 2 Zellen schreiben jetzt hab ich aber das Problem, dass wenn ich eine 1 dezimalstellige Zahl in meiner Variable habe, immer das Komma mitgeschrieben wird... Dim dGes As Double dGes = Format(dGes, "###0.00") .Tables(2).Cell(7, 2).Select Selection.Text = CStr(CInt(dGes)) .Tables(2).Cell(7, 4).Select Selection.Text = Right(CStr(dGes), 2) Warum geht das nicht ?!
  24. TDM

    [VBA] Rahmen einer Zelle

    ahh ok, habs es war ActiveDocument.Tables(2).Cell(1, nCol).Borders(wdBorderBottom).LineStyle = wdLineStyleNone :floet:

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...