Autor |
Beitrag |
agm65
Hält's aus hier
Beiträge: 3
XP
|
Verfasst: Do 02.10.03 03:19
hi jungs, ich bins wieder (der VBler)....
meine main form sollte beim start unsichtbar sein...
form1.visible := false, bringt mir nen fehler:
die eigenschaft visible kann in onSHow oder onHide nicht verändert werden... ? was bedeutet das ?
thx cu agm65
am liebsten in icq adden .....(hab delphi seit 3 tagen, ist doch einiges anderes als in vb...da frag ich öffters mal was  ) ....
es lohnt sich auch für euch, versprochen ,,,,,
|
|
Tr3bi
Hält's aus hier
Beiträge: 5
Windows XP
D5 Prof
|
Verfasst: Do 02.10.03 07:50
Hallo VBler
Soweit ich weiss ist es mit Delphi nicht Möglich die Form1 beim starten auf invisible zu setzen, weil Du die Form damit auf Disabled setzt.
Leider kannst Du bei Disabled die Form nicht mehr ansprechen somit auch keine Buttons etc. die auf der Form sind ansprechen.
Was hast Du den genau vor?
Falls jemand was anderes behauptet wäre ich aber auch Dankbar auf einen Tipp :p
GreetZ
Tr3bi
_________________ Chancen haben nur die, die besser als der durchschnitt sind!
|
|
lemming
      
Beiträge: 470
Mac OS 10.3.1
Delphi 6 Pro, Kylix 3
|
Verfasst: Do 02.10.03 11:47
Tr3bi
Zitat: | Soweit ich weiss ist es mit Delphi nicht Möglich die Form1 beim starten auf invisible zu setzen, weil Du die Form damit auf Disabled setzt.
|
Das stimmt leider nicht. Die Form ist dann nur nicht sichtbar. Du kannst bei OnShow oder OnCreate die Form nicht Visible := False machen weil sie es noch nicht gibt (Create). Das ist aber nu beim erstenmal OnShow. Später geht das dann schon, wenn sie mal aus dem Minimized kommt oder so.
Du kannst auch Delphi Projekte ohne Form schreiben. Einfach eine Konsolenanwendung machen und das Type Console raus löschen. Schon hast du ein Programm das Gesichtslos ist. Kannst dann natürlich auch keine Visuellen Komponenten verwenden. Aber alles andere schon, dafür gibts ja DataContainer.
Oder du machst es ganz billig und sagst das
Delphi-Quelltext 1: 2:
| Form1.BorderStyle := bsNone; Form1.Height := 0; |
Und in einem Timer machst du
Delphi-Quelltext 1: 2:
| Timer1.Enabled := False; Form1.Visible := False; |
-lemmi
Moderiert von Klabautermann: Delphi-Tags hinzugefügt.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Do 02.10.03 11:58
Hallo!
Du kannst das Zeigen der Mainform verhindern, indem Du dies in der Datei "project1.dpr" (bei einem "frischen" Projekt, sonst heißt sie natürlich anders) angibst. Und zwar so:
Delphi-Quelltext 1: 2: 3: 4:
| Application.Initialize; Application.ShowMainForm := False; Application.CreateForm(TForm1, Form1); Application.Run; |
MfG
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Motzi
      
Beiträge: 2931
XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
|
Verfasst: Do 02.10.03 12:07
lemming hat folgendes geschrieben: | Du kannst bei OnShow oder OnCreate die Form nicht Visible := False machen weil sie es noch nicht gibt (Create). |
Stimmt nicht! Die Form existiert im OnCreate-Ereignis bereits (der Constructor ist abgschlossen, das Objekt also fertig erzeugt), allerdings wird OnCreate ausgelöst _bevor_ der globalen Variable Form1 die Objekt-Referenz zugewiesen wird. Ein Zugriff auf die Variable Form1 in OnCreate kann also nette AVs erzeugen...
Zitat: | Das ist aber nu beim erstenmal OnShow. Später geht das dann schon, wenn sie mal aus dem Minimized kommt oder so. |
Nein, Delphi unterbindet das ändern der Sichtbarkeit in OnShow und OnHide-Events immer! Die richtige Lösung hat Peter Lustig gepostet -> einfach Application.ShowMainForm auf False setzen...
Zitat: | Du kannst auch Delphi Projekte ohne Form schreiben. Einfach eine Konsolenanwendung machen und das Type Console raus löschen. Schon hast du ein Programm das Gesichtslos ist. Kannst dann natürlich auch keine Visuellen Komponenten verwenden. Aber alles andere schon, dafür gibts ja DataContainer. |
Wenn man diese zur Laufzeit selbst erzeugt geht es auch..  ist aber mühsam...!
Zitat: | Oder du machst es ganz billig und sagst das
Form1.BorderStyle := bsNone;
Form1.Height := 0;
Und in einem Timer machst du
Timer1.Enabled := False;
Form1.Visible := False; |
Also billiger gehts ja wirklich nicht mehr!! Von derartigem Code ist definitv abzuraten!!
_________________ gringo pussy cats - eef i see you i will pull your tail out by eets roots!
|
|
Killmag10
      
