AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Info-Fenster nachträglich vor Programm anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Info-Fenster nachträglich vor Programm anzeigen

Ein Thema von IwasNix · begonnen am 25. Okt 2017 · letzter Beitrag vom 25. Okt 2017
Antwort Antwort
IwasNix

Registriert seit: 15. Apr 2016
Ort: 2230 Gänserndorf
9 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Info-Fenster nachträglich vor Programm anzeigen

  Alt 25. Okt 2017, 13:18
Ein herzliches Servus, ich komme einfach nicht weiter

Ich möchte ein bestehendes Programm um ein Info-Fenster (frmInfo) ergänzen.
Dieses soll bei Programmstart angezeigt werden.

Auch wenn ich in Projekt/Optionen/Formulare als Hauptformular frmInfo auswähle, so erscheint trotzdem frmStart als erstes und frmInfo liegt hinter dem frmStart.

Wenn ich frmStart als Hauptfenster lasse und in frmStart versuche mit frmInfo.ShowModal(); in FormActivate anzuzeigen bekomme ich die Fehlermeldung :Zugriffsverletzung bei Adresse 01206A82 in ...

Aufgabe:
Vor dem bestehenden Programm sollen nun einige Informationen wie z.B. Anzahl offener Rechnungen angezeigt werden und erst nach Bestätigung mit dem Button-OK im Info-Fenster soll das eigentliche Programm verwendet werden können.

Für jede Info bin ich euch dankbar
LG Roman
Roman
Wär rechdschreipfehler Finded tarf sie pehalten.

IwasNix
  Mit Zitat antworten Zitat
yogie

Registriert seit: 11. Sep 2003
Ort: bei Goslar
213 Beiträge
 
Delphi 6 Professional
 
#2

AW: Info-Fenster nachträglich vor Programm anzeigen

  Alt 25. Okt 2017, 13:35
Hallo,
wenn ich Dich richtig verstehe, soll das Fenster vor der eigentlichen
Main-Form angezeigt werden. Dazu muß die Projektdatei *.dpr bearbeitet werden.
Nur als Anregung:
Code:
uses
  Forms,
  sysutils,
  xxxMain in 'xxxMain.pas' {frmMain},
  ... usw
{$R *.res}

begin
  frmIntro:=TfrmIntro.Create(Application);
  frmIntro.Show;
  frmIntro.Update;
  sleep(1000);

  Application.Initialize;

  Application.CreateForm(TfrmMain, frmMain);
  ... usw

  frmIntro.Close;
  frmIntro.Release;

  Application.Run;
end.
sleep ist da natürlich nicht wirklich gut, sorgt aber dafür, daß frmIntro wenigstens
eine Sekunde zu shen ist.
Kompatibilität ist ein Euphemismus für n i c h t einhunderprozentige Austauschbarkeit
http://b-und-l-service.de/
  Mit Zitat antworten Zitat
IwasNix

Registriert seit: 15. Apr 2016
Ort: 2230 Gänserndorf
9 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Info-Fenster nachträglich vor Programm anzeigen

  Alt 25. Okt 2017, 13:58
Super ....
Funktioniert, ich habe nur noch Show in ShowModal geändert und sleep(1000) entfernt.

Jetzt wird das Info-Fenster solange angezeigt bis der OK-Button gedrückt wird. ( frmInfo.CloseModal; )

Erst dann wird das 'eigentliche Programm' ausgeführt - echt super!

Danke für die rasche Hilfe
Roman
Wär rechdschreipfehler Finded tarf sie pehalten.

IwasNix
  Mit Zitat antworten Zitat
yogie

Registriert seit: 11. Sep 2003
Ort: bei Goslar
213 Beiträge
 
Delphi 6 Professional
 
#4

AW: Info-Fenster nachträglich vor Programm anzeigen

  Alt 25. Okt 2017, 14:00
... freut mich, das war die gute Tat für heute
Kompatibilität ist ein Euphemismus für n i c h t einhunderprozentige Austauschbarkeit
http://b-und-l-service.de/
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
668 Beiträge
 
Delphi 12 Athens
 
#5

AW: Info-Fenster nachträglich vor Programm anzeigen

  Alt 25. Okt 2017, 14:31
Wenn ich frmStart als Hauptfenster lasse und in frmStart versuche mit frmInfo.ShowModal(); in FormActivate anzuzeigen bekomme ich die Fehlermeldung :Zugriffsverletzung bei Adresse 01206A82 in ...
Das muss aber funktionieren. Mache ich ständig so.
Wo erzeugst du denn dein frmInfo. Wenn du es automatisch erzeugen lässt, ist es an dieser Stelle möglicherweise noch nicht vorhanden. Also besser manuell erzeugen, wenn es gebraucht wird.

Also im FormActivate vom frmStart:

Delphi-Quellcode:
  frmIntro:=TfrmIntro.Create(nil);
  try
    frmIntro.Show;
  finally
    frmInfo.Free;
  end;
Und dann noch mit einem Flag dafür sorgen, dass dieser Code nur beim ersten FormActivate nach dem Programmstart ausgeführt wird. Ich finde das eleganter als den Weg über die .dpr, weil man dann alles zusammen hat.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Info-Fenster nachträglich vor Programm anzeigen

  Alt 25. Okt 2017, 14:33
Wenn ich frmStart als Hauptfenster lasse und in frmStart versuche mit frmInfo.ShowModal(); in FormActivate anzuzeigen bekomme ich die Fehlermeldung :Zugriffsverletzung bei Adresse 01206A82 in ...
Das muss aber funktionieren. Mache ich ständig so.
Wo erzeugst du denn dein frmInfo. Wenn du es automatisch erzeugen lässt, ist es an dieser Stelle möglicherweise noch nicht vorhanden. Also besser manuell erzeugen, wenn es gebraucht wird.

Also im FormActivate vom frmStart:

Delphi-Quellcode:
  frmIntro:=TfrmIntro.Create(nil);
  try
    frmIntro.Show;
  finally
    frmInfo.Free;
  end;
Wenn du das so machst wie in deinem Beispiel dann bezweifle ich stark, dass du überhaupt etwas siehst. Wenn überhaupt, dann nur ein kleines Aufblitzen des Fensters.
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#7

AW: Info-Fenster nachträglich vor Programm anzeigen

  Alt 25. Okt 2017, 15:23
Wenn überhaupt dann so

Delphi-Quellcode:
 frmIntro:=TfrmIntro.Create(nil);
  try
    frmIntro.ShowModal; // MODAL!
  finally
    frmInfo.Free;
  end;
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
668 Beiträge
 
Delphi 12 Athens
 
#8

AW: Info-Fenster nachträglich vor Programm anzeigen

  Alt 25. Okt 2017, 16:54
Ja, ja, ist ja gut.

Ich meinte natürlich ShowModal
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.993 Beiträge
 
Delphi 12 Athens
 
#9

AW: Info-Fenster nachträglich vor Programm anzeigen

  Alt 25. Okt 2017, 17:30
Könnte man auch etwas kompakter so erledigen:

Delphi-Quellcode:
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TfrmMain, frmMain);
  Application.CreateForm(TfrmIntro, frmIntro);
  // eventuell noch weitere Forms erstellen
  frmIntro.ShowModal;
  Application.Run;
end.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 07:24 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