AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FormCreate wird nicht ausgeführt

Ein Thema von Vasco da Gama · begonnen am 4. Aug 2009 · letzter Beitrag vom 6. Aug 2009
Antwort Antwort
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#1

FormCreate wird nicht ausgeführt

  Alt 4. Aug 2009, 19:09
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:
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;
danke schonmal mfG
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: FormCreate wird nicht ausgeführt

  Alt 4. Aug 2009, 19:14
Wie/wo erzeugst du das Formular?
Markus Kinzler
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#3

Re: FormCreate wird nicht ausgeführt

  Alt 4. Aug 2009, 19:16
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.
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

Re: FormCreate wird nicht ausgeführt

  Alt 4. Aug 2009, 20:17
Ist diese Prozedur auch dem OnCreate der Form zugewiesen?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#5

Re: FormCreate wird nicht ausgeführt

  Alt 5. Aug 2009, 10:27
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...
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#6

Re: FormCreate wird nicht ausgeführt

  Alt 5. Aug 2009, 12:36
Ok, nachdem ich in jedes Form Show das Idle neu gesetzt habe, läuft das erstmal, allerdings erhalte ich beim beenden eine Zugriffsverletzung:
Zitat:
Erste Gelegenheit für Exception bei $75B3FBAE. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 0048526B in Modul 'Strategiespiel.exe'. Lesen von Adresse 027F9F10'. Prozess Strategiespiel.exe (2360)
Die Form Creates und Destroys:
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:
procedure TForm2.FormDestroy(Sender: TObject);
begin
  AdGUI2.Free;
  AdConnector2.Free;
  AdSpriteEngine2.Free;
  AdImageList2.Free;
  AdPerCounter2.Free;
  AdDraw2.Free;
end;
Danke, mfG
EDIT:
Es wird auch nicht im Vollbild ausgeführt...
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#7

Re: FormCreate wird nicht ausgeführt

  Alt 5. Aug 2009, 19:23
1. problem gelöst, partikelsystem doppelt ge-free-t

aber vollbild macht er nicht
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#8

Re: FormCreate wird nicht ausgeführt

  Alt 6. Aug 2009, 09:18
Es heißt ja immer, für jede Frage neues Thema oder?
-Damit erledigt-
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  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 02:16 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