Beiträge: 297
Suse Linux / DOS / Windows All In One ;)
D4 / D2005
|
Verfasst: Do 02.10.03 12:23
vieleicht brauchst du das:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.FormActivate(Sender: TObject); begin Application.Minimize; showWindow(application.handle,sw_hide); end;
end. |
hoff das hilft dir weiter.
mfg. Killmag10
_________________ Mega- inkompetente Computer- ruinierende Organisation spioniert ohne funktionierende Technik
|
|
einfach112
      
Beiträge: 168
xp
del7
|
Verfasst: Di 13.04.04 00:15
Titel: ICH GIBS AUF !
also dieser thread hier ist wunderschön ! aber stimmt von vorne bis hinten nicht ! kann daran liegen das ich d7 habe oder ?!
also wenn ich Application.ShowMainForm := False; benutze dann funtzt bei mir fast garnix mehr !
weder timer noch webbrowser !?
warum nur !?
ich bräuchte echt mal hilfe hier !? hoffe das liest hier noch einer !
vielen dank schonmal im voraus cu
einfach112
_________________ sorry bin noob !
|
|
andy09071978
      
Beiträge: 33
Win XP, Win 2000
D7 Prof
|
Verfasst: Di 13.04.04 10:37
|
|
einfach112
      
Beiträge: 168
xp
del7
|
Verfasst: Di 13.04.04 20:42
Titel: mmhh
ok ! werde ich innerhalb der nächsten 20 min testen ! dank ! melde mich dann später nochmal wenns geht oder auch wenn nicht LOL !
_________________ sorry bin noob !
|
|
einfach112
      
Beiträge: 168
xp
del7
|
Verfasst: Di 13.04.04 21:11
Titel: nöö sorry
also hat nicht geklappt !
also 1. du hast dich glaube ich vertan ! du hast erst
unsichtbar gemacht : Application.ShowMainForm := False;
und anschliessend wieder sichtbar :
Application.ShowMainForm := True; //<-- die Zeile habe ich eingefügt
naja es sollte ja unsichtbar sein ! also eigentlich genau umgedreht ! habe zur sicherheit mal bei versucht !
beim deiner version klar ! es wurde alles angezeigt !
bei der umgedrehten dann war zwar keine form zu sehen aber meine webbrowser auf der form funktionierten leider nicht !?
hat vieleicht sonst noch einer ne idee ?!
thx cu
einfach112
_________________ sorry bin noob !
|
|
ixtreme
Gast
Erhaltene Danke: 1
|
Verfasst: Di 13.04.04 21:20
wenn ich auf projekte quelltext gehe und folgendes so einfüge....
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| program Project1;
uses Forms, Unit1 in 'Unit1.pas' ;
{$R *.RES}
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.ShowMainForm := False; Application.Run; end. |
funktioniert der twebbrowser, genauso wie der timer ohne probleme!
Gruß
ixtreme.de
|
|
einfach112
      
Beiträge: 168
xp
del7
|
Verfasst: Di 13.04.04 21:42
kann es daran liegen das ich nur ne enterprise trail version habe ?!
werde es sofort nochmal testen wie du sagtest !
mom !
auf alle fälle schonmal danke für antwort !
_________________ sorry bin noob !
|
|
ixtreme
Gast
Erhaltene Danke: 1
|
Verfasst: Di 13.04.04 21:52
einfach112 hat folgendes geschrieben: | kann es daran liegen das ich nur ne enterprise trail version habe ?!
|
normal nicht
|
|
einfach112
      
Beiträge: 168
xp
del7
|
Verfasst: Di 13.04.04 21:54
sorry ! oder bin ich einfach zu noob !?
hier mal meine ganzen quelltexte : zuerst project1
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| program Project1;
uses Forms, Unit1 in 'Unit1.pas' ;
{$R *.RES}
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.ShowMainForm := False; Application.Run; end. |
und dann noch die unit hier
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, ExtCtrls;
type TForm1 = class(TForm) Timer1: TTimer; WebBrowser1: TWebBrowser; WebBrowser2: TWebBrowser; WebBrowser3: TWebBrowser; procedure Timer1Timer(Sender: TObject); procedure WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); procedure WebBrowser2DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); procedure WebBrowser3DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject); begin webbrowser1.Navigate('http://www.ard.de'); timer1.Enabled := false ; end;
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin webbrowser2.Navigate('http://www.zdf.de'); end;
procedure TForm1.WebBrowser2DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin webbrowser3.Navigate('http://www.rtl.de'); end;
procedure TForm1.WebBrowser3DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin application.Terminate ; end;
end. |
also wie gesagt ! bin über jede antwort dankbar ! vor allem wenn um fehler geht dich ich somit dann schon zum ca. 20 mal gemacht habe !
denn habe das alles schon mind. so oft neu geschriebne !?
Moderiert von Motzi: Code- durch Delphi-Tags ersetzt.
_________________ sorry bin noob !
|
|
einfach112
      
Beiträge: 168
xp
del7
|
Verfasst: Di 13.04.04 22:01
Titel: hier nachmehr sicherheit :
habe alles was ich im prject ordner habe mal als rar gepackt ! vieleicht findet sich ein eventueller fehler schneller ?!
runter laden @ :
www.my-wireless-lan.de/Projects.rar
thx
_________________ sorry bin noob !
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: Mi 14.04.04 01:18
Hi,
also wenn ich das mit meiner D6 Enterprise compliere funktioniert alles einwandfrei! Liegt anscheinend wirklich an deine Delphiversion.
|
|