Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie kann man von Form1 auf Form2 zugreifen und anders herum (https://www.delphipraxis.net/34999-wie-kann-man-von-form1-auf-form2-zugreifen-und-anders-herum.html)

DerMaBo 1. Dez 2004 10:23


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.

Sharky 1. Dez 2004 10:26

Re: Ein Delphi Neuling hatt ein paar fragen......
 
Hai DerMoBo,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS".

Zitat:

Zitat von DerMaBo
...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......

Doch das geht. Du musst aber in deiner zweiten Form die Unit1 im implementation-Teil eintragen:

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.

roxxy 1. Dez 2004 10:27

Re: Ein Delphi Neuling hatt ein paar fragen......
 
Gib uns doch schon mal den Quelltext, den du hast, dann kann man dir besser helfen.

jim_raynor 1. Dez 2004 10:27

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:
´
unit Unit2.

type
  TForm ....
    ...
    ...

implementation

uses Unit1;
[edit]Mist wieder zu langsam :coder: [/edit]

Steve 1. Dez 2004 10:28

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

DerMaBo 1. Dez 2004 10:38

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]

DerMaBo 1. Dez 2004 11:10

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 00:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz