Popup erstellen

EuroCent

Klappstuhl 2.0
Wollte mal fragen wie ich es erreichen kann das ich in der Menüleiste die ich eben stehn habe unter Info => Hinweis

Wenn ich nun auf Hinweis klicke möchte ich das ein Popup Fenster "Feste Grösse" aufspringt und dann in diesem Der Inhalt steht

Beisp.: Version: 0.0

Sowas in der Art ;)

Anhang:

- die Fertige Exe damit ihr euch ein Kleines Bild machen könnt was ich meine

Wäre nett wenn ihr mir da sagen könnt wie ich das realisieren kann

DANKE
 

Anhänge

  • Metin2Markt.zip
    353,8 KB · Aufrufe: 125
Hey,

ich weiß zwar nicht ganz genau was du mit "feste Größe" meinst aber es gibt für "Popup"-Fenster einige Möglichkeiten.

Wenn dir eine Meldung reicht kannst du es mit:

Code:
ShowMessage('Version: 0.1.2.3.');
Man kann ShowMessage() auch mehrzeilig erstellen etc. einfach mal in :google: suchen

Wenn du aber ein eigenes Formular haben möchtest, dann musst du ein neues Formular einfügen das per #include in dein Projekt einbinden (ich weiß nicht ob die Entwicklungsumgebungen von Delphi das nicht selber machen) dann in dem OnClick-Ereignis den Code für den Aufruf des Formulars reinschreiben.

Leider habe noch kein bzw. nur sehr wenig erfahrung mit Delphi und habe hier (auf der Arbeit) keine Entwicklungsumgebung.

Deswegen hoffe ich das dieses dir als anregung hilfreich ist.

Gruß
Rudolf Grauberger
 
Zuletzt bearbeitet:
Neben dem ShowMessage gibt es auch noch
Code:
use
  Borland.Vcl.Dialogs;

CreateMessageDialog(Msg, Typ, Buttons);
wobei Msg einen String mit dem Text enthält, Typ die Art des Popupfensters (z.b. mtInformationen, mtError etc.) und Buttons ein Set mit den Buttons ist, die angezeigt werden sollen, wobei ich meist [mbOK] oder [mbCancel] verwende.
 
Ich habe in dem Projekt noch ein Fenster erstellt diesen eine Feste Grösse verpasst

Nun wollte ich wenn man auf Hinweis klickt genau dann das Fenster auf geht welches ich in das Projekt hinzugefügt habe

Hier der Quellcode:

Code:
program Metin2Markt_;

uses
  Forms,
  Metin2Markt in 'Metin2Markt.pas' {m2m},
  info_hinweis in 'info_hinweis.pas' {InfoHinweis1};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(Tm2m, m2m);
  Application.CreateForm(TInfoHinweis1, InfoHinweis1);
  Application.Run;
end.

Und hier über Click sollte es dann geschehn:

Code:
//Hinweis zur Version und Autor des Programms im Popup
procedure Tm2m.Hinweis1Click(Sender: TObject);
begin
  
end;

Hier mal der Komplette Code:

Code:
unit Metin2Markt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, OleCtrls, SHDocVw, ComCtrls, ActnPopup;

type
  Tm2m = class(TForm)
    WebBrowser1: TWebBrowser;    // Webbrowser
    MainMenu1: TMainMenu;        // Menü
      Datei1: TMenuItem;         // Allgemeines zur Metin2Markt
        Eintragen1: TMenuItem;   // Neues Item eintragen
        Beenden1: TMenuItem;     // Programm beenden
      Info1: TMenuItem;          // Version und Autor hinweis
        Hinweis1: TMenuItem;     // Hinweis
      AdminCP1: TMenuItem;       // Nur Für AdminRechten
        AllEintrge1: TMenuItem;  // Alle einträge anzeigen
        Items1: TMenuItem;       // Neue Items Anzeigen und gegenenfalls Freischalten
        ItemsDel1: TMenuItem;    // Löschen bestimmter Items
    procedure FormCreate(Sender: TObject);
    procedure Eintragen1Click(Sender: TObject);
    procedure Beenden1Click(Sender: TObject);
    procedure Hinweis1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  m2m: Tm2m; //Das Allgemeine Form-Fenster

implementation

{$R *.dfm}

// Webseite im Frame anzeigen
procedure Tm2m.FormCreate(Sender: TObject);
begin
  Webbrowser1.Navigate('www.google.de');
end;

//Eintragen Button => Zum Eintragen eines neuen Items
procedure Tm2m.Eintragen1Click(Sender: TObject);
begin
  Webbrowser1.Navigate('www.google.de');
end;

//Hinweis zur Version und Autor des Programms im Popup
procedure Tm2m.Hinweis1Click(Sender: TObject);
begin
  
end;

//Beenden des Programms
procedure Tm2m.Beenden1Click(Sender: TObject);
begin
  m2m.Close;
end;

end.
 
Hallo,

irgendwie vermisse die Frage!

Ich könnte mir jetzt vorstellen das du nicht weißt wie man das zweite Formular aufrufen kann, aber diese "vermutungen" etc. könnte ich mir (ich bin sicher die anderen sehen das auch so) ersparen.


