![]() |
Re: mit 1. Form auf 2. Form zugreifen
Für was, eine Variable im Interface, öffentlicher Formmember oder property?
|
Re: mit 1. Form auf 2. Form zugreifen
Delphi-Quellcode:
Nun kannst du im Form2 auf Form1.Irgendwas zugreifen!
private
FIrgendwas : Integer; public property Irgendwas : Integer read FIrgendwas write FIrgendwas; end; implementation //.. FIrgendwas:=99; //.. |
Re: mit 1. Form auf 2. Form zugreifen
Hallo Affemitwaffe93,
oder so: z.B.: Form2 – Aufrufen:
Delphi-Quellcode:
In Form2 deklarieren:
procedure TForm1.Button1Click(Sender: TObject);
var sTestString: String; begin sTestString:= 'Aufruf '; TForm2.GetData1 (sTestString); ShowMessage('Das ist ein TestString: '+sTestString); end;
Delphi-Quellcode:
Edit: end; nachgereicht
public
{ Public-Deklarationen } class function GetData1 (var sString: String): Boolean; implementation class function TForm2.GetData1 (var sString: String): Boolean; begin with TForm2.Create(nil) do try Result := ShowModal=mrok; // ModalResult auf mrOk im OI einstellen if Result then begin sString:= sString+ 'Das ist ein Test'; end; finally free; end; end; Bis bald Chemiker |
Re: mit 1. Form auf 2. Form zugreifen
Delphi-Quellcode:
Hmm, sind begin und end da richtig gesetzt?
if Result then
begin sString:= sString+ 'Das ist ein Test'; finally free; end; Schaut irgendwie komisch aus? |
Re: mit 1. Form auf 2. Form zugreifen
Hallo taaktaak,
Zitat:
Bis bald Chemiker |
Re: mit 1. Form auf 2. Form zugreifen
Hallo Chemiker,
bin kein Erbsenzähler, aber bevor es einen Einsteiger verwirrt... :hi: |
Re: mit 1. Form auf 2. Form zugreifen
irgendwie sieht das von Taaktaak einfacher aus ^^
Delphi-Quellcode:
das brauch ich alles oder ???
property Irgendwas : Integer read FIrgendwas write FIrgendwas;
und dann hald nur die variable auf meinen Namen ändern ^^ |
Re: mit 1. Form auf 2. Form zugreifen
JEIN, "write ..." wird nur benötigt, wenn du den Wert von ausserhalb auch ändern möchtest. Aber in jedem Fall - das ist insgesamt nur eine Möglichkeit von mehreren, so etwas zu realisieren.
|
Re: mit 1. Form auf 2. Form zugreifen
ahhh ok ... ja will ich ^^
also nochmal vielen dank^^ |
Re: mit 1. Form auf 2. Form zugreifen
Vielleicht noch mal etwas weiter erklärt. Mein Beispiel ist eigentlich noch nicht sehr sinnvoll. Gleiches wäre erreicht, wenn du die Variable einfach nur als public deklarierst:
Delphi-Quellcode:
So richtig sinnvoll sind Properties m.E. erst, wenn der Zugriff über Getter/Setter-Methoden erfolgt. Beispiel:
private
public Irgendwas : Integer; end; implementation //.. Irgendwas:=99; //..
Delphi-Quellcode:
Damit erhälts du interessante Möglichkeiten; du kannst z.B. den neuen Wert prüfen und eine Änderung nur unter bestimmten Bedingungen zulassen. Ausserdem sind lesende und schreibende Zugriffe auf die interne Variable jetzt quasi zu einem Event geworden auf das du unit-intern reagieren kannst (das ShowMessage() ist hier nur ein Platzhalter). Denkbar ist z.B., daß nach einer Änderung des Wertes von aussen, die Unit eine Anzeige aktualisiert - das wär ohne den Setter schon schwieriger zu realisieren.
private
FIrgendwas : Integer; procedure SetIrgendwas(NeuerWert:Integer) function GetIrgendwas:Integer; public property Irgendwas : Integer read GetIrgendwas write SetIrgendwas; end; implementation //.. procedure T~~.SetIrgendwas(NeuerWert:Integer); begin if NeuerWert>0 then FIrgendwas:=NeuerWert; ShowMessage('FIrgendwas wurde verändert') end; function T~~.GetIrgendwas:Integer; begin Result:=FIrgendwas; ShowMessage('FIrgendwas wurde gelesen') end; //.. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz