![]() |
Wie kann man von Form1 auf Form2 zugreifen und anders herum
Hallo erstmal....
Ich hab ein paar Fragen und zwar habe ich nun in der schule (nach TP) angefangen Delphi zu programmieren. Um nun meine aktuelle aufgabe zu lösen bräuchte ich ein bisschen hilfe (ich betone nochmal das ich delphi erst seit kurzem benutze und vorher Turbo Pascal deswegen hab ich bei delphi spezifischen themen so gut wie keine ahnung) und zwar möchte ich bei meinem hauptprogramm (eine simulation) ein zweites fenster öffnen in dem man zum einen einstellungen vornehmen kann und zum anderen eine statistische auswertung sieht. ich hab ein wenig mit einem zweiten Formular herumgebastelt aber ich finde keine möglichkeit vom zweitem Formular auf das erste zu, zu greifen da man ja nicht die unit der zweiten form mit der unit ersten form verbinden kann,da ja die schon andersherum nötig ist um die 2. form aufzurufen...... auch wenn es wahrscheihnlich ne lächerliche Frage ist wäre ich für ernsthafte antworten sehr dankbar. |
Re: Ein Delphi Neuling hatt ein paar fragen......
Hai DerMoBo,
ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS". Zitat:
Delphi-Quellcode:
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; var Form2: TForm2; implementation uses Unit1; {$R *.dfm} end. |
Re: Ein Delphi Neuling hatt ein paar fragen......
Gib uns doch schon mal den Quelltext, den du hast, dann kann man dir besser helfen.
|
Re: Ein Delphi Neuling hatt ein paar fragen......
1. Willkommen in der Delphi-Praxis ;)
2. Mach bitte einen Aussägekräftigen Titel. siehe die :dp: 3. in der zweiten Unit musst du die erste Unit unter implementation einbinden, dann sollte es funktionieren.
Delphi-Quellcode:
[edit]Mist wieder zu langsam :coder: [/edit]
´
unit Unit2. type TForm .... ... ... implementation uses Unit1; |
Re: Ein Delphi Neuling hatt ein paar fragen......
Hi,
wenn Unit1 und Unit2 jeweils im USES des INTERFACE-Teils stehen, meckert der Compiler wg. 'überkreuzendem Bezug'. Schreib die entsprechende/n Unit/s mal in den USES-Teil im IMPLEMENTATION-Abschnitt, und dann sollte der Compiler nimmer meckern :) Zugreifen auf Eigeschaften von Form1 kannste dann ganz normal über Form1.Eigenschaft ;) Gruß Stephan :dance: :xmas: //edit_ :shock: bin ich lahm |
Re: Ein Delphi Neuling hatt ein paar fragen......
Also ich kann ja von unit1 auf unit 2 bzw. von form1 auf form2 zugreifen weil ich die unit2 bei unit1 zugefügt hab (wie gesagt pascal kan ich..) aber ich möchte z.B. auf der zweiten Form nen Button einfügen um die simulation auf der ersten Form zu starten oder einfach um die caption zu ändern.... das meinte ich
Delphi-Quellcode:
unit Unit1;
interface uses Windows, unit2,Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Edit1: TEdit; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin form1.Left:=50; form1.Top:=100; form2.Left:=form1.Left+form1.Width; form2.Top:=100; form2.AlphaBlend:=TRUE; form2.AlphaBlendValue := 0; form2.Show; form2.Timer1.Enabled := TRUE; end; procedure TForm1.Button2Click(Sender: TObject); begin close; end; procedure TForm1.Edit1Change(Sender: TObject); begin form2.Button1.Caption:=edit1.Text; end; procedure TForm1.FormCreate(Sender: TObject); begin end; end. unit Unit2; interface uses Windows, unit3,Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm2 = class(TForm) Timer1: TTimer; Button1: TButton; Edit1: TEdit; procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Edit1Change(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.Timer1Timer(Sender: TObject); begin AlphaBlendValue := AlphaBlendValue + 17; if AlphaBlendValue > 254 then begin Timer1.Enabled := FALSE; end; end; procedure TForm2.Button1Click(Sender: TObject); begin form2.Hide end; procedure TForm2.Edit1Change(Sender: TObject); begin test:=form2.Edit1.Text; button1.Caption:=test; end; end. unit Unit3; interface var test:string; implementation end. !Das ist nur nen test Programm! [edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit] |
Re: Ein Delphi Neuling hatt ein paar fragen......
kk THX ich habs nun mit implematation gemacht und... es klappt... vielen dank
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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