Variable übernehmen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
foxtrot29
Beiträge: 6
Registriert: Do 22. Aug 2013, 16:47

Variable übernehmen

Beitrag von foxtrot29 »

Hallo zusammen,

ich komme in meinem Programm weiter... jetzt aber hänge bei der Übergabe von einer Variablen.

Ich habe 2 Formen (Form1, Form2). In Form1 wird eine Variable namens Schwierigkeit mit einem vom Benutzer bestimmten Wer belegt.

Diese benötige ich in Form2.

Meine Fragen:
Wie kann ich Form1 in den uses-Teil von Form2 schreiben?
Kann ich dann einfach diese Variable in Form2 verwenden, wenn diese in Form1 als global definiert ist?

Vielen Dank für Eure Hilfe!

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

Re: Variable übernehmen

Beitrag von Michl »

Das was du versuchst ist wahrscheinlich eine "zirkuläre Unit-Referenz", sollte man wenns irgendwie geht vermeiden, ansonsten kannst du das mal lesen

Vorschlag: Definiere die globale Variable "Schwierigkeit" in Unit2 vor "Implementation", dann ist sie auch von "außen" nutzbar. Wenn du dann in Form1 in der uses-clause die Unit2 einbindest, kannst du in Unit1 und Unit2 auf die Variable zugreifen.

Globale Variablen sollte man nach Möglichkeit vermeiden, ist aber ein anderes Thema...

Code: Alles auswählen

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

foxtrot29
Beiträge: 6
Registriert: Do 22. Aug 2013, 16:47

Re: Variable übernehmen

Beitrag von foxtrot29 »

Danke für diene Hilfe,
so war auch mein Plan.

Wenn in Form2 im Uses teil meine Form1 reinschreibe, dann kommt immer die Meldung Fatal: Circular unit reference between unit2 and unit1

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

Re: Variable übernehmen

Beitrag von Michl »

foxtrot29 hat geschrieben:Wenn in Form2 im Uses teil meine Form1 reinschreibe, dann kommt immer die Meldung Fatal: Circular unit reference between unit2 and unit1
Ist das jetzt noch aktuell?! Das ist der Versuch einer zirkulären Unit-Referenz, das geht nicht, es sei denn, siehe Link oben!

Wenns noch aktuell ist und deine Mainform in Unit2 liegt, dann ersetze oben in meinem Post Unit1 mit Unit2 und andersrum!

Wenn die Mainform in Unit1 liegt, musst du in Unit2 in der uses-clause die Unit1 entfernen (ein Zugriff von einer untergeordneten Unit auf die MainForm/MainUnit ist kein guter Programmierstil und bringt nur jede Menge Ärger mit sich)!!!

Code: Alles auswählen

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

foxtrot29
Beiträge: 6
Registriert: Do 22. Aug 2013, 16:47

Re: Variable übernehmen

Beitrag von foxtrot29 »

Danke hab das problem gelöst bekommen

Antworten