Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#5

Re: Auf anderes Fenster zugreifen

  Alt 2. Jul 2005, 11:44
Wie ich in einem anderen bereits schrieb: .Net kennt keien globalen Variablen!
Auch wenn D.Net das vor dir versteckt wird es nicht mehr standardmäßige diese "Dinger" vom Formdesigner anlegen.
Du kannst zwar im Formdesigner festlegen welche Sichtbarkeit ein Control haben soll, aber ich kann keinen Sinn Sinn darin sehen sehen, warum ein Form Zugriff auf Controls eines anderen haben sollte.
Um dir mal einen einfachen Weg zu zeigen (nicht unbedingt optimal, aber für den Anfang verständlich ):
Du könntest dem 2 Form. eine Property verpassen, die den Owner auf den Typen deines Hauptformulars wandelt.
property MainForm :MainForm read Owner as MainForm; Wenn das n D.Net nicht geht, dann:
Delphi-Quellcode:
property MainForm :MainForm read get_MainForm;
...
function AnderesForm.get_MainForm : MainForm;
begin
   result := Owner as MainForm;
end;
Dadurch kannst du im 2. Form easy auf Properties des MainForms zugreifen ohne ständig umwandeln zu müssen.

Wenn du das Form anlegst übergibst du ihm das aufrufende Formular als Owner:
Delphi-Quellcode:
using Dlg := AnderesForm.Create() do
begin
   Dlg.Owner := self;
   Dlg.ShowDialog();
end;
Das MainForm braucht nun natürlich auch eine Property, die dich den text des Labels von außerhalb ändern lässt:
property DingsBums : string read label1.Text write label1.Text; Falls D.Net keine inline Properties kennt, musst du es wie oben mit einem getter & setter machen.

Im anderen Form reicht nun ein:MainForm.DingsBums := 'Test'; Nachtrag: Ups, da stand doch noch ein "new Anderesform()"
  Mit Zitat antworten Zitat