Code:
program Metin2Markt_;
uses
  Forms,
  Metin2Markt in 'Metin2Markt.pas' {m2m},
  info_hinweis in 'info_hinweis.pas' {InfoHinweis1};
{$R *.res}
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(Tm2m, m2m);
  Application.CreateForm(TInfoHinweis1, InfoHinweis1);
  Application.Run;
end.

folgende Zeile würde ich einfach mal rauslöschen da die -meiner Meinung- nicht dahin gehört. Damit erzeugst du nämlich das Formular nachdem das erste Formular "geschlossen" wurde. (lasse mich aber gern korrigieren)

Code:
Application.CreateForm(TInfoHinweis1, IntoHinweis1);



Und hier über Click sollte es dann geschehn:

Code:
//Hinweis zur Version und Autor des Programms im Popup
procedure Tm2m.Hinweis1Click(Sender: TObject);
begin
end;

Wie währ es wenn du hier das Objekt erzeugst? (wie das in Delphi geht weiß ich leider -noch- nicht!)

Anzeigen kannst du das Formular mit z. b.

Code:
form2.ShowModal;

Gruß
Rudolf Grauberger
 
Zuletzt bearbeitet:
Werd das mal machen danke...

Eventuell hat da ja noch jemand genaueres ;)

Ich bin nicht so der Brummer in Delphi muss mich da noch einarbeiten aber das meiste erstell ich selber gut manches fand ich bei Google aber das mit dem Extra Formular irgendwie nix gefunden ;)

Dennoch danke
 
Hab einwenig bei Google gesucht und mein jetzt verstanden zu haben wie man ein neues Objekt(Formular) anlegt.

Ist nicht ausprobiert!

Code:
//Hinweis zur Version und Autor des Programms im Popup
procedure Tm2m.Hinweis1Click(Sender: TObject);
var
    Info: TInfoHinweis1;
begin
   info := TInfoHinweis1.Create; //Objekt wird erzeugt
   info.ShowModal; //Formular wird angezeigt
end;

Ich hoffe das es so funktioniert bzw. so richtig ist.

Gruß
Rudolf Grauberger
 
Bei mir kommt jetzt wenn ich es compiliere diese Meldung:

[DCC Fehler] Metin2Markt.pas(54): E2003 Undefinierter Bezeichner: 'TInfoHinweis1'
[DCC Fehler] Metin2Markt.pas(56): E2066 Operator oder Semikolon fehlt
[DCC Fehler] Metin2Markt.pas(57): E2066 Operator oder Semikolon fehlt
[DCC Fehler] Metin2Markt_.dpr(6): F2063 Verwendete Unit 'Metin2Markt.pas' kann nicht compiliert werden

Hier noch mal der Code ;)

Code:
unit Metin2Markt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, OleCtrls, SHDocVw, ComCtrls, ActnPopup;

type
  Tm2m = class(TForm)
    WebBrowser1: TWebBrowser;    // Webbrowser
    MainMenu1: TMainMenu;        // Menü
      Datei1: TMenuItem;         // Allgemeines zur Metin2Markt
        Eintragen1: TMenuItem;   // Neues Item eintragen
        Beenden1: TMenuItem;     // Programm beenden
      Info1: TMenuItem;          // Version und Autor hinweis
        Hinweis1: TMenuItem;     // Hinweis
      AdminCP1: TMenuItem;       // Nur Für AdminRechten
        AllEintrge1: TMenuItem;  // Alle einträge anzeigen
        Items1: TMenuItem;       // Neue Items Anzeigen und gegenenfalls Freischalten
        ItemsDel1: TMenuItem;    // Löschen bestimmter Items
    procedure FormCreate(Sender: TObject);
    procedure Eintragen1Click(Sender: TObject);
    procedure Beenden1Click(Sender: TObject);
    procedure Hinweis1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  m2m: Tm2m; //Das Allgemeine Form-Fenster

implementation

{$R *.dfm}

// Webseite im Frame anzeigen
procedure Tm2m.FormCreate(Sender: TObject);
begin
  Webbrowser1.Navigate('www.google.de');
end;

//Eintragen Button => Zum Eintragen eines neuen Items
procedure Tm2m.Eintragen1Click(Sender: TObject);
begin
  Webbrowser1.Navigate('www.google.de');
end;

//Hinweis zur Version und Autor des Programms im Popup
procedure Tm2m.Hinweis1Click(Sender: TObject);

var
    Info: TInfoHinweis1;
begin
  info:= TInfoHinweis1.Create; //Objekt wird erzeugt
  info.ShowModal; //Formular wird angezeigt
end;

//Beenden des Programms
procedure Tm2m.Beenden1Click(Sender: TObject);
begin
  m2m.Close;
end;

end.
 
Füg mal unter deinem
Code:
var
  m2m: Tm2m; //Das Allgemeine Form-Fenster
 
implementation
noch ein
Code:
uses
  TFormHintDateiname;
, wobei TFormHintDateiname der Name ist, unter dem du die Unit abgespeichert hast, ohne das abschliessende ".pas".
Dadurch teilt du dann deinem Formular mit, dass es noch andere Formulare gibt, die innerhalb von ihm verwendet werden sollen. Ansonsten hat ja dein Tm2m wirklich keine Ahnung, was denn das TFormHint1 sein soll.
 

Neue Beiträge

Zurück