Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [DelphiX] DXDraw malt nicht ! (https://www.delphipraxis.net/34177-%5Bdelphix%5D-dxdraw-malt-nicht.html)

Neutral General 18. Nov 2004 18:58


[DelphiX] DXDraw malt nicht !
 
DXDraw malt schon, aber erst nachdem man wenn diese Prozedur beendet ist wenn man Das Fenster minimiert und wieder maximiert ... vorher gibts nix zu sehn :gruebel:

Delphi-Quellcode:
var Walls : Integer = 0;

procedure TForm1.Button1Click(Sender: TObject);
var LevelTXT : TStringlist;
    LevelINI : TIniFile;
    x1,y1 : Integer;
    Tile : String;
    WandTile : String;
begin
  Opendialog1.Execute;
  Button1.Visible := false;
  LevelINI := TIniFile.Create(Opendialog1.Filename);//Da drin steht welche Wand-Graphik benutzt wird
  DXImageList1.Items.Add;                         //Eintrag in der ImageList hinzufügen und laden
  with DXImageList1.Items[0] do
  begin
   WandTile := LevelIni.ReadString('Einstellungen','Wand','');
   Picture.LoadFromFile(WandTile);
   Name := 'Wand';
  end;
  LevelTXT := TStringlist.Create;               // Levelaufbau aus der Textdatei lesen
  LevelTXT.LoadFromFile('Walls.txt');

  for Y1 := 0 to 23 do begin                    
   for X1 := 0 to 31 do begin
    Tile := copy(LevelTXT.Strings[y1],x1,1);   // Zeichen für Zeichen einlesen
    if Tile = '1' then begin                   // Wenn das aktuelle Zeichen '1' ist dann Wand malen
     Wand[Walls] := TWand.ACreate(DXSpriteEngine1.Engine, DXImageList1.Items.Find('Wand'));
     with Wand[Walls] do begin
      x := x1*32;
      y := y1*32;
     end;
    end;
   end;
  end;
end;
Also ich finde das sehr seltsam... Sowas hatte ich noch nie ... :gruebel:
Weis jemand worans lieg ?

Elite 18. Nov 2004 19:04

Re: [DelphiX] DXDraw malt nicht !
 
Bin nicht gerade der DelphiX Crack, aber zumindest sehe ich nirgends eine DxDraw1.Flip;

Neutral General 18. Nov 2004 19:05

Re: [DelphiX] DXDraw malt nicht !
 
Das ist ja im Timer und wenn ich die Anwendung minimiere + maximiere ist ja alles gezeichnet :gruebel:

mimi 21. Nov 2004 08:37

Re: [DelphiX] DXDraw malt nicht !
 
Delphi-Quellcode:
Also ich finde das sehr seltsam... Sowas hatte ich noch nie ... Grübelnd...
Weis jemand worans lieg ?
ja dort in der procedure lädts du nur aber zeichen tutst du nicht, dafür brauchst du ein DXTimer *G*

Neutral General 21. Nov 2004 11:32

Re: [DelphiX] DXDraw malt nicht !
 
Zitat:

Zitat von Neutral General
Das ist ja im Timer und wenn ich die Anwendung minimiere + maximiere ist ja alles gezeichnet :gruebel:

"Das ist ja im Timer..." Ich habe einen aktiven DXTimer mit dem Intervall 1 in dem das drinsteht :

Delphi-Quellcode:
procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
  DXInput1.Update;
  DXSpriteEngine1.Move(1);
  DXDraw1.Surface.Fill(0);
  DXSpriteEngine1.Draw;
  DXDraw1.Flip;
end;
Es liegt also NICHT am Timer !!!

Ich hab aber mittlerweile eine Lösung gefunden, die funktioniert, die ich mir aber nicht erklären kann. Ich musste nach dem Zeichnen des Levels DXDraw1.Initialize aufrufen dann hats geklappt.
(Obwohl Autoinitialize := true :gruebel: )


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 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