AGB  ·  Datenschutz  ·  Impressum  







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

Zweite Form öffnen

Ein Thema von KnowN · begonnen am 7. Dez 2015 · letzter Beitrag vom 8. Dez 2015
Antwort Antwort
Seite 1 von 2  1 2      
KnowN

Registriert seit: 7. Dez 2015
Ort: Cochem
6 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Zweite Form öffnen

  Alt 7. Dez 2015, 13:51
Delphi-Version: 10 Seattle
Servus,

ich bin neu hier und keine Ahnung, ob ich hier richtig bin mit meiner Anfängerfrage. Hoffe dennoch, dass mir hier weitergeholfen werden kann.

Folgendes. Ich habe eine Unit mit dem Namen 'LoaderLogin_u'. In dieser habe ich einen Button. Mit Klick auf den Button soll die Unit 'Loader_u' geöffnet werden. Leider bekomme ich das Öffnen von 'Loader_u' nicht hin.

Wenn ich 'Loader_u.Show;' mache, sagt er mir, dass Loader_u kein Element namens Show enthält.
Wenn ich 'Loader_u.Visible := True;' eingebe, sagt er mir das gleiche wie oben, nur mit Visible.
Das ganze mit 'TForm3' geht auch nicht, denn dann sagt er mir, dass 'TForm3' ein undeklarierter Bezeichner ist.
Und Form3 geht ebenfalls nicht.

'Loader_u' ist bei den uses eingetragen.

Was mache ich falsch?
Christian
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Zweite Form öffnen

  Alt 7. Dez 2015, 14:08
Es gibt zwei unterschiedliche Bezeichner: einmal der Unit-Name, und dann der Name des Formulars. In die Uses trägst du den Unitnamen ein. Angesprochen wird das Formular über seine Eigenschaft Name, die du im Objektinspektor eingibst. Unter diesem Namen existiert dann eine Instanz deines Formulars.
Delphi-Quellcode:
UNIT UnitZentrale; //Name der Unit in Uses einbinden

INTERFACE

USES
  ...

TYPE
  TFormZentrale = CLASS(TForm)

    ...

  PRIVATE { Private-Deklarationen }
  PUBLIC { Public-Deklarationen  }
  END;

VAR
  FormZentrale: TFormZentrale;

IMPLEMENTATION
...
In deiner Mainform sieht das dann z.B. so aus:
Delphi-Quellcode:
UNIT UnitMain;

INTERFACE

USES
  ...
TYPE
  TFormMain = CLASS(TForm)
    Btn_Zentrale : TButton;
    Procedure Btn_ZentraleClick(Sender: TObject);

  PRIVATE { Private-Deklarationen }
  PUBLIC { Public-Deklarationen  }

  END;

VAR
  FormMain : TFormMain;

IMPLEMENTATION
{$R *.dfm}
{ TFormMain }

Uses
  UnitZentrale;

Procedure Btn_ZentraleClick(Sender: TObject);
begin
  FormZentrale.Show;
end;

end.

Geändert von Perlsau ( 7. Dez 2015 um 14:17 Uhr)
  Mit Zitat antworten Zitat
KnowN

Registriert seit: 7. Dez 2015
Ort: Cochem
6 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: Zweite Form öffnen

  Alt 7. Dez 2015, 14:21
Okay. Aber selbst mit dem Namen geht es nicht. Hier mal mein Code.
Der Name der Unit: Loader_u
Der Name der Form (Objektinspektor 'Name'): Loader

Als Fehlermeldung im Compiler kommt:
  • Undeklarierter Bezeichner 'Loader' in Zeile 41 (41:5)
  • Undeklarierter Bezeichner 'Show' in Zeile 41 (41:12)

Delphi-Quellcode:
unit LoaderLogin_u;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    lbl_usr: TLabel;
    lbl_pw: TLabel;
    edt_usr: TEdit;
    edt_pw: TEdit;
    btn_login: TButton;
    btn_reset: TButton;
    btn_updates: TButton;
    lbl_buildcopyright: TLabel;
    procedure btn_resetClick(Sender: TObject);
    procedure btn_updatesClick(Sender: TObject);
    procedure btn_loginClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

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.
Christian
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Zweite Form öffnen

  Alt 7. Dez 2015, 14:26
Und wie sieht loader_u aus?
  Mit Zitat antworten Zitat
KnowN

Registriert seit: 7. Dez 2015
Ort: Cochem
6 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: Zweite Form öffnen

  Alt 7. Dez 2015, 14:29
Und wie sieht loader_u aus?
So:

Delphi-Quellcode:
unit Loader_u;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;

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

var
  Loader: TLoader;

implementation

{$R *.dfm}

end.
Christian
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#6

AW: Zweite Form öffnen

  Alt 7. Dez 2015, 14:53
Jetzt wäre noch interessant, den Quellcode deiner Projektdatei zu sehen: Menü Projekt > Quelltext anzeigen.
  Mit Zitat antworten Zitat
KnowN

Registriert seit: 7. Dez 2015
Ort: Cochem
6 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: Zweite Form öffnen

  Alt 7. Dez 2015, 15:05
Hier:

Delphi-Quellcode:

program LoaderLogin_p;

uses
  Vcl.Forms,
  LoaderLogin_u in 'LoaderLogin_u.pas{Form1},
  Vcl.Themes,
  Vcl.Styles;

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  TStyleManager.TrySetStyle('Glow');
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Christian
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: Zweite Form öffnen

  Alt 7. Dez 2015, 15:13
Fällt dir da nichts auf? Mir nämlich schon beim ersten Blick genau das, was ich erwartet habe: das offensichtliche Fehlen der Unit Loader_u. Da würde ich doch glatt mal empfehlen, diese Unit deinem Projekt hinzuzufügen. Wie hast du diese Unit eigentlich erstellt? Normalerweise geht man im Datei-Menü auf Neu und wählt VCL-Formular, wenn man ein neues Formular benötigt. Dadurch wird das neue Formular bzw. die neue Unit automatisch dem Projekt hinzugefügt.
  Mit Zitat antworten Zitat
KnowN

Registriert seit: 7. Dez 2015
Ort: Cochem
6 Beiträge
 
Delphi 10 Seattle Professional
 
#9

AW: Zweite Form öffnen

  Alt 7. Dez 2015, 15:23
Oh man, danke dir!

Ich hatte es über Projekt > Projekt hinzufügen gemacht. Habe Delphi 10 Seattle erst seit gestern. :/ Sorry für die blöde Frage, aber danke für eure Antworten!
Christian
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#10

AW: Zweite Form öffnen

  Alt 7. Dez 2015, 15:42
Keine Ursache. Funktioniert's denn jetzt?

Ein Projekt fügst du einer Projektgruppe hinzu. Damit gehörte die fehlende Unit zu einem anderen Projekt. Der Fehler enstand, weil keine Instanz von TLoader in deinem aktuellen Projekt existierte. Wie wär's mit einem kostenlosen Einsteiger-Tutorial? Damit kannst dir solche und viele andere grundlegende Sachen strukturiert beibringen und steigerst damit deine Lernkurve enorm.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:47 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