Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - type-Deklaration und Variablen in allen Projektunits
bf109g.01 - Do 25.08.11 14:17
Titel: type-Deklaration und Variablen in allen Projektunits
Hallo, ich habe zwei verschiedene Recordtypen. Und zwei jeweils dazugehörige Arraytypen für diese Records angelegt.
Außerdem existieren natürlich noch mehrere Arrays, welche diesen Typen entsprechen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| type TFrage = record [...] end; FragenArray = array[1..150] of TFrage;
var AFragen, AFilter: FragenArray;
type TKategorie = record [...] end; KategArray = array[1..50] of TKategorie;
var AKateg, Löschliste: KategArray; |
Mein Problem ist, dass ich von 2 (uns später vllt 3) verschiedenen Units auf ein und dieselben Record-Arrays Zugriff benötige.
Alternative wäre den gleichen Programmcode in jeder Unit neu einzufügen, nach jedem Zugriff in einer Datei auf der Festplatte zu speichern und von dort mit einer anderen Unit weiterzuarbeiten.
Meiner Meinung nach ist das weder elegant noch effizient, deshalb wüsste ich gerne, wo/wie ich das deklarieren kann, damit alle Units Zugriff auf die RecorsTypen, die Arraytypen und die unter var deklarierten Arrays mit den Daten haben.
Narses - Do 25.08.11 15:17
Moin!
Packe die gemeinsamen Deklarationen in eine eigene Unit und die bindest du dann per uses da ein, wo du sie brauchst. :idea:
cu
Narses
bf109g.01 - Do 25.08.11 15:22
Narses hat folgendes geschrieben : |
| Packe die gemeinsamen Deklarationen in eine eigene Unit und die bindest du dann per uses da ein, wo du sie brauchst. :idea: |
Schon probiert, klappte nicht.
Wie/ unter welchem Punkt muss ich die Infos in die Unit schreiben?
So sieht meine Deklarationsunit aus, die anderen Units erkennen die ArrayTypen nicht.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| unit Deklaration;
interface
uses Forms, Classes, Graphics; type TKategorie = record [...] end; KategArray = array[1..50] of TKategorie;
type TFrage = record [...] end; FragenArray = array[1..150] of TFrage;
implementation
end. |
Narses - Do 25.08.11 17:25
Moin!
bf109g.01 hat folgendes geschrieben : |
| Schon probiert, klappte nicht. |
Was heißt das als Fehlermeldung? :lupe: ;)
bf109g.01 hat folgendes geschrieben : |
| Wie/ unter welchem Punkt muss ich die Infos in die Unit schreiben? |
Ist schon richtig so. :zustimm:
cu
Narses
Xion - Do 25.08.11 22:25
bf109g.01 hat folgendes geschrieben : |
| die anderen Units erkennen die ArrayTypen nicht. |
Du musst in deinen andren Units die Unit "Deklaration" bei uses einbinden :nixweiss:
bf109g.01 hat folgendes geschrieben : |
Mein Problem ist, dass ich von 2 (uns später vllt 3) verschiedenen Units auf ein und dieselben Record-Arrays Zugriff benötige. |
In dem Fall müsstest du natürlich auch die Arrays selbst in eine Unit packen (also bei "Deklaration" mit rein)
Bergmann89 - Fr 26.08.11 14:59
Hey,
so wie das aussieht willst du die Arrays als globale Variable definieren. Das sollte man aber vermeiden, weil man bei globalen Varaiblen schnell den Überblick verliert. Wenn du uns beschreibst, was genau du vor hast, dann könn wir dir vlt eine besser Lösung für dein Problem geben ;) Aber um erstma deine Frage zu beantworten:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| unit uTypes;
interface
type TTestArray = array of Integer;
var MyTestArray: TTestArray;
implementation
end. |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uTypes;
type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure FormCreate(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin for i := 0 to High(MyTestArray) do Memo1.Lines.Add(IntToStr(MyTestArray[i])); end;
end. |
MfG Bergmann.
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!