Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Prozeduren einer anderen Unit nutzen
Nagelbrett - So 18.05.03 03:20
Titel: Prozeduren einer anderen Unit nutzen
hi, ich hab in meinem programm ein zweites formular eingebaut, wofür ja dann eine neue Unit2 angelegt wird...
dummerweise kann ich innerhalb dieser unit weder meine funktionen/prozeduren aus Unit1 nutzen, noch scheint er die klassen von dort zu kennen...
da hilft auch ein "Uses Unit1" nichts... und wenn ich einfach Unit1. vor die prozeduren schreibe funktioniert's auch nicht
wie kann ich diese denn nun in der neuen unit nutzen?
die sache ist folgende... ich möchte gern aus der zweiten unit heraus einen globalen record der unit1 verändern, sodass es mir auch nichts bringen würde, alle klassen/variablen etc. in unit2 neu zu definieren :(
wie mach ich das also?
hansg - So 18.05.03 08:59
Hi, du mußt die procedure im Public Teil deklarieren
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| type TForm1 = class(TForm) private { Private-Deklarationen }
public Procedure Test ;
{ Public-Deklarationen } end; |
den Aufruf in Form2 macht Du dann so:
MathiasH - So 18.05.03 09:35
ich weis ja nicht wie du das machen willst, aber ich definiere meine variablen und procedure nurnoch selten als teil eines formulars, sondern immer im var abschnitt der unit, zu dem Problem:
solange nur ein fenster auf das andere zugreifen soll ist es kein problem, aber wenn jedes fenster auf jedes andere zugreifen können soll wird es problematisch, denn dabei entstehen leicht Zirkelbezüge:
Quelltext
1: 2: 3:
| unit1 ... uses unit2; |
Quelltext
1: 2: 3:
| unit2 ... uses unit1; |
in diesem fall muss das zweite Fenster im 2. uses teil(nach implementation einfügen) auf das erste referenzieren, dadurch entsteht aber der nachteil, dass man objekte in unit2 nicht von denen in unit 1 ableiten kann, da sie ja noch nicht compiliert wurden. Dieses Probleme löse ich idr so, dass ich für meine zentralen funktionen/records, konstanten.... eine eigene unit(kein Formular!) anlege, die dann von allen anderen referenziert werden kann.
IO-sys/MathiasH
Nagelbrett - So 18.05.03 15:29
thx für die tips
prinzipiell funktioniert das jetzt, ich hatte nur einen sehr verwirrenden fehler mit einer der variablen gemacht, aber jetzt klappts :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!