Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Listbox (https://www.delphipraxis.net/97813-listbox.html)

crz 16. Aug 2007 19:35


Listbox
 
// Tut mir Leid, hab das im Falschen Thema gepostet, hoffe man kann mir dennoch helfen!

Hallo allerseits.
Ich beschäftige mich seit kurzen in der Schule mit Delphi, und wir haben heute eine aufgabe bekommen, mit einer Listbox die 11er Reihe zu programmieren. Also sprich 11,22,33, und so weiter. Nun habe ich aber das große Problem,da ich nicht weiß wie ich an sowas heran gehe. Ich denke mal ich muss eine for schleife verwenden, jedoch weiß ich nicht wie genau ich diese anwende.
Kann mir jemand vielleicht sowas derartiges programmieren,oder die Befehle der Listbox schreiben? Ich weiß im Moment einfach nicht weiter!!!

Wäre lieb,
Grüße Hannes!

mkinzler 16. Aug 2007 19:38

Re: Listbox
 
Was ist genau das Problem? Der Umgang mit einer ListBox? Die Schleife? das Zählen?
Was hast du schon?

fLaSh11 16. Aug 2007 19:40

Re: Listbox
 
for-Schleifen-Lösung:
Delphi-Quellcode:
for i := 1 to 10 do
  ListBox1.Items.Add(IntToStr(i * 11));
until-Lösung:
Delphi-Quellcode:
i := 0;
repeat
  i := i + 11;
  ListBox1.Items.Add(IntToStr(i));
until (i = 110);

mkinzler 16. Aug 2007 19:41

Re: Listbox
 
@fLaSh11: Schreibst du dann auch die Arbeit für ihn?

pstruh 16. Aug 2007 19:41

Re: Listbox
 
Hallo Hannes,
wollen wir es mal versuchen ...
1. wir setzen voraus, du hast eine Listbox auf dem Formular placiert
2. klar, die Werte stellen wir mit einer schleife bereit
3. in der Listbox sind nur Strings, also muss aus der Zahl (integer) ein String gemacht werden
4. die (Zahlen)Strings werden dann in die Listbox geschrieben >> ListBox.Items.Add(IntToStr(nnn))

Willst du es mal in diesen Schritten versuchen? Eine fertige Lösung abzutippen ist nicht so wirklich lehrreich?! Versuch's doch mal - viel Glück

fLaSh11 16. Aug 2007 19:45

Re: Listbox
 
@mkinzler: So lernt er genauso gut finde ich, weil er jetzt den QC seziert wie das und jenes funktioniert und was das bewirkt. Außerdem kenne ich die Forenregeln und stelle fest, dass das kein komplette HA ist. Er hat das wohl im Unterricht nur nicht recht verstanden und möchte jetzt sehen wie's funktioniert und nicht irgendwelche Erklärungen.

mkinzler 16. Aug 2007 19:47

Re: Listbox
 
Zitat:

...wir haben heute eine aufgabe bekommen, ...
Kann mir jemand vielleicht sowas derartiges programmieren
Hört sich schon nach HA an.

crz 16. Aug 2007 19:48

Re: Listbox
 
Es geht nicht ums abtippen. Nur ich habe leider keine Ahnung davon, da das neuland für mich ist, und ich in den Kurs dazugekommen bin, und ich muss mir das alles in kürzester Zeit nun aneignen.
Aufjedenfall schonmal Danke für die Tipps!!

@mkinzler: Es war eine Aufgabe, keine Hausaufgabe. Und da ich nicht direkt hinterher hinken will, will ich das nur verstehen, wie genau das funktioniert.

mkinzler 16. Aug 2007 19:51

Re: Listbox
 
Zitat:

Und da ich nicht direkt hinterher hinken will, will ich das nur verstehen, wie genau das funktioniert.
Dann ist ok. Du würdest dir sonst selber nämlich keinen Gefallen tun.

crz 16. Aug 2007 19:54

Re: Listbox
 
Was wäre denn für diese Aufgabe besser? for schleife oder repeat until ?
gibt es vor - / nachteile?

fLaSh11 16. Aug 2007 19:57

Re: Listbox
 
Also...

1) Wir überlegen uns, welche Schleife wir benötigen (richtig erkannt, dass man eine Schleife braucht und nicht einfach die komplette 11er-Reihe nacheinander einträgt).
for-Schleife ist nicht schlecht. Aber wir müssen uns darüber im Klaren darüber sein, dass man den Zähler bei einer for-Schleife immer nur um 1 erhöhen kann (nciht wie in C++, ...). Also gäbe es die Alternativen repeat ... until oder while ... do. Aber wir können dennoch eine for-Schleife benutzen und zwar mit einem mathematischen Trick :)... Wir erhöhen den Zähler zwar immer nur um 1 aber multiplizieren ihn nach der Erhöhung mit 11, dann bekommen wir auch die 11er-Reihe.
2) die ListBox. Wir fügen Strings in unsere ListBox ein mit TListBox.Items.Add(string). Also benötigen wir davor noch eine Konvertierung Int -> Str, die bekanntlich IntToStr heißt.
3) Grundgerüst:
Delphi-Quellcode:
var
  i: integer
