Autor Beitrag
darkdester
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100



BeitragVerfasst: Fr 22.10.04 12:47 
hallo leutz,

wie kann ich von unit1 auf ne var in unit2 zugreifen?

danke im voraus

mfg darkdester
Stübi
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 331

Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
BeitragVerfasst: 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)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure
var
  Z         : TUnit;
  X         : Integer; //Als Beispiel
begin
  Z := TUnit.Create;
  X := Z.Variabel;  //Variabel so rausholen
  Z.Free  //Unbedingt wieder freigeben
end;


Gruss Stübi

_________________
Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 22.10.04 13:16 
und nicht vergessen die unit2 in der uses-Klausel der unit1 aufzunehmen.
darkdester Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100



BeitragVerfasst: Fr 22.10.04 13:21 
hab ich jetzt irgendwie net gecheckt O.o
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 22.10.04 13:23 
Wenn du meins meinst:
ausblenden 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
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

uses
 Unit2; // Dies darfst du nicht vergessen, sonst hast du keinen Zugriff auf Unit2 !!!!!!!!

end.
Luzzifus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 200

Win2K
D6 Prof
BeitragVerfasst: 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:

ausblenden 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:
ausblenden 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
    { Private declarations }
  public
    { Public declarations }
    HIER DIE VARIABLE DEKLARIEREN !!!
  end;

jetz aber oder?! :twisted:


Zuletzt bearbeitet von Luzzifus am Fr 22.10.04 13:50, insgesamt 2-mal bearbeitet
Stübi
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 331

Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
BeitragVerfasst: Fr 22.10.04 13:26 
Du hast die 2. Unit in etwa so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Unit2.pas
.
.
.
public
  X : Integer;

Und die erste Unit sieht dann etwa so aus:
ausblenden 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; //Als Beispiel  
begin  
  Z := TUnit.Create;  
  y := Z.Variabel;  //Variabel so rausholen  
  Z.Free  //Unbedingt wieder freigeben  
end;


Besser?

Gruss Stübi

[edit] ups zu spät [/edit]

_________________
Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.
Luzzifus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 200

Win2K
D6 Prof
BeitragVerfasst: Fr 22.10.04 13:28 
lol na wenn er's jetzt ned gecheckt hat nachdem es 3 leute erklärt haben.. :D
darkdester Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100



BeitragVerfasst: 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?

ausblenden 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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 331

Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
BeitragVerfasst: 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

_________________
Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.
Luzzifus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 200

Win2K
D6 Prof
BeitragVerfasst: 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. :?


Zuletzt bearbeitet von Luzzifus am Fr 22.10.04 13:45, insgesamt 2-mal bearbeitet
Stübi
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 331

Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
BeitragVerfasst: 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???)

_________________
Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100



BeitragVerfasst: Fr 22.10.04 13:51 
hm mal ausproben
ob das jetzt funzt...


OK FUNZT :D

danke leutz^^