AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TString führt "pop" nicht aus

Offene Frage von "HiWieGehts"
Ein Thema von DerVicko · begonnen am 2. Jun 2013 · letzter Beitrag vom 2. Jun 2013
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.980 Beiträge
 
Delphi 12 Athens
 
#1

AW: TString führt "pop" nicht aus

  Alt 2. Jun 2013, 07:02
Ich denke eher, dass pop durchaus ausgeführt wird. Funktioniert denn nach dem Klicken von Button2 noch Button3, wenn du nur einen Waggon hinzugefügt hattest?

Das reine Entfernen aus deinem Stack führt aber nicht dazu, dass du auch etwas siehst. Denn was du in deinem Fenster siehst ist nur die Listbox, und die änderst du ja nicht beim Entfernen.
Du musst also beim Ändern des Stack auch deine Listbox ändern. Beim Hinzufügen fügst du den Eintrag auch in die Listbox hinzu. Was musst du also beim Entfernen machen? Den ersten Eintrag auch aus der Listbox löschen würde ich vorschlagen. (Wobei du vorher prüfen solltest, ob der Stack leer ist.)

Dann noch eine Bemerkung am Rande:
In der vorgegebenen Unit mStack heißt der Stack TStack. Das T ist dabei ein Kennzeichen dafür, dass es sich um eine Klasse handelt. Dann kann man besser erkennen, dass es die Klasse ist (der Bauplan für einen Waggon) und kein konkret erzeugtes Objekt (das einen existierenden Waggon repräsentiert). Deshalb solltest du auch deine Klasse Waggon besser TWaggon nennen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
HiWieGehts

Registriert seit: 19. Aug 2005
101 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TString führt "pop" nicht aus

  Alt 2. Jun 2013, 07:39
Hallo,

ich hätte gesagt, es gibt nur einen Waggon. In diesen wird der neue Wert eingetragen und der alte überschrieben. Beim Lesen wird dann immer der zuletzt eingetragene Wert angezeigt. Pop ist OK.
Und noch so ein Gedanke: bei dir ist Zug = Waggon - Zug: Waggon. Ich kenne die Aufgabenstellung nicht, aber logisch wäre aus meiner Sicht, wenn ein Zug aus mehreren Waggons bestehen könnte. Es kann aber auch sein, dass in einem Waggon mehrere Ladungen transportiert werden. Dann müsste aber der Waqgon anders definiert sein.
Benutze mal den Debugger - dann wird sich das Problem rasch lösen.
LG, HiWieGehts

Geändert von HiWieGehts ( 2. Jun 2013 um 07:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.980 Beiträge
 
Delphi 12 Athens
 
#3

AW: TString führt "pop" nicht aus

  Alt 2. Jun 2013, 08:38
Ja, stimmt, es wird auch nur ein Waggon beim Programmstart erzeugt. Statt in den einen Wert zu setzen soll sicher auch im Button1 ein neuer Waggon erzeugt werden.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#4

AW: TString führt "pop" nicht aus

  Alt 2. Jun 2013, 08:40
BTW: TObject.Destroy
Zitat:
Rufen Sie Destroy nicht direkt auf. Verwenden Sie stattdessen Free. Die Methode Free überprüft, ob die Objekt-Referenz nicht bereits nil ist und ruft Destroy nur bei Bedarf auf.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
DerVicko

Registriert seit: 2. Jun 2013
3 Beiträge
 
#5

AW: TString führt "pop" nicht aus

  Alt 2. Jun 2013, 14:51
Es lag anscheinend wirklich an dem felhenden T vor Waggon
Jetzt funktioniert alles. (und daran haben mein Lehrer und ich eine ganze Unterrichtseinheit verballert...)
@ jaenicke
Das ich die Änderung in meiner Listbox nicht sehen kann ist mir bewusst, dafür habe ich ja Button3 genutzt.
Ich wollte erstmal den absoluten Grundsatz haben, das ganze Drumherum mit Schleifen, Ausgabe etc. kommt später.
@ HiWieGehts
Der Name der Klasse ist relativ belanglos, die Aufgabenstellung sieht nur vor, dass sich Zahlen von StackA nach StackC bewegen, da fand ich Zug und Waggon ganz passend.

Damit ist dann meine Frage beantwortet (ich weiß ja nicht ob ein Mod hier Threads schließen muss oder nicht)
  Mit Zitat antworten Zitat
HiWieGehts

Registriert seit: 19. Aug 2005
101 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TString führt "pop" nicht aus

  Alt 2. Jun 2013, 21:07
Eines ist sicher, an dem T vor Waggon lag es nicht! Da hat sich sonst was verändert. Ob Waggon oder TWaggon ist grundsätzlich egal. Dabei handelt es sich nur um eine Definition, die dem Programmierer die Lesbarkeit des Codes vereinfachen soll. Für Delphi spielt das keine Rolle.
LG, HiWieGehts
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 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-2025 by Thomas Breitkreuz