Autor |
Beitrag |
darkdester
      
Beiträge: 100
|
Verfasst: 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
      
Beiträge: 331
Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
|
Verfasst: 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
_________________ Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Fr 22.10.04 13:16
und nicht vergessen die unit2 in der uses-Klausel der unit1 aufzunehmen.
|
|
darkdester 
      
Beiträge: 100
|
Verfasst: Fr 22.10.04 13:21
hab ich jetzt irgendwie net gecheckt O.o
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: 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
      
Beiträge: 200
Win2K
D6 Prof
|
Verfasst: Fr 22.10.04 13:25
Zuletzt bearbeitet von Luzzifus am Fr 22.10.04 13:50, insgesamt 2-mal bearbeitet
|
|
Stübi
      
Beiträge: 331
Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
|
Verfasst: 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]
_________________ Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.
|
|
Luzzifus
      
Beiträge: 200
Win2K
D6 Prof
|
Verfasst: Fr 22.10.04 13:28
lol na wenn er's jetzt ned gecheckt hat nachdem es 3 leute erklärt haben.. 
|
|
darkdester 
      
Beiträge: 100
|
Verfasst: 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
      
Beiträge: 331
Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
|
Verfasst: 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
      
Beiträge: 200
Win2K
D6 Prof
|
Verfasst: 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
      
Beiträge: 331
Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
|
Verfasst: 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
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: 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 
      
Beiträge: 100
|
Verfasst: Fr 22.10.04 13:51
hm mal ausproben
ob das jetzt funzt...
OK FUNZT
danke leutz^^
|
|