Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Du kannst fehlende externe Tools nicht durch Konfiguration des Visual Studio ersetzen. Wenn das Projekt grep verwendet, dann brauchst Du grep. Grep für Windows gibt es z.B. hier: http://www.interlog.com/~tcharron/grep.html bison gibt es bei cygwin, z.B. hier: http://ftp.uni-kl.de/pub/windows/cygwin/release/bison/
  2. CTreeCtrl bietet keine Suchfunktion. Du musst also von Hand den gesamten Baum durchsuchen. Das kannst Du rekursiv oder iterativ machen.
  3. Nachtrag: PlaySound kommt aus winmm.dll, die Defines für fdwSound stehen in mmsystem.h. Bei den anderen Fragen kann ich Dir leider nicht helfen.
  4. In Absprache mit dem Ersteller des Themas verschoben nach: Delphi/VB/VBS/AS 400/C#/.net/Sonstige
  5. Quelle: http://www.sojia.org/~pigfoot/mirror/Indy9_00_03_Html/008280.html TIdPOP3 is not intended to provide extensive manipulation operations of mail on the server; normally, mail is downloaded and then deleted. Use TIdIMAP4 and TIdIMAP4Server when a more advanced (and complex) mail protocol is required.
  6. Wie sollte das auch funktionieren? Du versuchst, das erste Item in einem List Control zu selektieren, das keine Items enthält. Du musst diese Zeile ausführen, nachdem Du das List Control mit Daten gefüllt hast.
  7. Kannst Du das Programm auf einer der abstürzenden Plattformen debuggen? Was passiert, wenn Du es unter XP im Kompatibilitätsmodus ausführst?
  8. Damit löschst Du explizit den Focus-State, falls das Item ihn hat. Macht nicht viel Sinn, also besser so: m_Grid.SetItemState(0,LVIS_SELECTED,LVIS_SELECTED); Das verursacht den beschriebenen Effekt: man kann kein anderes Item auswählen. Hier darfst Du das auf keinen Fall machen. Das kommt schon eher hin. Sind da die Items denn schon eingetragen?
  9. NM_CLICK wird nur mit der Maus ausgelöst. Außerdem ist es dabei möglich, über LVM_SUBITEMHITTEST herauszufinden, ob auf ein Subitem geklickt wurde. LVN_ITEMCHANGED wird immer ausgelöst, wenn ein Item selektiert oder deselektiert wird, egal ob das durch die Maus oder die Tastatur ausgelöst wurde. Wenn Dein List Control auch mit der Tastatur bedienbar sein soll, musst Du LVN_ITEMCHANGED verwenden.
  10. Selbst laden musst Du sie, und zwar mit LoadBitmap. Anzeigen kannst Du sie mit CStatic::SetBitmap (oder STM_SETIMAGE, falls Du die MFC nicht verwendest).
  11. Wo ist denn das Problem? :confused: CString strText0 = m_Grid.GetItemText( item, 0 ); CString strText1 = m_Grid.GetItemText( item, 1 ); CString strText2 = m_Grid.GetItemText( item, 2 ); CString strText3 = m_Grid.GetItemText( item, 3 ); CString strText4 = m_Grid.GetItemText( item, 4 ); CString strText5 = m_Grid.GetItemText( item, 5 ); ... Oder so: CString strGanzeZeile; for( int i=0; i<nColumnCount; ++i ) { strGanzeZeile += m_Grid.GetItemText( item, i ); }[/CODE] Oder lies die Texte in ein Array von CStrings...
  12. Es gibt zwei Versionen dieser Methode. Die erste Version schreibt den Text in einen Puffer: // hole Text von Item 3, SubItem 5 char szBuffer[200]; m_listctrl.GetItemText( 3, 5, szBuffer, 199 ); Die zweite Version macht es noch einfacher, sie liest den Text in ein CString-Objekt und gibt dieses zurück: // hole Text von Item 3, Subitem 5 CString strText = m_listctrl.GetItemText( 3, 5 ); Das ist keine Methode, sondern ein int. In diesem int steht der Index des selektierten Items.
  13. CListCtrl::GetItemText
  14. Du erstellst eine Nachrichtenbehandlungsfunktion für LVN_ITEMCHANGED. Die sollte dann in etwa so aussehen: [color=blue]void CDeinDialog[/color]::OnItemchangedList([color=blue]NMHDR[/color]* pNMHDR, [color=blue]LRESULT[/color]* pResult) { [color=purple]NM_LISTVIEW[/color]* pNMListView = ([color=purple]NM_LISTVIEW[/color]*)pNMHDR; if( pNMListView->uNewState & [color=purple]LVIS_SELECTED[/color] ) { [color=green]// In pNMListView->iItem steht der Index des gewählten Items[/color] } *pResult = 0; }[/CODE]
  15. Virtuelle Funktionen verwendet man, wenn man auf ein Objekt einer abgeleiteten Klasse über einen Zeiger auf eine Basisklasse zugreift. Wenn aber der Destruktor nicht virtuell ist, wird nur der Basisklassendestruktor aufgerufen, was meist nicht das ist, was man will. Ein Beispiel: [color=blue]class[/color] [color=blue]Base[/color] { [color=blue]public[/color]: [color=blue]Base[/color]() {} [color=blue]virtual[/color] ~[color=blue]Base[/color]() {} }; [color=blue]class[/color] [color=blue]Derived[/color] : [color=blue]public[/color] [color=blue]Base[/color] { [color=blue]public[/color]: [color=blue]Derived[/color]() : [color=blue]Base[/color](), [color=darkred]p[/color]([color=darkblue]0[/color]) { [color=darkblue]p[/color] = [color=purple]new[/color] [color=blue]char[/color][[color=darkblue]4[/color]]; } ~[color=blue]Derived[/color]() { [color=blue]if[/color]( [color=darkblue]p[/color] ) [color=blue]delete[/color] [color=darkblue]p[/color]; } [color=blue]private[/color]: [color=blue]char[/color]* [color=darkblue]p[/color]; }; [color=blue]int[/color] [color=darkred]main[/color]() { [color=blue]Base[/color]* [color=darkblue]pBase[/color] = [color=purple]new[/color] [color=blue]Derived[/color]; [color=green]// wenn Base::~Base nicht virtuell ist, wird hier nicht[/color] [color=green]// Derived::~Derived aufgerufen, sondern nur Base::~Base,[/color] [color=green]// und p wird nicht freigegeben![/color] [color=blue]delete[/color] [color=darkblue]pBase[/color]; } [/CODE]
  16. EOF ist -1, !EOF ist also immer falsch. Vielleicht meinst Du sowas wie pRs->EOF? Außerdem solltest Du in der Schleife auf den nächsten Datensatz wechseln, sonst hast Du eine Endlosschleife.
  17. Klotzkopp

    Rätsel

    Das setzt natürlich voraus, dass der Arbeiter sein Silber nicht jeden Abend gleich versäuft.
  18. Das scheint so weit in Ordnung zu sein. Mit Anzeigen hat der gezeigte Code auch nichts zu tun. Machst Du an anderer Stelle vielleicht noch ein MoveNext oder MovePrevious?
  19. Du darfst den fünften Parameter von InsertColumn nicht auf seinem Defaultwert (-1) lassen, sonst klappt das mit den Subitems nicht: m_Grid.InsertColumn(0, "Name", LVCFMT_LEFT, 120, 0); m_Grid.InsertColumn(1, "Vorname", LVCFMT_CENTER, 80, 1); m_Grid.InsertColumn(2, "Qualification", LVCFMT_LEFT, 120, 2); m_Grid.InsertColumn(3, "Profession", LVCFMT_LEFT, 100, 3); m_Grid.InsertColumn(4, "Fav. Sport", LVCFMT_RIGHT, 80, 4); m_Grid.InsertColumn(5, "Hobby", LVCFMT_CENTER, 100, 5);
  20. Und darum kann es nicht Bestandteil anderer Frameworks sein?
  21. Eigenartig. Was steht denn zu dem Zeitpunkt in dwRead?
  22. Das ist eigentlich egal, weil die Werte intern miteinander multipliziert werden. Der eine Wert gibt die Anzahl der Datenelemente an, der andere die Größe eines Datenelements. Du schreibst also gerade für jedes gelesene Byte einen 1000-Byte-Array in Deine Datei. Schreib mal statt sizeof© sizeof(*c).
  23. Wie sieht denn der fwrite-Aufruf aus?
  24. Das ist ein Indiz für einen Pufferüberlauf. Wieviel Speicher hast Du denn für c geholt?
  25. Wofür brauchst Du memcpy?

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...