formular1 öffnen, buttonklick -> formular2 öffnen usw.

X

x12x13

hallo ihr lieben,

hab leider k.a. wie das funzen soll
habe ein hauptformular Form1 und möchte darin auf den button klicken, dann soll sich das Form2 öffnen.

habe folgendes probiert:
Application.CreateForm(TForm2, Form2);

funktioniert aber nicht, der compiler spuckt folgendes aus:
Undefinierter Bezeichner TForm2

kann mir bitte jemand sagen, wie das richtig geht ?
danke schonmal :=)
 
Hast Du die uses-Anweisung in Form1.pas entsprechend eingefügt, damit Du aus der Datei heraus auch auf Form2.pas zugreifen kannst?
 
in den uses steht 'Forms', dachte damit sollte es funktionieren.
Kannst mir vllt. genauer sagen, was ich zu tun habe.
programmiere erst seit vorgestern mit der delphi 7 enterprise trial
 
hmm,

ganz oben in der USES Klauses des ersten Forms muss der Unitname der Form 2 drin sein, einfach den Namen kopieren.
 
hallo und danke das ihr mir so helft, bin ja erst seit kurzem dabei...

hier mal mein code:
Code:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ActnMan, ActnColorMaps, ComCtrls, Menus, StdCtrls, ExtCtrls, Unit2;

das 2. formular trägt den name 'Unit2'

Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Application.CreateForm(TForm2, Form2);
end;
 
hmm,

ich mach dass mit dem öffnen anders , ich nehm auchnoch die 'Form'variable mit und öffne den Kram dann ohne Apllicationgedöns.

Also so =>

Die Hauptunit Unit1 =>

Code:
unit Unit1;

interface

uses
  SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms,
  QDialogs, QStdCtrls, Unit2;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.xfm}

procedure TForm1.Button1Click(Sender: TObject);
var dlg : TForm2;
begin
  dlg := TForm2.Create(self);
  dlg.Show;

end;


end.

das zweite Formular Unit2

Code:
unit Unit2;

interface

uses
  SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms,
  QDialogs, QStdCtrls;

type
  TForm2 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.xfm}

end.

Zu beachten ist hier dass mein Code Kylixcode ist, also eine CLX Anwendung und dass du unter PROJEKT/OPTIONEN die Form2 als 'verfügebare Form' belegst, ansonsten sagt er dir dass er keine Form erzeugen kann die es schon gibt !
 
Hi leute!

Ich habe noch eine Frage zu diesem Formularwechsel:
Und zwar kann man mit dem obigen Code nicht vom 2.Formular auf das erste zugreifen.

Schreibt man die Unit1 zum "Uses" der 2.Unit, kommt folgende Fehlermeldung:
[Fatal Error] Unit2.pas(7): Circular unit reference to 'Unit2'

Fügt man nichts zu den Uses hinzu, kann man auch nicht auf das Hauptformular zugreifen. Welche Möglichkeiten gibt es, von einem Formular auf das Hauptformular zuzugreifen?

danke im voraus!
 
zu den anzeigen der Form2 kan ich nur sagen wozu gibt es Show und Hide wen das zweite Form eh schon ein Festes aussehen hat tust du es einfach mit
Code:
 procedure TForm1.BopenClick(Sender: TObject);
 begin
 Form1.Hide;  //Form1 verbergen
 Form2.Show; //Form2 zeigen
 end;
aufrufen Delphi mekert dan von allein wegendem Uses eintrag und macht den dan. Und wen du das Form2 zur laufzeit gestalten willst dan schreibst du die gestaltung in Form2.onShow
 

Neue Beiträge

Zurück