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
 
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, 11: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
 


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 03: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