![]() |
Form2 aus Form1 ein-/ausblenden
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 |
Re: Form2 aus Form1 ein-/ausblenden
Gibt es mehrere Variablen mit der Bezeichnung Form2?
|
Re: Form2 aus Form1 ein-/ausblenden
Zitat:
|
Re: Form2 aus Form1 ein-/ausblenden
Poste mal deines Code
|
Re: Form2 aus Form1 ein-/ausblenden
1.:
Delphi-Quellcode:
2.:
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.
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:
[edit=Jelly]Bitte Delphi Tags nächstes Mal selber setzen Mfg, Jelly[/edit]
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. |
Re: Form2 aus Form1 ein-/ausblenden
Delphi-Quellcode:
was passiert denn, wenn du das oben unter interface reinschreibst?
implementation
uses Unit3, LioRC_Black; also
Delphi-Quellcode:
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp, ExtCtrls, Unit3, LioRC_Black; |
Re: Form2 aus Form1 ein-/ausblenden
Zitat:
Forms ist ein bisschen wenig für ein Programm, da würde ich mich auch beschweren :gruebel: |
Re: Form2 aus Form1 ein-/ausblenden
Zitat:
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? |
Re: Form2 aus Form1 ein-/ausblenden
-Direkt im Projekt
-.onActivate -Reihenfolge der Erzeugung ändern |
Re: Form2 aus Form1 ein-/ausblenden
Super, vielen Dank für die Hilfe!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 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