Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Form gar nicht erst visible werden lassen (https://www.delphipraxis.net/12348-form-gar-nicht-erst-visible-werden-lassen.html)

Lefko 25. Nov 2003 19:13


Form gar nicht erst visible werden lassen
 
Hallo Freunde :hi: ,

Ich weiss nicht, wie man NonVCL programmiert, deswegen hab ich eine Form genommen, einen timer drauf, der n bisschen pollt, und das ganze sofort bei Form1.create invisible gemacht, trotzdem ist für ne halbe sekunde oder so die form zu sehen wenn das prog startet.
gibt es da ne möglichkeit, das komplett zu verhindern?

MfG Lefko.

axelf98 25. Nov 2003 19:19

Re: Form gar nicht erst visible werden lassen
 
Wenn du ein Programm schrieben willst, wo kein Form zu sehen ist, warum machst du dann eins?
Schreib dein Programm doch einfach als PROGRAM oder so. Wenn du natürlich irgendwann doch mal ein Fenster zeigen willst müsstest du dann eins erstellen.

Als Übergangslösung bietet sich an in Form1.OnPaint - self.visible := false; zu schreiben!

Lefko 25. Nov 2003 19:27

Re: Form gar nicht erst visible werden lassen
 
öh, ich mach das nicht, weil ich davon keine ahnung habe...

übrigens, hab mich vertan, ich mach das nicht im oncreate der form invisible, sondern hab ich in
Project.dpr geschrieben:

Code:
  Application.Initialize;
  Application.Title := 'rxgard';
  Application.CreateForm(TForm1, Form1);
  Application.Run;
  Application.Mainform.visible := false;
das dürfte doch ca. genauso "schnell" sein wie der o.g. Vorschlag mit self.visible?

wonach muss ich suchen und worüber informieren, wenn ich ein program schreiben will?
das hat keine form, ja?


MfG Lefko.

Christian S. 25. Nov 2003 19:40

Re: Form gar nicht erst visible werden lassen
 
Hallo!

Wenn Du es so machst, wird die Form gar nicht (auch nicht für eine halbe Sekunde) sichtbar:
Delphi-Quellcode:
  Application.Initialize;
  Application.ShowMainForm := False;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
MfG
Peter

axelf98 25. Nov 2003 19:41

Re: Form gar nicht erst visible werden lassen
 
Das wäre zB. ein Programm, dass eine Datei nach C:\Test\ schreibt und falls sie schon vorhanden ist, diese löscht. Bei einem Fehler wird eine Meldung ausgegeben.

Delphi-Quellcode:
program MeinProgramm;

uses
  Dialogs,
  Sysutils,
  Inifiles;

  var Dateien : Tinifile;

begin

  if fileexists('C:\Test\test.txt') then
  begin
   try
    deletefile(Pchar('C:\Test\test.txt'));
   except
    showmessage('Fehler!');
   end;
  end ELSE
  begin
   try
   CreateDir('C:\Test');
   Dateien := Tinifile.Create('C:\Test\test.txt');
   Dateien.WriteString('TEST','TEST','hallo');
   Dateien.Free;
   except
   end;
  end;

 end.

Wenn man einen bestimmten Befehl braucht -> Einfach in der Hilfe danach suchen und die entsprechenden Units miteinbinden (Sysutils, Dialogs zB.)

Lefko 25. Nov 2003 19:45

Form gar nicht erst visible werden lassen [GELÖST]
 
@Löwenzahn-Mann ;) : Ja, wunderbar, klappt gut, danke :)

@axelf: Danke für den Code, aber die Methode von Lustig ist doch wesentlich einfacher ;)

MfG Lefko

Lefko 25. Nov 2003 20:19

Re: Form gar nicht erst visible werden lassen [DOCH NICHT]
 
Hm, ich hab mich geirrt!

Das von Peter Lustig mit dem Application.Showmainform := false funktioniert doch nicht!

Wenn ich nach dem Create ein Application.mainform.visible := false setze, dann ist die form ca ne halbe sek zu sehen.
Wenn ich vor das create ein Application.Showmainform := false setze, dann bleibt der balken der form unten links in der ecke sichtbar und geht nicht weg.

Also, was sollte ich nun machen? Da ich die form später noch brauche, kann ich auch das von axelf nich benutzebn..


MfG Lefko.

Schubi 25. Nov 2003 20:27

Re: Form gar nicht erst visible werden lassen
 
Dü könntest Axels Methode nehmen, aber trotzdem das Zeugs für dein Fenster reinpacken, aber das Fenster erst später, wenn du es brauchst mit Create erzeugen.

Oder irre ich mich?

Christian S. 25. Nov 2003 20:38

Re: Form gar nicht erst visible werden lassen
 
Hallo!

Ich habe mal ein ganz frisches Projekt gemacht und die Zeile mit dem ShowMainForm an der entsprechenden Stelle einfügt. Funktioniert wunderbar.

Und was meinst Du mit "Balken der Form unten links"? :gruebel:

axelf98 25. Nov 2003 21:00

Re: Form gar nicht erst visible werden lassen
 
Bitte sehr, so gehts in jedem Fall:

Delphi-Quellcode:
program MeinProgramm;

uses
  Dialogs,
  Sysutils,
  Inifiles,
  Forms,
  Unit1 in 'Unit1.pas'  {Form1};

var Dateien : Tinifile;

begin

  if fileexists('C:\Test\test.txt') then
  begin
   try
    deletefile(Pchar('C:\Test\test.txt'));
   except
    showmessage('Datei nicht gefunden!');
   end;
  end ELSE
  begin
   try
   CreateDir('C:\Test');
   Dateien := Tinifile.Create('C:\Test\test.txt');
   Dateien.WriteString('TEST','TEST','hallo');
   Dateien.Free;
   except
   end;
  end;

  // Tue dies und das..

  // und später...

  Application.Initialize;
  Application.CreateForm(TForm1, Form1);    // Jetzt kommt das Form
  Application.Run;


end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:58 Uhr.
Seite 1 von 2  1 2      

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