Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Variable an "andere" unit übergeben ?

  Alt 29. Jul 2004, 20:25
Hallo Freecer,

Vorsicht, denn ich denke du bist grad dabei was zu verwechseln. Wenn du von Labels und buttons und Forms spricht, handelt es sich dabei um Klassen, und nicht zwangsweise um Units. Das ist ein bedeutender Unterschied. Eine Unit ist eine Datei, die Proceduren, Variablen, und Klassen speichern kann. Wenn du aber den Inhalt eines Edit Feldes aus Form1 ansprechen willst, geht das über die dafür erzeugte Klasse. Dafür erstellt Delphi dir automatisch die Klasse TForm1 = class(TForm), und unter der ganzen Klassendefinition wird dann eine Variable (genauer eigentlich ein Pointer) definiert, der auf die TForm1 Klasse verweist... Und genauso ist es mit der Form2, auch wenn die in einer separaten Unit definiert ist.

Soweit zur Klassenstruktur. Willst du jetzt, wie du schreibst den Inhalt des edit1 Feldes aus Form1 in das Edit1 Feld aus Form2 schreiben, muss du erst im implementation Teil von unit1 die unit2 einbinden. Geht ganz einfach mit (direkt unter implementation):
uses unit2 ; .
Somit machst du die Unit2 in Unit2 zugänglich. Und da Form2 eine Klasse ist, greifst du über die Variable Form2 drauf zu. Um dann auf die ganzen Eigenschaften und Funktionen und Prozeduren aufzurufen, geht das dann so, um eben dein edit Feld aus Form2 zu füllen:
Form2.edit1.text := edit1.text ; OK, das dürfte für sich sprechen. Durch einen Punkt greifst du auf die Eigenschaften und Methoden einer Klasse zu. Auf Edit1 also eben mit Form2.edit1. Und da ein Edit Feld ebenfalls wieder eine Klasse ist, mit etlichen Eigenschaften und Methoden, machst du noch ein Punkt und du kanns drauf zugreifen. Für den Inhalt eines Edit Feldes ist die Eigenschaft "text" zuständig... Also kannst du mit Form2.edit1.text den Inhalt von besagtem Feld ändern... Alles klar soweit.

Gruß,
Tom
  Mit Zitat antworten Zitat