Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Unterschied zwischen pred und succ (https://www.delphipraxis.net/14790-unterschied-zwischen-pred-und-succ.html)

Thunderchild 15. Jan 2004 17:17


Unterschied zwischen pred und succ
 
Tach,

ich habe in einem Prog den Datentyp
Delphi-Quellcode:
type tProtocol=(tpMS,tpTCP)
Damit indiziere ich verschiedene Arrays, in denen Daten für die zwei Protokolle gespeichert werden.

In einer Combobox werden die Empfänger aufgelistet, die sich zwischen den Protokollen unterscheiden.
In einer Prozedur aktualisiere ich die Combobox, nachdem ich zwischen den Protokollen gewechselt habe.

Vor dem Wechseln speichere ich den aktuellen Text im Eingabefeld in einem Array
Delphi-Quellcode:
var LastRecipient:array[tProtocol] of string;
So kann ich beim Wechsel zurück den alten Wert wiederherstellen.

Jetzt zur Frage:
In einer lokalen Variable Protocol der Prozedur speichere ich das Protokoll, in das gewechselt wurde.
Um den noch aktuellen Combo-Text zu speichern, der aber inzwischen zum alten Protokoll gehört, benutze ich
Delphi-Quellcode:
LastRecipient[pred(protocol)]:=ComboBox.Text;
Hier habe ich immer eine Zugriffsverletzung bekommen, wenn protocol=tpTCP war. Als ich zum Test mal succ() statt pred() benutzt habe, kam diese nicht mehr.

Gibt es da einen Unterschied zwischen den beiden Befehlen? Ich dachte immer, succ(max) ergibt min und pred(min) ergibt max.

Robert_G 15. Jan 2004 17:35

Re: Unterschied zwischen pred und succ
 
Normalerweise:
pred = Vorgänger ( pred[ecessor] )
succ = Nachfolger (succ[essor])

Hansa 15. Jan 2004 17:36

Re: Unterschied zwischen pred und succ
 
Es geht um zwei verschiedene Möglichkeiten :?: Was soll da pred und succ? Es gibt nur einen Vorgänger und Nachfolger. Wenn Du jetzt 0 und 1 hast, so mußt Du ausschließen, daß 0 nur einen Nachfolger hat, keinen Vorgänger und eins nur einen Vorgänger und keinen Nachfolger. Also brauchst Du nur 0 und 1. Deshalb so eine komplizierte Konstruktion wegen 2 Zahlen ???

Thunderchild 16. Jan 2004 12:22

Re: Unterschied zwischen pred und succ
 
Zuerst hab ichs ja über einen einfachen Zahlenindex gemacht: array[0..1] of ....
Aber weil ich mir vor kurzem vorgenommen habe, "sauberer" zu schreiben, wollte ich das mal gekapselt machen, indem ich halt einen eigenen Typ benutze. So weiß ich dann bei jedem Aufruf - auch nach längerer Zeit der Abstinenz vom Quelltext - was ich da aufrufe.
Und leider geht halt für protocol:tProtocol nicht Feld[not protocol] oder Feld[1-protocol]. Deswegen verwende ich pred() bzw. succ()

Bevor mir das einfiel habe so den anderen Wert genutzt:
Delphi-Quellcode:
inc(protocol);
// Verwendung des Wertes
dec(protocol);


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.

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