Listenfeld, Bücherdatenbank
-
Vielen Dank für die schnelle Antwort.
Mit einer Datenbank hätte ich das auch gemacht, mit PHP und MySQL könnte ich das, bloß ich soll das mit C++ und Dateien lesen/schrieben lösen.
Ich werde mal deinen Tip bezüglich des einlesens versuchen.
Ich wäre aber auch für weitere Tips dankbar

-
Dateien lesen und schreiben kannst du z.B. mit Hilfe der Klassen CFile oder CStdioFile. Du erzeugst ein Objekt davon und dann stehen dir damit Funktionen wie Open(...), Close(), ReadString(...), Write(...), GetLength(), SetLength(...) usw. usw. zur Verfügung.
Bei dem Listenelement funktioniert das genau so. Da gibt es z.B. die Klasse CListCtrl. Du fügst so eine Liste im Resourcen-Editor in den Dialog ein, weist dem Ding eine Membervariable zu und somit hast du Zugriff auf die Funktionen von der Liste, wie z.B. GetItem(...), SetItem(...), GetNextItem(...), GetSelectionMark(...), SetSelectionMark(...), InsertItem(...), DeleteItem(...), FindItem(...) usw. usw..
Mehr brauchst du eigentlich nicht. Beim Programmstart die Datei zeilenweise auslesen und mit InsertItem(...) in das Listenelement schreiben. Die Funktionen InsertItem(...), DeleteItem(...) usw. hinter die entsprechenden Funktionen der Buttons packen (z.B. void CBookDlg::OnNew()) und beim Programmende die Liste auslesen und wieder in die Datei schreiben.
Fertig.
-
hört sich an wie eine prüfungsaufgabe

-
ExtremeSnail schrieb:
Was muss ich machen, um die Liste beim Start in das Listenfeld zu laden?
MSDN lesen
ExtremeSnail schrieb:
Kann mir da jemand helfen? Möglichst genau beschreiben, bitte. Ich bin noch Anfänger...
sollen wir das ding gleich für dich entwickeln ??
-
Hi,
so ich hab nun schon so einiges hinbekommen.
Er liest jetzt beim Start des Dialogfeldes eine Datei aus und schreibt die Daten in 4 verschiedene Listenfelder. Ausserdem kann man schon Daten hinzufügen in die Listenfelder und die Liste, und wenn man das Programm beendet wird die komplette Liste wieder in die Datei geschrieben.
Nun hab ich aber wieder ein paar Fragen.
Ich habe mir einen extra Scrollbalken rechts neben die Listenfelder gesetzt und die Scrollbalken der Listenfelder deaktiviert, wie mache ich das nun, das ich mit dem Scrollbalken die Listenfelder alle gleichzeitig steuern kann?Und wie kann ich abfragen ob ein Element im Listenfeld markiert ist? Damit ich das später über eine Löschen Funktion aus der Liste entfernen kann!
Ich weiß sind viele Fragen dun eventuell auch dumme *GG* aber ihr würdet mir echt helfen wenn irh eine Antwort darauf habt.
P.S.: Nein es ist keine Prüfungsaufgabe sondern ein Aufgabe die ich in der Ausbildung zum lernen selbst erarbeiten soll und Hilfe holen egal wo ist ja erlaubt.
@Jackie: Der Tipp mit MSDN lesen hilft ja echt sehr, was bringt das wenn man nicht weiß wonach man suchen muss? Und nein ihr sollt das nicht für mich entwickeln, ich möchte dabei ja auch etwas lernen, ich brauche nur Tipps und Denkanstöße.
-
Bei der Beschreibung mit den 4 Listen hab ich was überlegt:
Wärst du mit einem CListCtrl nicht besser dran? Das hat nämlich Spalten und die lassen sich zusammen scrollen.Ansonsten würde ich versuchen, den Listen Scrollnachrichten zu schicken. Wie Nachrichten schicken geht, war die Tage mal dabei (irgendwas mit Programm beenden) und die Nachrichten heissen glaubich WM_HSCROLL und WM_VSCROLL.

-
Hi, danke für die schnelle Antwort.
Wie setze ich dieses CListctl ein?
Ich fidne das nicht in den Steuerelementen....
Und kann man die einzelnen Spalten auch einzeln ansteuern dann wenn man etwas einegeben möchte?
Bzw wenn man eine Spalte markiert sidn dann alle Spalten markiert so das man diese aber trotzdem einzeln auslesen kann?
-
Listenelement steht bei mir im Tooltip.
Zur allem anderen such bitte hier im Forum, ich muss mich da auch wieder einlesen.

Ist eigentlich nicht schwer, aber eine Kopiervorlage erleichtert es enorm.
-
ExtremeSnail schrieb:
Wie setze ich dieses CListctl ein?
MSDN !
ExtremeSnail schrieb:
@Jackie: Der Tipp mit MSDN lesen hilft ja echt sehr, was bringt das wenn man nicht weiß wonach man suchen muss? Und nein ihr sollt das nicht für mich entwickeln, ich möchte dabei ja auch etwas lernen, ich brauche nur Tipps und Denkanstöße.
Ich dachte du suchst doch nach "CListCtrl " ????
Also im Index der MSDN hab ich nur CListCtrl eingegeben, und hatte doch glatt alle Methoden samt Beschreibung zur Hand....... und weiss damit wie ich das einsetzten kann.
ExtremeSnail schrieb:
Und wie kann ich abfragen ob ein Element im Listenfeld markiert ist? Damit ich das später über eine Löschen Funktion aus der Liste entfernen kann!
komisch, auch das hab ich in der MSDN gefunden........(zwar mit Indexsuche "CListCtrl")..........
eigenartig......... alle schaffen es, nur du nicht................
Ich denke du hast zwar die MSDN installiert, aber noch nie nachgelesen !
-
Hi vielen Dank an alle die mir bisher geholfen haben.
@Jackie: So mein letzter Beitrag zum Thema Hilfe oder eher weniger, weil dann werde ich dazu nichts mehr sagen.
Man fragt hier nach weil man nicht weiter kommt und nicht weil man einfach Lust hat eine dumme Frage zu stellen. Und ich denke dieses Forum ist dazu da Hilfe zu finden bzw. anderen zu helfen. Deine BEiträge beziehen sich soweit ich das sehen kann nur darauf auf MSDN zu verweisen und zu sagen das du alles verstehst aber richtig Hilfe kann ich das nicht nennen.
Aber vielleicht sehe ich das ja auch falsch.