AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form2 aus Form1 ein-/ausblenden

Ein Thema von Holger24 · begonnen am 3. Aug 2008 · letzter Beitrag vom 3. Aug 2008
Antwort Antwort
Holger24

Registriert seit: 3. Aug 2008
5 Beiträge
 
#1

Form2 aus Form1 ein-/ausblenden

  Alt 3. Aug 2008, 12:50
Hallo zusammen,

ich habe ein kleines, für mich aber unlösbares Problem, welches ich auch durch fleißiges Suchen bislang nicht lösen konnte...

Ich habe ein Programm mit zwei Formularen (Form1/Form2) erstellt, beim Starten werden beide Formulare auch ordentlich angezeigt:

---
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
---

Jetzt möchte ich über eine Schaltfläche in Form1 das zweite Formular ein- bzw. ausblenden. Dazu habe ich in der entsprechenden ButtonClick-Prozedure den Befehl "form2.show;" (bzw. "hide") eingefügt. Dann will er mein Programm aber nicht mehr compilieren, es erscheint eine Fehlermeldung "zugriffsverletzung..."

Ich habe es auch mit "form2.visible:=true;" versucht, ohne Erfolg. Irgendwie kann ich nicht auf Form2 zugreifen, obwohl ich die entsprechende Unit mit uses eingebunden habe.

Kann mir da evtl. jemand einen Tipp geben?

Vielen Dank
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Form2 aus Form1 ein-/ausblenden

  Alt 3. Aug 2008, 12:52
Gibt es mehrere Variablen mit der Bezeichnung Form2?
Markus Kinzler
  Mit Zitat antworten Zitat
Holger24

Registriert seit: 3. Aug 2008
5 Beiträge
 
#3

Re: Form2 aus Form1 ein-/ausblenden

  Alt 3. Aug 2008, 12:55
Zitat von mkinzler:
Gibt es mehrere Variablen mit der Bezeichnung Form2?
Eigentlich nicht... Ich habe auch mal ein neues Formular "Form3" angelegt, wenn ich "form3.show" eingebe, kommt der Fehler auch.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Form2 aus Form1 ein-/ausblenden

  Alt 3. Aug 2008, 13:01
Poste mal deines Code
Markus Kinzler
  Mit Zitat antworten Zitat
Holger24

Registriert seit: 3. Aug 2008
5 Beiträge
 
#5

Re: Form2 aus Form1 ein-/ausblenden

  Alt 3. Aug 2008, 13:06
1.:
Delphi-Quellcode:
program LioRC_Client_Projekt;

uses
  Forms,
  LioRC_Client in 'LioRC_Client.pas{Form1},
  Unit3 in 'Unit3.pas{Form3},
  LioRC_Black in 'LioRC_Black.pas{Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
2.:
Delphi-Quellcode:
unit LioRC_Client;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp, ExtCtrls;

const
  CPort = 4999;
  CIp = '127.0.0.1' ;

type TChatMessage = Record
        Nick: string[255];
        Command: string[255];
      end;


type
  TForm1 = class(TForm)
    MProtokoll: TMemo;
    BtStartStop: TButton;
    ClientSocket1: TClientSocket;
    Timer1: TTimer;

    procedure Timer(Sender: TObject);
    procedure Error(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure Read(Sender: TObject; Socket: TCustomWinSocket);
    procedure Disconnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure Connect(Sender: TObject; Socket: TCustomWinSocket);
    procedure initClientMaster(Sender: TObject);
    procedure BtStartStopClick(Sender: TObject);
  private
    { Private-Deklarationen }
    Verbunden: boolean;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;



implementation

uses Unit3, LioRC_Black;



{$R *.dfm}

procedure TForm1.BtStartStopClick(Sender: TObject);
begin
  form3.show;
end;
...

(Wenn ich form3.show auskommentiere, läuft alles)


3.:
Delphi-Quellcode:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

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

var
  Form3: TForm3;

implementation

{$R *.dfm}

end.
[edit=Jelly]Bitte Delphi Tags nächstes Mal selber setzen Mfg, Jelly[/edit]
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#6

Re: Form2 aus Form1 ein-/ausblenden

  Alt 3. Aug 2008, 13:43
Delphi-Quellcode:
implementation

uses Unit3, LioRC_Black;
was passiert denn, wenn du das oben unter interface reinschreibst?

also

Delphi-Quellcode:
interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp, ExtCtrls, Unit3, LioRC_Black;
  Mit Zitat antworten Zitat
rotfc
(Gast)

n/a Beiträge
 
#7

Re: Form2 aus Form1 ein-/ausblenden

  Alt 3. Aug 2008, 14:17
Zitat von Holger24:
1.:

program LioRC_Client_Projekt;

uses
Forms,
LioRC_Client in 'LioRC_Client.pas' {Form1},
Unit3 in 'Unit3.pas' {Form3},
LioRC_Black in 'LioRC_Black.pas' {Form2};

{$R *.res}

...
uses
Forms

ist ein bisschen wenig für ein Programm, da würde ich mich auch beschweren
  Mit Zitat antworten Zitat
Holger24

Registriert seit: 3. Aug 2008
5 Beiträge
 
#8

Re: Form2 aus Form1 ein-/ausblenden

  Alt 3. Aug 2008, 14:22
Zitat von Morphie:
Delphi-Quellcode:
implementation

uses Unit3, LioRC_Black;
was passiert denn, wenn du das oben unter interface reinschreibst?
Genau das Gleiche

Ich glaube aber ich habe meinen Fehler gefunden.... Ich hatte noch eine "onCreate"-Ereignis-Prozedur, die ebenfalls "BtStartStopClick" und damit "form2.show" aufuft.... Wenn ich im Hauptteil die CreateForm-Anweisungen vertausche funktionierts:

---
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm1, Form1);
---

Wahrscheinlich kam die show-Anweisung bevor das Formular überhaupt erzeugt war... Okay, meist sitzt der Fehler vor dem Computer...

Gibt es eine Alternative zu "onCreate", die nicht sofort bei der Erzeugung eines Formulars aufgerufen wird, sondern solange wartet bis alle Formulare generiert sind?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Form2 aus Form1 ein-/ausblenden

  Alt 3. Aug 2008, 14:25
-Direkt im Projekt
-.onActivate
-Reihenfolge der Erzeugung ändern
Markus Kinzler
  Mit Zitat antworten Zitat
Holger24

Registriert seit: 3. Aug 2008
5 Beiträge
 
#10

Re: Form2 aus Form1 ein-/ausblenden

  Alt 3. Aug 2008, 14:26
Super, vielen Dank für die Hilfe!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 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