| Autor |
Beitrag |
Ebil
      
Beiträge: 131
|
Verfasst: So 24.08.08 16:00
Hi leute,
Im Project quelltext stehen ja die formulare die beim programmstart erstellt werden:
Delphi-Quelltext 1: 2: 3: 4: 5:
| Application.CreateForm(TfrmMain, frmMain); Application.CreateForm(TfrmShortcut, frmShortcut); Application.CreateForm(TfrmOpt, frmOpt); Application.CreateForm(TfrmAbout, frmAbout); Application.CreateForm(TfrmStartup, frmStartup); |
Nun hab ich ein paar rausgenommen da ich diese erst nach einem klick auf ein button erstellen will, was natürlich kein problem sein sollte.
Gesag getan, was passiert?
Delphi erstellt die formulare trozdem beim programmstart.
Was nun? hab schon versucht die formulare zu verbergen (frm.hide, frm.visible := false), funktioniert auch nicht im FormCreate...
Langsam weiss ich nichtmehr woran es liegen könnte, theoretishc sollte es ja klappen.
Die mainform kann auch nicht geändert werden (frmMain), auch wenn sie als letzer eintrag der zu erstellenden forms erscheind, Application.MainForm gibt immer frmMain aus (nicht vom namen irritieren lassen, das war mal die mainform, soll sich nun aber ändern).
Bin ein bisschen verzweifelt
Ebil
|
|
Radler
Hält's aus hier
Beiträge: 4
Win 98, XP
D4 Prof
|
Verfasst: So 24.08.08 16:19
Hast du die zusätzlichen Formulare nicht über Projekt > Optionen > Formulare... in die Liste der verfügbaren Formulare verschoben?
Dann werden die auch nicht beim Start automatisch erzeugt.
Viele Grüße,
Günter
|
|
Ebil 
      
Beiträge: 131
|
Verfasst: So 24.08.08 17:46
Wusste ich nichts von, hab ich nun aber gemacht, trozdem gibts probleme.
Es kam ein fehler (dublicate ressource), also hab ich die deklaration im Project quelltext entfernt
Delphi-Quelltext 1:
| mMain in 'mMain.pas' , |
Wenn ich dann starte, tauchen trozdem alle forumlare auf.
Und wenn ich dann in Optionen unter formulare schau, steht dort nur das hauptformular mStartup.
Ebil
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: So 24.08.08 17:52
Du weißt schon, was du da tust, oder?
Da ich von "NEIN" ausgehe, helf ich dir mal:
Die Zeile, die du gerade gepastet hast, gibt nur an, dass die Datei zum Projekt gehört! Die hat nichts damit zu tun, ob das Formular beim Starten angezeigt wird, oder nicht.
Und der Kommentar, der dahinter steht.. da bin ich mir grad nicht sicher, ob der für Delphi wichtig ist.
Aber normalerweise sollte man nicht händisch in der .dpr Datei rumfingern, wenn man nicht genau weiß, was man da macht!
Mein Vorschlag: Leg das Projekt neu an, bind alle Units wieder ein (Projekt -> Datei hinzufügen) und änder die Formulare über die Projektoptionen.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: So 24.08.08 18:28
Diese Zeile steht ja auch nicht in der .dpr!
Ebil hat folgendes geschrieben: |
Es kam ein fehler (dublicate ressource), also hab ich die deklaration im Project quelltext entfernt
|
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: So 24.08.08 19:16
Ja, und die .dpr Datei ist was? Richtig, die Projektdatei oder auch Projektquelltext.
Wenn du deine Änderungen mal rückgängig machst, und uns die genaue Fehlermeldung nennst (duplicate resource), können wir auch noch versuchen, daran rumzudoktorn.
Aber die Projektdatei neu anzulegen wär sicherlich einfacher.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Ebil 
      
Beiträge: 131
|
Verfasst: So 24.08.08 20:17
Das project ist schon verdammt groß mittlerweile, und ich weiss zum teil was ich mach, und ohne etwas auszuprobieren, lernt man nix dazu.
Die datei ist schon im urzustand, ich sagte auch nicht das diese zeile etwas mit dem anzeigen oder nichtanzeigen zu tun hat, nur das falls ich diese zeile entferne der dublicate ressource error weg geht.
Wobei ich nun merkte das es sich um eine andere zeile handelt, nun startes das prog ohne probleme, trozdem werden alle formulare erstellt, obwohl sie in Verfügbare formulare drin sind und im Project quelltext(und wer öffnet da bitte dir .dpr?), diese nicht erstellt werden, sondern erst nach einem click auf einem button erstellt werden sollten.
Sind also eigentlich wieder am anfang
Ebil
|
|
Ebil 
      
