![]() |
FormCreate wird nicht ausgeführt
Hallo!
Ich versuche mich derzeit mit Andorra 2D. Mein Erstformular(Hauptmenü) funktioniert gut. Wenn ich allerdings ein zweites einbaue(zu, spielen), dann wird es nicht nur nicht schwarz, die ganze form create Procedure wird nicht ausgeführt...(Ich habe es mit mehreren ShowMessages probiert...) Form Create:
Delphi-Quellcode:
danke schonmal mfG
procedure TForm2.FormCreate(Sender: TObject);
var i: Integer; begin ReportMemoryLeaksOnShutdown := true; AdPerCounter2 := TAdPerformanceCounter.Create; AdDraw2 := TAdDraw.Create(self); AdDraw2.DllName := 'AndorraDX93D.dll'; if AdDraw2.Initialize then begin Application.OnIdle := Idle; Form1.AdImageList.Restore; //Erzeugen des Partikelsystems partsys := TAdParticleSystem.Create(AdDraw2); //Zuweisen des Bildes partsys.Texture := Form1.AdImageList.Items[0].Texture; AdGUI2 := TAdGUI.Create(AdDraw2); //Erzeugen der Klasse AdGUI2.Skin.LoadFromFile('Bilder/sunna.axs'); //Laden des Skins AdGUI2.Cursors.LoadFromFile('Bilder/cursors.xml'); //Laden der Cursor AdGUI2.LoadFromFile('Bilder/gui2.axg'); //Laden der GUI AdConnector2 := TAdGUIConnector.Create(AdGUI2); //Erzeugen des GUI Connectors AdConnector2.ConnectEventHandlers(AdDraw2.Window); //Verknüfen mit dem Elternfenstersystem //SpriteEngine erzeugen AdSpriteEngine2 := TSpriteEngine.Create(nil); AdSpriteEngine2.Surface := AdDraw2; with AdDraw2.Display do begin Width := 800; Height := 600; BitDepth := ad32Bit; //Die Farbtiefe. Hierbei sind die Werte "ad16Bit" und "ad32Bit" erlaubt. DisplayMode := dmFullscreen; end; end else begin ShowMessage('Error while initializing Andorra 2D. Try to use another display '+ 'mode or another video adapter.'); Close; end; HintWindowClass := TGraphicHintWindow; Application.ShowHint := False; Application.ShowHint := True; end; |
Re: FormCreate wird nicht ausgeführt
Wie/wo erzeugst du das Formular?
|
Re: FormCreate wird nicht ausgeführt
Delphi-Quellcode:
program Strategiespiel;
uses Forms, SSpiel in 'SSpiel.pas' {Form1}, SpielForm in 'SpielForm.pas' {Form2}; {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run; end. |
Re: FormCreate wird nicht ausgeführt
Ist diese Prozedur auch dem OnCreate der Form zugewiesen?
|
Re: FormCreate wird nicht ausgeführt
Danke, das wars.
Jetzt hab ich aber ein weiteres Problem: Form2 ist so wie ich es wollte, aber Form1 ist nur mehr ein graues Fenster... Danke, mfG... |
Re: FormCreate wird nicht ausgeführt
Ok, nachdem ich in jedes Form Show das Idle neu gesetzt habe, läuft das erstmal, allerdings erhalte ich beim beenden eine Zugriffsverletzung:
Zitat:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i, zufall:Integer; begin Randomize; ReportMemoryLeaksOnShutdown := true; AdPerCounter := TAdPerformanceCounter.Create; AdDraw := TAdDraw.Create(self); AdDraw.DllName := 'AndorraDX93D.dll'; if AdDraw.Initialize then begin Application.OnIdle := Idle; AdImageList := TAdImageList.Create(AdDraw); with AdImageList.Add('boy') do begin Texture.LoadGraphicFromFile('Bilder/boy.bmp',true,clFuchsia); PatternWidth := 96; PatternHeight := 96; end; with AdImageList.Add('baker') do begin Texture.LoadGraphicFromFile('Bilder/baker.bmp',true,clFuchsia); PatternWidth := 96; PatternHeight := 96; end; with AdImageList.Add('miller') do begin Texture.LoadGraphicFromFile('Bilder/miller.bmp',true,clFuchsia); PatternWidth := 96; PatternHeight := 96; end; with AdImageList.Add('miner') do begin Texture.LoadGraphicFromFile('Bilder/miner.bmp',true,clFuchsia); PatternWidth := 96; PatternHeight := 96; end; with AdImageList.Add('lumberjack') do begin Texture.LoadGraphicFromFile('Bilder/lumberjack.bmp',true,clFuchsia); PatternWidth := 96; PatternHeight := 96; end; with AdImageList.Add('BG') do begin Texture.LoadGraphicFromFile('Bilder/BG.bmp',true,clFuchsia); {PatternWidth := 96; PatternHeight := 96; } end; AdImageList.Restore; //Erzeugen des Partikelsystems partsys := TAdParticleSystem.Create(AdDraw); //Zuweisen des Bildes partsys.Texture := AdImageList.Items[0].Texture; AdGUI := TAdGUI.Create(AdDraw); //Erzeugen der Klasse AdGUI.Skin.LoadFromFile('Bilder/sunna.axs'); //Laden des Skins AdGUI.Cursors.LoadFromFile('Bilder/cursors.xml'); //Laden der Cursor AdGUI.LoadFromFile('Bilder/gui.axg'); //Laden der GUI AdConnector := TAdGUIConnector.Create(AdGUI); //Erzeugen des GUI Connectors AdConnector.ConnectEventHandlers(AdDraw.Window); //Verknüfen mit dem Elternfenstersystem //SpriteEngine erzeugen AdSpriteEngine := TSpriteEngine.Create(nil); AdSpriteEngine.Surface := AdDraw; for i := 0 to 9 do begin with TFigur.Create(AdSpriteEngine) do begin zufall := random(5); case zufall of 0: Image := AdImageList.Find('boy'); 1: Image := AdImageList.Find('baker'); 2: Image := AdImageList.Find('miller'); 3: Image := AdImageList.Find('miner'); 4: Image := AdImageList.Find('lumberjack'); end; AnimActive := true; AnimLoop := true; AnimSpeed := 15; XSpeed := -(random(100)+50); SetLine; end; with TBackgroundSprite.Create(AdSpriteEngine) do begin Image:=AdImageList.Find('BG'); z:=-1; Depth:=10; end; end; end else begin ShowMessage('Error while initializing Andorra 2D. Try to use another display '+ 'mode or another video adapter.'); Close; end; TAdButton(AdGUI.FindComponent('Start')).X := (ClientWidth div 2) - (TAdButton(AdGUI.FindComponent('Start')).Width div 2); TAdButton(AdGUI.FindComponent('Start')).Y := (ClientHeight div 4) - (TAdButton(AdGUI.FindComponent('Start')).Height div 2); TAdButton(AdGUI.FindComponent('Start')).OnClick := Start; TAdButton(AdGUI.FindComponent('Optionen')).X := (ClientWidth div 2) - (TAdButton(AdGUI.FindComponent('Optionen')).Width div 2); TAdButton(AdGUI.FindComponent('Optionen')).Y := ((ClientHeight div 4) * 2) - (TAdButton(AdGUI.FindComponent('Optionen')).Height div 2); TAdButton(AdGUI.FindComponent('Optionen')).OnClick := Options; TAdButton(AdGUI.FindComponent('Beenden')).X := (ClientWidth div 2) - (TAdButton(AdGUI.FindComponent('Beenden')).Width div 2); TAdButton(AdGUI.FindComponent('Beenden')).Y := ((ClientHeight div 4) * 3) - (TAdButton(AdGUI.FindComponent('Beenden')).Height div 2); TAdButton(AdGUI.FindComponent('Beenden')).OnClick := Beenden; HintWindowClass := TGraphicHintWindow; Application.ShowHint := False; Application.ShowHint := True; {CL:=loadIni(DE); if CL<>nil then fillProps([form1],CL); } end;
Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
begin AdConnector.Free; AdGUI.Free; AdSpriteEngine.Free; AdImageList.Free; AdPerCounter.Free; AdDraw.Free; partsys.Free; end;
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
var i: Integer; begin ReportMemoryLeaksOnShutdown := true; AdPerCounter2 := TAdPerformanceCounter.Create; AdDraw2 := TAdDraw.Create(self); AdDraw2.DllName := 'AndorraDX93D.dll'; if AdDraw2.Initialize then begin Application.OnIdle := Idle; AdImageList2 := TAdImageList.Create(AdDraw2); AdImageList2.Restore; //Erzeugen des Partikelsystems partsys := TAdParticleSystem.Create(AdDraw2); //Zuweisen des Bildes //partsys.Texture := AdImageList2.Items[0].Texture; AdGUI2 := TAdGUI.Create(AdDraw2); //Erzeugen der Klasse AdGUI2.Skin.LoadFromFile('Bilder/sunna.axs'); //Laden des Skins AdGUI2.Cursors.LoadFromFile('Bilder/cursors.xml'); //Laden der Cursor AdGUI2.LoadFromFile('Bilder/gui.axg'); //Laden der GUI AdConnector2 := TAdGUIConnector.Create(AdGUI2); //Erzeugen des GUI Connectors AdConnector2.ConnectEventHandlers(AdDraw2.Window); //Verknüfen mit dem Elternfenstersystem //SpriteEngine erzeugen AdSpriteEngine2 := TSpriteEngine.Create(nil); AdSpriteEngine2.Surface := AdDraw2; with AdDraw2.Display do begin Width := 800; Height := 600; BitDepth := ad32Bit; //Die Farbtiefe. Hierbei sind die Werte "ad16Bit" und "ad32Bit" erlaubt. DisplayMode := dmFullscreen; end; end else begin ShowMessage('Error while initializing Andorra 2D. Try to use another display '+ 'mode or another video adapter.'); Close; end; Form2.Close; HintWindowClass := TGraphicHintWindow; Application.ShowHint := False; Application.ShowHint := True; end;
Delphi-Quellcode:
Danke, mfG
procedure TForm2.FormDestroy(Sender: TObject);
begin AdGUI2.Free; AdConnector2.Free; AdSpriteEngine2.Free; AdImageList2.Free; AdPerCounter2.Free; AdDraw2.Free; end; EDIT: Es wird auch nicht im Vollbild ausgeführt... |
Re: FormCreate wird nicht ausgeführt
1. problem gelöst, partikelsystem doppelt ge-free-t :wall:
aber vollbild macht er nicht |
Re: FormCreate wird nicht ausgeführt
Es heißt ja immer, für jede Frage neues Thema oder?
-Damit erledigt- |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:25 Uhr. |
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