Forum: Sonstige Fragen zu Delphi
Delphi
by Hybrid666,
17. Jun 2009
und wo gibst du (wie in meinem fall) die 2. unterliste frei? dann wird der code nämlich schon länger.
Forum: Sonstige Fragen zu Delphi
Delphi
by Hybrid666,
17. Jun 2009
Ich glaub du solltest dir erstmal klar drüber werden was rekursion ist...
Rekursion heißt die Funktion ruft sich selbst wieder auf, das heißt wenn ich in FreeMakro wieder FreeMakro aufrufe, dann IST das rekursion und kein iterativer ansatz!
Forum: Sonstige Fragen zu Delphi
Delphi
by Hybrid666,
17. Jun 2009
Muss ganz ehrlich sagen, ich teil deine meinung nicht. "und man kann mit seinen Kenntnissen angeben" -> ich denk jeder Programmierer sollte was von Rekursion wissen, das hat nichts mit angeben zu tun.
Rekursion kann extrem Praktisch sein, auch bei 5000 ineinander verschachtelten elementen. Wenn man seine verschachtelung versteht, dann geht das auch mit der Rekursion.
Und um rekursion zu...
Forum: Sonstige Fragen zu Delphi
Delphi
by Hybrid666,
15. Jun 2009
nein muss ich nicht.
Ich prüfe ob das aktuelle element nicht nil ist, wenn ja, dann
... prüfe ob die unterliste PCommands existiert -> FreeCommand aufrufen
... prüfe ob .Next existiert, wenn ja, erst FreeMakro (Anchor.Next) aufrufen
dann erst Aktuelles element freigeben
das heißt, die rekursion ist so aufgebaut, das vor dem zerstören des aktuellen elements, erst das nächste...
Forum: Sonstige Fragen zu Delphi
Delphi
by Hybrid666,
15. Jun 2009
Der.Kaktus:
Die Rekursion sorgt dafür, dass es am Ende anfängt ;)
und ja ihr habt recht, .next zeigt ins nirvana, 2 semester uni, immer wurde und eingeprügelt "initialisiert eure variablen"....irgendwie vergisst man sowas aber am ehesten ^^ danke!
Forum: Sonstige Fragen zu Delphi
Delphi
by Hybrid666,
15. Jun 2009
Hi,
ich muss sagen das ist das erste mal das ich großartig mit Zeigern in Delphi arbeite, darum auch hier gleich eine Frage, zu der ich nach langem suchen auch keine antwort habe.
Ich habe die Folgende Pointerstruktur:
PCommands = ^TCommands;
TCommands = record
KeyInput : Boolean;
Input : TInputType;
Parameter : String;