Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Zweite Form öffnen (https://www.delphipraxis.net/187537-zweite-form-oeffnen.html)

KnowN 7. Dez 2015 15:48

AW: Zweite Form öffnen
 
Jetzt funktioniert es, ja!

Werde ich mir mal anschauen, danke!

Luckie 7. Dez 2015 16:13

AW: Zweite Form öffnen
 
Kleiner Tipp zur Namesgebung. Ich benenne Units mit Formularen immer mit FrmFoobar.pas. Units nur mit Quellcode ohne Prefix und aussagekräftigen Namen. Und die Unit mit dem Hauptformular mit main.pas. Die dpr Datei bekommet bzw. das Projekt den Namen, den die Exe haben soll.

bcvs 7. Dez 2015 16:38

AW: Zweite Form öffnen
 
Zitat:

Zitat von Perlsau (Beitrag 1323680)
Damit gehörte die fehlende Unit zu einem anderen Projekt. Der Fehler enstand, weil keine Instanz von TLoader in deinem aktuellen Projekt existierte.

Das allein kann aber nicht die Lösung gewesen sein.

Hierbei:
Delphi-Quellcode:
uses Loader_u;

procedure TForm1.btn_loginClick(Sender: TObject);
begin
  if (edt_usr.Text = 'admin') and (edt_pw.Text = 'admin') then
  begin
    Loader.Show;
  end;
end.
dürfte der Compiler eigentlich keinen undeklarieren Bezeichner anmeckern, wenn die Unit Loader_u wirklich so aussah wie in #5, auch wenn Loader_u nicht zum Projekt gehört. Es wäre "nur" zu einem Laufzeitfehler gekommen, weil eine Methode einer nicht vorhandenen Instanz aufgerufen wird.

Evtl. gibt es zwei Versionen von Loader_u und durch die Aufnahme ins Projekt wird jetzt die richtige genommen.

Perlsau 8. Dez 2015 00:24

AW: Zweite Form öffnen
 
So wie der TE vorgegangen ist – statt Neues VCL-Formular den Menüpunkt Neues Projekt gewählt –, hat er damit auch eine Unit erstellt, nämlich die Mainunit des neuen Projekts. Die bindet er dann in das Hauptformular des ursprünglichen Projekts ein, ohne davon eine Instanz zu erzeugen. Daher kam übrigens mein Hinweis auf die Projektquelldatei. Was er da jetzt genau gemacht hat, um den Fehler zu erzeugen, kann nur der TE aufklären. Mich interessiert das eigentlich nicht mehr.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 Uhr.
Seite 2 von 2     12   

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