Variablen einer anderen Prozedur entnehmen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
JonasT
Beiträge: 2
Registriert: Sa 22. Feb 2014, 15:08

Variablen einer anderen Prozedur entnehmen

Beitrag von JonasT »

Hallo,

ich habe in eine procedure variablen folgendermaßen deklariert: k[1] bis k[61]. Diese würde ich gern in einer anderen procedure mit aufgreifen.
Ist das möglich und wenn ja wie?

Benutzeravatar
theo
Beiträge: 10900
Registriert: Mo 11. Sep 2006, 19:01

Re: Variablen einer anderen Prozedur entnehmen

Beitrag von theo »

Ist die Frage ernst gemeint, oder kommt gleich ein Werbelink in der Fusszeile hinterher?

Falls ernst gemient: Ein paar Pascal Grundlagen kann man z.B. hier lernen:
http://www.marcocantu.com/epascal/German/

JonasT
Beiträge: 2
Registriert: Sa 22. Feb 2014, 15:08

Re: Variablen einer anderen Prozedur entnehmen

Beitrag von JonasT »

die frage ist wirklich ernst gemeint. ich möchte zufällig ein k[...] in einer anderen prozedur aufnehmen und weiß nicht wie, ich das k zufällig mache und es dann noch in eine andere procedure aufnehme

diogenes
Beiträge: 200
Registriert: So 11. Jul 2010, 18:39
OS, Lazarus, FPC: Linux
CPU-Target: 64 Bit
Wohnort: Wien
Kontaktdaten:

Re: Variablen einer anderen Prozedur entnehmen

Beitrag von diogenes »

Gut, dann werde ich die Frage auch ernst bearbeiten: Nein, das geht nicht.

Es widerspricht der Pascal-Philosophie eklatant, einen innerhalb einer Prozedur deklarierten Bezeichner außerhalb des Bezeichners zu verwenden und ist daher verboten. Auch technisch ist das unsinnig, weil der Speicherplatz für Variablen auf dem Prozessorstapel liegt. Der Speicherplatz ist zur anderen Verwendung freigegeben, wenn das Programm außerhalb der Prozedur abläuft.

Wenn Du also Daten zwei Prozeduren zur Verfügung stellen willst, musst Du sie global deklarieren. Wenn Du die Daten außerhalb einer Unit geheim halten willst, ist der Implementationsabschnitt der richtige Ort für die Deklaration.
Ceterum censeo computatores per Pascal docendos esse.

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Variablen einer anderen Prozedur entnehmen

Beitrag von Michl »

@JonasT: Besser ist es, Du erklärst etwas weitläufiger, was Du vorhast, dann kann man Dir auch einen brauchbaren Tip geben. Je nachdem, was Du eingentlich beabsichtigst, kann die Antwort auf Deine Frage lauten: Globale Variable, eine eigene Klasse, definiert als eine Variable einer Klasse, ein Record, ein Zeiger, ein Variablen-/ oder Konstantenparameter einer Procedure/Function oder oder oder...

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Antworten