Beiträge: 131
|
Verfasst: Mo 25.08.08 21:05
Ich bin noch weiter am probieren und nun so weit, das er die formulare nichtmehr automatisch erstellt, aber etwas ist extrem komisch:
Im neuen hauptformular erstellt er falls der code für die neuen formulare vorhanden ist, diese trozdem automatisch, obwohl diese in einem BUTTON CLICK ereignis stehen.
Delphi-Quelltext 1: 2: 3: 4:
| procedure TfrmStartup.btStartClick(Sender: TObject); begin Application.CreateForm(TfrmMob, frmMob); end; |
Das zb wird einfach erstellt, in einem Click ereignis, direkt beim start.
Wie geht sowas? Da wird nix geklickt...
Ebil
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mo 25.08.08 23:17
Händisch erstellt man Formulare eigentlich so, wie normale Komponenten auch:
Delphi-Quelltext 1:
| frmMob := TfrmMob.create(self); |
Woran lags denn, dass die Formulare vorher trotzdem noch automatisch erstellt wurden? vielleicht hat mal jemand das gleiche Problem.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Ebil 
      
Beiträge: 131
|
Verfasst: Di 26.08.08 19:44
Wie ichs genau gelöst hab ka, einfach bisschen rumgespielt (hatte ja schona lles durch) iwann gings dann.
Auch mit deinem code (was eig. nicht anders als meiner ist), wirds automatisch erstellt, ohne das man auf den button klickt.
Ebil
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Di 26.08.08 21:14
Setz da mal nen Haltepunkt, und schau dir dann den Aufruf-Stack an, aus welcher Prozedur der da reinspringt..
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Ebil 
      
Beiträge: 131
|
Verfasst: Di 26.08.08 22:04
Was genau soll ich denn nachschauen?
Der code von
procedure TfrmStartup.btStartClick(Sender: TObject);
Wird aufjedenfall ausgeführt, was ich schon ziemlich komisch find...
Ebil
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Di 26.08.08 22:13
Hab ich doch geschrieben, den Aufruf-Stack.
Ansicht -> Debug-Fenster -> Aufruf-Stack.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Ebil 
      
Beiträge: 131
|
Verfasst: Di 26.08.08 22:54
Naja kenn mich nich so mit debuggen aus (halt nur grundlagen, auch wenn ich tuts gelesen hab, tu ich mich damit imma schwer).
Da steht einiges:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| mStartup.TfrmStartup.btStartClick($144DA40) :20158aaf TCustomForm.DoCreate + $37 :20158707 TCustomForm.AfterConstruction + $17 :201586dd TCustomForm.Create + $179 :20162785 TApplication.CreateForm + $71 Projekt.Projekt :7c816ff7 kernel32.RegisterWaitForInputIdle + 0x49 |
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Di 26.08.08 23:07
Überprüf mal bitte, was du dem Ereignis OnCreate des Formulars zugewiesen hast....
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Ebil 
      
Beiträge: 131
|
Verfasst: Mi 27.08.08 21:55
Nichts von bedeutung (was mir sicher auch aufgefallen wäre...  ),
Hab alles da auskommentiert, trozdem erscheinen alle fenster...
Vllt sollte ich mir langsam ne andere lösung suchen ^^,
|
|
uko
      
Beiträge: 220
Erhaltene Danke: 1
Win XP, VISTA, WIndows 7
Delphi 2007/2010 Prof
|
Verfasst: Do 28.08.08 09:23
Such doch mal das Projekt durch, ob nicht an irgendeiner Stelle btStartCklick per Hand aufgerufen wird! Ich vermute jetzt mal, daß dies entweder im OnCreate des Hauptformulars (zumindest was Delphi als Hauptformular hält!) passiert oder Du läßt TFrmStartup automatisch erzeugen und dort ist es im OnCreate oder einem überschriebenen Constructor drinnen.
Grüße,
Uli
|
|
Ebil 
      
Beiträge: 131
|
Verfasst: Do 28.08.08 16:26
Hab ich ja schon gemacht, alles durchgeschaut, und war mir so oder so sicher das ich es nicht von hand aufrufe ( es ist immerhin der startknopf, es gibt ja keinen grund den ein 2. mal zu drücken).
Deswegen ist mir das ganze unerklärlich...
Ebil
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Do 28.08.08 16:28
kannst du mal das ganze projekt gezippt hochladen?
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Ebil 
      
Beiträge: 131
|
Verfasst: Do 28.08.08 16:57
Ich sagte das das projekt schon relativ groß ist, und daran arbeite ich schon einige monate, sowas will ich wirklich nirgendwo releasen.
Muss ich wohl allein irgendwie nen anderen weg finden.
Ebil
|
|