Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#5

AW: ListBox Namen hoch-und runterscrollen

  Alt 13. Nov 2012, 14:50
Als erstes: Dort kannst du ein Einsteiger-Tutorial runterladen, das dir hilft, die ersten Schritte mit Delphi zu bewältigen.

Vielen Dank erstmal. Edit1 ist das Eingabefeld in welches man Namen einträgt, mit Button1 wird der Name per Klick in die Listbox eingetragen, Button2 ist für das verschieben der Namen nach oben und Button3 für das Verschieben der Namen nach unten.
Dann benenne doch besser:
Edit1 ist Edit_Name
ListBox1 ist ListBox_Namen
Button1 ist But_NameEintragen
Button2 ist But_NachOben
Button2 ist But_NachUnten

Dann weißt du gleich, was dieser Button machen soll, wenn du deinen Code später mal wieder anschaust. Aber auch beim Orientieren im Quellcode ist es äußerst hilfreich, die eingesetzten Komponenten mit aussagekräftigen Bezeichnern zu versehen

Ich benötige Hilfe beim Programmieren von Button 3...
Bevor ich dir weiterhelfe, sollten wir erstmal deinen bisherigen Code durchgehen:

Delphi-Quellcode:
procedure TForm1.But_NameEintragenClick(Sender: TObject);
begin
  If zaehler < 10 then
    begin
     ListBox1.Items[zaehler]:= Edit1.Text;
     zaehler := zaehler+1;
    end;
end;
Mit dieser Methode, Strings in eine Listbox einzufügen, hagelt es Fehlermeldungen, weil der Eintrag mit dem Index [zaehler] mit großer Sicherheit noch nicht existiert. Man fügt Items hinzu, indem man die Procedure Append oder die Function Add aufruft:

ListBox_Namen.Items.Append(Edit_Name.Text); Mit Append wird einfach ein neuer Eintrag unten angehängt. Add liefert den Index des neuen Eintrags zurück. Count liefert die Anzahl aller Einträge. Hast du noch keine Einträge in der Listbox, gibt's eine Fehlermeldung, wenn du z.B. ListBox_Namen.Items[0] ansprechen willst. Um die Zählung der Einträge brauchst du dich nicht zu kümmern, das macht die Listbox automatisch.

Möchtest du die Bedingung umsetzen, daß Einträge in die Listbox nur möglich sind, solange die Anzahl der Einträge kleiner als 10 ist, schreibst du besser:

Delphi-Quellcode:
IF ListBox_Namen.Count < 10 THEN
BEGIN
...
END;
oder gleich am Anfang:

Delphi-Quellcode:
IF ListBox_Namen.Count > 9
THEN EXIT;
Damit verläßt du die Procedure, wenn die Anzahl der Einträge größer als 9 ist. Sinnvoll wäre hier auch sicher eine Message für den Anwender, damit er weiß daß und warum sein Eintrag nicht übernommen wurde:

Delphi-Quellcode:
IF ListBox_Namen.Count > 9 THEN
BEGIN
     ShowMessage('Nur 9 Einträge erlaubt!');
     EXIT;
END;

Geändert von Perlsau (13. Nov 2012 um 14:55 Uhr)
  Mit Zitat antworten Zitat