![]() |
2. Form erstellen
Hallo Leute,
ich hab mich jetz zwar schon seit einer heidenewigkeit durch verschiedenste Posts gelesen aber irgendwie bin ich zu blöd ne 2. Form zu erstelllen. wenn ich nur
Delphi-Quellcode:
nehme dann komme ich auf eine sehr komische Fehlermeldung raus und die dazugehöhrige Delphi Hilfe bringt mich auch nicht weiter.
Form2.Show;
Pls helft mir ich verzweifle ^^ |
Re: 2. Form erstellen
Wenn ich es richtig interpretiere, existiert das 2. Formular noch gar nicht.
Datei -> Neu -> Formular |
Re: 2. Form erstellen
Hallo und willkommen in der DP :dp:
Zitat:
Delphi-Quellcode:
Zeigst du Formular 2 während der Laufenden Anwendung an! Der dazugehörige verstecken Code lautet wie folgt:
Form2.Show;
Delphi-Quellcode:
Form2.Hide;
|
Re: 2. Form erstellen
Zitat:
|
Re: 2. Form erstellen
Erstmal viiiiiiieeleeenn liiiieeben dank ^^
omg des hät ich nie gefunden xD jetzt kommt allerdings die Fehlermeldung Zitat:
PS: Ich hab mich da glaub in dem Debugger Fenster verklickt, wie bekomm ich des alte wiederhehr ? Bei mir kann ich jetz nur noch auf OK drücken. |
Re: 2. Form erstellen
hat keiner ne ahnung warum die fehlermeldung kommt ?
|
Re: 2. Form erstellen
Zitat:
|
Re: 2. Form erstellen
Hi!
Da meine Glaskugel kaputt ist, fällt es mir leider sehr schwer, ohne Code zu vermuten, wo der Fehler herkommt... :glaskugel: Ciao, Frederic |
Re: 2. Form erstellen
Die Fehlermeldung kommt, weil du das Formular jetzt nicht mehr automatisch beim Programmstart erstellst. Das Anzeigen über Form.Show geht nur, wenn das Formular auch existiert.
Also entweder läßt du das Formular beim Programmstart erstellen (was eigentlich kein guter Programmstil ist!), dann kannst du auch einfach ein Show bzw. Hide machen. Oder du erstellst es selber, bevor du es benutzt...
Delphi-Quellcode:
procedure FormMain.ButtonClick(Sender:TObject);
var Form2:TForm2; begin Form2:=TForm.create(Self); try if Form2.showmodal = mrOK then begin ... end; finally Form2.release end; end; |
Re: 2. Form erstellen
@ fkerber: sry aber eig gab/gibt es keinen richtigen code da ich nicht blick wie mer ne 2. Form erstellt
@ omata : sry check ich net ganz
Delphi-Quellcode:
mit dem erstell ich doch die 2. Form
Form2:=TForm.create(Self);
aber für was brauch ich
Delphi-Quellcode:
un noch ne frage: wie kann ich die 2. Form bearbeiten ?
try
if Form2.showmodal = mrOK then begin ... end; finally Form2.release |
Re: 2. Form erstellen
mir würds auch reichen wenn ihr mich au nen anderen thread hinweisst oder nen tut ausm i net habt aber i wie check ich des net
|
Re: 2. Form erstellen
Zeig doch einfach mal deinen Code
|
Re: 2. Form erstellen
Zitat:
![]() |
Re: 2. Form erstellen
Zitat:
|
Re: 2. Form erstellen
Schau doch nach, was die Funktionen / Prozeduren machen, dann siehst Du, dass Du die brauchst. ;)
|
Re: 2. Form erstellen
ok dann versuch ichs mal xD
Delphi-Quellcode:
naja des is kein problem und soweit versteh ichs auch noch
procedure FormMain.ButtonClick(Sender:TObject);
var Form2:TForm2; begin Form2:=TForm.create(Self);
Delphi-Quellcode:
des mit dem showmodal hab ich auch schon gekannt aber was ist mrOK und für was sind die ... ?
try
if Form2.showmodal = mrOK then begin ... end; finally Form2.release end; end; try und finally hab ich bis jetzt zwar noch nicht benutzt, versteh ich aber glaub auch |
Re: 2. Form erstellen
ShowModal ruft das Fenster modal auf, das heißt, dass das Fenster Priorität hat und man erst wieder auf die Hauptanwendung Zugriff hat, wenn das mit ShowModal aufgerufene Fenster geschlossen wird.
Ein mit ShowModal aufgerufenes Fenster gibt einen ModalResult zurück, der in diesem Fall auf mrOK überprüft wird. Angenommen Du trägst etwas in eine Datenbank ein, dann wäre das mrOK, dass der Eintrag erfolgreich gemacht wurde. Die ... stehen für Deinen Code, was passieren soll, wenn der Vorgang erfolgreich war. |
Re: 2. Form erstellen
dann müsste ich das ganze doch auch auf
Delphi-Quellcode:
beschränken können oder ? ich will eigentlich gar nichts nach dem check ausführen
begin
Form2:=TForm1.create(Self); Form2.release end; und jetzt noch ne frage : Warum passiert nichts, wenn ich den Code in Delphi eingeb. |
Re: 2. Form erstellen
So erzeugst Du ein Formular und gibst es anschließend sofort wieder frei.
|
Re: 2. Form erstellen
Ohhhh gott bin ich blöööööd xD ok also noch mal vielen dank ^^
jetz noch eine frage ^^ wie kann ich jetz die neue Form bearbeiten (hald genauso wie die Form1) und warum steht bei der neuen Form auch Form1 dran ? |
Re: 2. Form erstellen
Du erzeugst ja eine weitere Instanz von Form1, deshalb sind die auch gleich ;)
|
Re: 2. Form erstellen
hmmhmh ok aber wie bekomm ich dann eine neue Form ?
weil das ist eigentlich das was ich wollte :mrgreen: |
Re: 2. Form erstellen
Was meinst Du jetzt mit neue Form? Eine völlig andere als Form1?
|
Re: 2. Form erstellen
[langsam sollten wir uns echt mal über ICQ unterhalten ^^ wär einfacher ^^]
jaaaaaa ^^ des war eigentlich des Ziel von dem Thread ^^ |
Re: 2. Form erstellen
Hast Du diese neue Form denn bereits in Delphi erstellt oder gibt es die noch gar nicht? Im letzteren Falle geh mal auf Datei - Neu - Formular (ich hoffe, das geht unter D2005 noch genauso).
|
Re: 2. Form erstellen
Was meinst du nun mit anderer Form? Entwerfe halt eine andere im Formualrdesigner oder generiere sie dynamisch
|
Re: 2. Form erstellen
Liste der Anhänge anzeigen (Anzahl: 1)
mhmhmhh ok hab ich
aber wenn ich jetzt
Delphi-Quellcode:
eingeb dann kommt die schon erwähnte fehlermeldung ^^
procedure TForm1.Button1Click(Sender: TObject);
begin Form2.showmodal ; end; Zugriffsverletzung bei Adresse 00447BC2 in Modul 'Projekt1.exe'. Lesen von Adresse 00000328. ok is dabei |
Re: 2. Form erstellen
Häng doch das Projekt mal an, sonst geht das noch ewig weiter.
|
Re: 2. Form erstellen
Nur ne Vermutung:
Kann es sein, dass da eventuell der Eintrag in der Uses fehlt? In deiner Unit zu Form1 (ich nehm mal stark an Unit1 ;-) ), hast du, nachdem du Datei->Neu->Formular gemacht hast, oben hinter
Delphi-Quellcode:
die neue Unit (unit2 ?) geschrieben?
uses
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, unit2;///<<<< so hier type TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} end. |
Re: 2. Form erstellen
Endlosschleifen sind immer schlecht ob im Programm oder hier im Forum
|
Re: 2. Form erstellen
Dann wäre Form2 aber nicht bekannt, d.h. das Projekt ließe sich gar nicht kompilieren.
|
Re: 2. Form erstellen
Der Fehler liegt hier:
Delphi-Quellcode:
in Form1.
var
Form1: TForm1; Form2: TForm1; Nehm das Form2 : TForm1 heraus und deklariere anstelle dessen Form2 in der Uses-Klausel
Delphi-Quellcode:
Lg
implementation
uses Unit2; |
Re: 2. Form erstellen
@ quendolineDD: jap funktioniert ^^ spitze
@ all: also jetz zum 3. mal nochmal vielen daaaank an alle, die geholfen haben und sorry das ich son noob bin aber ich versuch mich zu besser :-D. |
Re: 2. Form erstellen
Guck mal..
Delphi-Quellcode:
Ersetze jeweils mit Form2 bzw TForm2 sofern der Name nicht geändert wurde..
if not Assigned(RapeCubeAboutWindow) then begin
RapeCubeAboutWindow := TRapeCubeAboutWindow.Create(nil); try RapeCubeAboutWindow.ShowModal; finally RapeCubeAboutWindow.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 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