Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - von unit1 zugriff auf andere units
darkdester - Fr 22.10.04 12:47
Titel: von unit1 zugriff auf andere units
hallo leutz,
wie kann ich von unit1 auf ne var in unit2 zugreifen?
danke im voraus
mfg darkdester
Stübi - Fr 22.10.04 13:00
Hallo
Du musst die Variabel in der 2. Unit als public definieren.
Bei den Uses schreibst du den Titel deiner 2. Unit in die erste.
Und dann kanst du sie etwa so aufrufen (nicht ganz sicher)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure var Z : TUnit; X : Integer; begin Z := TUnit.Create; X := Z.Variabel; Z.Free end; |
Gruss Stübi
jasocul - Fr 22.10.04 13:16
und nicht vergessen die unit2 in der uses-Klausel der unit1 aufzunehmen.
darkdester - Fr 22.10.04 13:21
hab ich jetzt irgendwie net gecheckt O.o
jasocul - Fr 22.10.04 13:23
Wenn du meins meinst:
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:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, StdCtrls;
type TForm1 = class(TForm) private public end;
var Form1: TForm1;
implementation
{$R *.DFM}
uses Unit2; end. |
Luzzifus - Fr 22.10.04 13:25
In der Unit in der du gern Zugriff hättest (hier unit1), schreibst du die Unit in der die Variable deklariert ist (hier unit2) in die uses:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| unit unit1;
interface
uses Windows, Messages, ..., unit2; |
In der Unit in der die Variable ist auf die du gern Zugriff hättest musst du drauf achten dass eben selbige als public deklariert ist:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| unit unit2;
interface
uses Windows, Messages, ...;
type TForm2 = class(TForm) ... private public HIER DIE VARIABLE DEKLARIEREN !!! end; |
jetz aber oder?! :twisted:
Stübi - Fr 22.10.04 13:26
Du hast die 2. Unit in etwa so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| Unit2.pas . . . public X : Integer; |
Und die erste Unit sieht dann etwa so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| Unit1.pas . . . Uses ... Unit2; . . .
procedure findvariabel; var Z : TUnit; y : Integer; begin Z := TUnit.Create; y := Z.Variabel; Z.Free end; |
Besser?
Gruss Stübi
[edit] ups zu spät [/edit]
Luzzifus - Fr 22.10.04 13:28
lol na wenn er's jetzt ned gecheckt hat nachdem es 3 leute erklärt haben.. :D
darkdester - Fr 22.10.04 13:36
ehm bei mri steht jetzt
uses Unit2, Unit3;
reicht das schon?
muss das dann bei unit2 und 3 auch stehn?
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure findvariabel; var Z : TUnit; y : Integer; //Als Beispiel begin Z := TUnit.Create; y := Z.Variabel; //Variabel so rausholen Z.Free //Unbedingt wieder freigeben end; |
häh für was soll das sein?
ne andere frage
wenn ich was in ascii umwandeln muss ich doch
Chr(X: Byte): Char; (laut hilfe)
nur was meint der mit X und mit Char?
Stübi - Fr 22.10.04 13:41
Du musst bei der Unit die die Hauptunit ist (UMain) und zwar nur dort die Units ins Uses schreiben auf die du zugreiffen willst. Mein Code war ein Beispiel musst ihn auf dich anpassen! Weiss ja nicht was für einen Wert du übergibst oder holen willst.
Stübi
Luzzifus - Fr 22.10.04 13:42
Die uses müssen nur in den Units stehen in denen sie auch gebraucht werden.
Das X ist die Variable die übergeben werden muss, in diesem Fall vom Typ Byte (also z.b. die ascii-codierung eines Buchstabens oder einer Taste). Das ":Char" hinter der Parameterliste gibt den Rückgabetyp an, da dies ja eine Funktion ist.
Und nichts für ungut, aber ich glaube du solltest dir für den Anfang mal die ersten paar Kapitel eines Delphi-Buches durchlesen, ich habe nämlich das Gefühl dass dir sämtliche Grundlagen über Variablen, Prozeduren/Funktionen und überhaupt über Delphi fehlen. :?
Stübi - Fr 22.10.04 13:43
darkdester hat folgendes geschrieben: |
ehm bei mri steht jetzt
nur was meint der mit X und mit Char? |
bezieht sich das auf mein Beispiel? Ich habe dort nur die Integer so bezeichnet weil mir nichts anderes einviel (oder einfiel???)
jasocul - Fr 22.10.04 13:48
darkdester hat folgendes geschrieben: |
ehm bei mri steht jetzt
uses Unit2, Unit3;
reicht das schon?
|
wenn das in Unit1 steht, ja.
darkdester hat folgendes geschrieben: |
muss das dann bei unit2 und 3 auch stehn?
|
Nein.
darkdester hat folgendes geschrieben: |
ne andere frage
wenn ich was in ascii umwandeln muss ich doch
Chr(X: Byte): Char; (laut hilfe)
nur was meint der mit X und mit Char? |
Wie du schon sagst, ist ne andere Frage -> Neues Topic
In der Hilfe steht aber bestimmt auch ein Beispiel
darkdester - Fr 22.10.04 13:51
hm mal ausproben
ob das jetzt funzt...
OK FUNZT :D
danke leutz^^
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!