Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie erstell ich dialoge? (https://www.delphipraxis.net/109066-wie-erstell-ich-dialoge.html)

Hurleybird 23. Feb 2008 20:05


Wie erstell ich dialoge?
 
Hallo! Hätte da so ne Frage:

Wie kann ich meinem Formular einen Dialog hinzufügen, der zB erscheint, wenn ich auf einen Button drücke?
Muss ich dazu ein neues Formular erstellen, eine neue Unit oder geht das mit Frames???

Haben sowas noch nicht in der Schule gemacht, von daher bin ich ratlos.

Mfg
Bird

DeddyH 23. Feb 2008 20:08

Re: Wie erstell ich dialoge?
 
Was denn für einen Dialog? Eine einfache Meldung? Einen Dateiauswahl-Dialog?

Hurleybird 23. Feb 2008 20:11

Re: Wie erstell ich dialoge?
 
Zitat:

Zitat von DeddyH
Was denn für einen Dialog? Eine einfache Meldung? Einen Dateiauswahl-Dialog?

Also ein neu-aufgepopptes Fenster, wo man editfelder, buttons etc hat. Eine einfache Meldung kann ich selber schon...

DeddyH 23. Feb 2008 20:15

Re: Wie erstell ich dialoge?
 
Das klingt so, als ob Du Dir den Dialog selbst erstellen musst, also eine eigene Unit mit einem eigenen Formular. Das kannst Du dann bequem über
Delphi-Quellcode:
DialogForm.Show; //1. Möglichkeit
DialogForm.ShowModal; //2. Möglichkeit
aufrufen.

T.E. 23. Feb 2008 20:16

Re: Wie erstell ich dialoge?
 
ne andere möglichkeit:

die JEDI - Vcl... die hat nämlich eine Komponente für einen Assitenten dürfte also glaub ich nach deinem Geschmack sein.

Hurleybird 23. Feb 2008 20:22

Re: Wie erstell ich dialoge?
 
Zitat:

Zitat von DeddyH
Das klingt so, als ob Du Dir den Dialog selbst erstellen musst, also eine eigene Unit mit einem eigenen Formular. Das kannst Du dann bequem über
Delphi-Quellcode:
DialogForm.Show; //1. Möglichkeit
DialogForm.ShowModal; //2. Möglichkeit
aufrufen.

also müsste ich dafür ein neues Formular erstellen und eine neue Unit wird dann auch generiert...
Wie kann ich die denn in meiner unit1 ansprechen? Und wozu ist die 2te Unit da?

DeddyH 23. Feb 2008 20:24

Re: Wie erstell ich dialoge?
 
Je Formular eine Unit. Um die 2. Unit ansprechen zu können, musst Du sie in die uses-Klausel des aufrufenden Formulars aufnehmen.

Hurleybird 23. Feb 2008 20:34

Re: Wie erstell ich dialoge?
 
unit2.TFrame2.show;

[Fehler] Unit1.pas(175): Diese Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt.

Was habe ich falsch gemacht?

DeddyH 23. Feb 2008 20:46

Re: Wie erstell ich dialoge?
 
Was hat denn jetzt TFrame2 damit zu tun? Abgesehen davon, dass das wohl ein Klassen- und kein Instanzname ist.

Hurleybird 23. Feb 2008 21:00

Re: Wie erstell ich dialoge?
 
Zitat:

Zitat von DeddyH
Was hat denn jetzt TFrame2 damit zu tun? Abgesehen davon, dass das wohl ein Klassen- und kein Instanzname ist.

Nagut, ich habe ein neues Formular genommen.

Und wie kann ich meine Variablen aus unit1 in unit2 benutzen? Einfaches public-deklarieren reicht nicht aus anscheinend?

DeddyH 23. Feb 2008 21:04

Re: Wie erstell ich dialoge?
 
Zeig mal ein bisschen Code. Eigentlich sollte das reichen, obwohl Du statt public-Variablen besser Properties definieren solltest.

Hurleybird 23. Feb 2008 21:10

Re: Wie erstell ich dialoge?
 
Zitat:

Zitat von DeddyH
Zeig mal ein bisschen Code. Eigentlich sollte das reichen, obwohl Du statt public-Variablen besser Properties definieren solltest.

Delphi-Quellcode:
//Unit1:
interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Menus, ExtCtrls, Grids, unit2;
    //:= inttostr(filepos(Datei) - 1 );
type
    tVokabeln = record
              englisch: String[50];
              deutsch: String[50];
              end;
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit3: TEdit;
    Button3: TButton;
    Button4: TButton;
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Beenden1: TMenuItem;
    N2: TMenuItem;
    ffnen1: TMenuItem;
    Neu1: TMenuItem;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Bearbeiten1: TMenuItem;
    N1: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    Button1: TButton;
    procedure Button3Click(Sender: TObject);
    procedure Beenden1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure ffnen1Click(Sender: TObject);
    procedure Neu1Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
  Vokabel: tVokabeln;
  Datei : file of tvokabeln;
  Dateiname: string[50];
  vokabelnummer : integer;
  end;

var
  Form1: TForm1;
Delphi-Quellcode:
//Unit2:

unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private

  public

  end;

var
  Form2: TForm2;
implementation

uses Unit1;

DeddyH 23. Feb 2008 21:15

Re: Wie erstell ich dialoge?
 
Wo liegt denn jetzt das Problem?

Hurleybird 23. Feb 2008 21:16

Re: Wie erstell ich dialoge?
 
Zitat:

Zitat von DeddyH
Wo liegt denn jetzt das Problem?

er kennt in unit2 die variablen nicht, sprich:

[Fehler] Unit2.pas(32): Undefinierter Bezeichner: 'datei'

DeddyH 23. Feb 2008 21:17

Re: Wie erstell ich dialoge?
 
Du hast aber Form1 davorgeschrieben, also z.B.
Delphi-Quellcode:
ShowMessage(Form1.Datei);
?

Hurleybird 23. Feb 2008 21:24

Re: Wie erstell ich dialoge?
 
Zitat:

Zitat von DeddyH
Du hast aber Form1 davorgeschrieben, also z.B.
Delphi-Quellcode:
ShowMessage(Form1.Datei);
?

Nee, hab ich nicht, daran lags :oops:

Naja jetzt weiß ich zumindest, wie man mit mehreren units umgeht.

Vielen Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:03 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