Dieses Tutorial beschäftigt sich mit Listboxen und dem Hinzufügen und Löschen von Einträgen. Auch hier nimmt einem die VCL eine Menge Arbeit ab, aber so schwer ist es auch mit dem API nicht.
An dieser Stelle ganz kurz etwas zur Funktionsweise des Beispielprogramms, da dieses Tutorial auf Teile davon noch näher eingehen wird. Nach dem Start befinden sich schon fünf Einträge in der Liste. Wählt man einen aus, erscheint der Eintrag im Label rechts oben. Es lassen sich neue Einträge über ein Eingabefeld hinzufügen, und es lassen sich markierte Einträge aus der Liste löschen.
Außerdem lassen sich alle Einträge via Button auswählen, und die ausgewählten Einträge können in ein Eingabefeld kopiert werden.
Widmen wir uns also zuerst dem Erzeugen der Listbox. Wie gehabt wird auch sie wie alle anderen Fensterelemente erzeugt. Es gibt ein paar spezielle Stilattribute, von denen einige im folgenden Codeauszug benutzt wurden:
hwndListBox := CreateWindowEx(WS_EX_CLIENTEDGE, 'LISTBOX', nil, WS_CHILD or WS_VISIBLE or LBS_STANDARD or LBS_EXTENDEDSEL, 10, 10, 200, 230, hWnd, IDC_LB, hInstance, nil);
| Wert | Bedeutung |
|---|---|
| LBS_EXTENDEDSEL | erlaubt die Auswahl mehrerer Einträge (STRG und Shift werden unterstützt) |
| LBS_MULTICOLUMN | erstellt eine Listbox mit mehreren Spalten, die horizontal gescrollt werden können |
| LBS_NOTIFY | das übergeordnete Fenster erhält eine Benachrichtigung wenn auf einen Eintrag geklickt wird |
| LBS_SORT | die Einträge werden alphabetisch sortiert |
Weitere Informationen zu Stilattributen finden Sie im MSDN oder in der Hilfe.