begin
  for i := 1 to 10 // also 11 bis 110
    //ListBox...
end;
4) Das Innenleben der Schleife sieht dann wie folgt aus:
Delphi-Quellcode:
ListBox1.Items.Add(IntToStr(i * 11)); //Zähler wie oben genannt mit 11 multiplizieren!
und nun noch zusammenfügen!

mkinzler 16. Aug 2007 19:59

Re: Listbox
 
In diesem Fall egal. Es macht eigentlich nur einen Unterschied, wenn der Code innerhalb entweder mindest einmal oder möglicherweise gar keinmal ausgeführt werden soll.
Bei der While-Schleife handelt es sich um eine abweisende (Entry-Condition-Loop), wenn die Bedingung am anfang nicht wahr ist, wird die Schleife erst garnicht ausgeführt.
Bei der Until-Schleife handelt es sich um eine nicht abweisende (Exit-Condition-Loop). Hierbei erfolgt die Prüfung am Ende der Schleife, deshalb wird der Schleifenkörper immer mindestens einmal ausgeführt.

crz 16. Aug 2007 20:01

Re: Listbox
 
Aaahh. Mir geht ein Lichtlein auf. Haha ;)
Das ist dann doch gar nicht so selbstmörderisch wie ich dachte.
Vielen Dank!
Ich setz mich gleich mal dran, und probier es mal aus







Ich hätte da noch eine Frage... Delphi gibt es nicht für mac oder? (Ich rede jetzt mal nicht von den Intel duo core 2 mit windows"emulator")

mkinzler 16. Aug 2007 20:03

Re: Listbox
 
Nein es gibt bisher kein natives Delphi für MacOS. Aber Lazarus/FreePascal

Christian Seehase 16. Aug 2007 20:09

Re: Listbox
 
Moin Hannes,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Zitat:

Zitat von crz
Was wäre denn für diese Aufgabe besser? for schleife oder repeat until ?

von der Aufgabenstellung her hätte ich meine Zweifel, dass Du etwas anderes als eine for-Schleife verwenden solltest, denn ich habe den Eindruck, als wäre im Unterricht noch nicht so sehr auf die verschiedenen Möglichkeiten eingegangen worden.
Eine for-Schleife ist halt die ursprünglichste Form.

Zitat:

Zitat von mkinzler
Bei der While-Schleife handelt es sich um eine abweisende (Entry-Condition-Loop)

ein anderer Begriff wäre hier kopfgesteuerte-Schleife.

Zitat:

Bei der Until-Schleife handelt es sich um eine nicht abweisende (Exit-Condition-Loop).
und hier wäre es dann eine (Suprise, Surpise ;-)), fussgesteuerte-Schleife.

DP-Maintenance 16. Aug 2007 20:38

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Die Delphi-IDE" nach "Sonstige Fragen zu Delphi" verschoben.
Nicht gerade die IDE betreffend ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz