![]() |
Re: Anweisungen werden nicht durchgeführt. Warum?
Oben hab ich mal geschrieben:
Zitat:
Aber woran könnte das liegen? Muss der Befehl, der auf das Label zugreift vor dem zeichnen der BitMaps? Wenn ja, warum? eigentlich müsste das doch keine Rolle spielen? |
Re: Anweisungen werden nicht durchgeführt. Warum?
Wenn du die Bilder der Monster nur einmal zeichnest, dann sind sie beim nächsten Repaint-Ereignis wieder weg. Du musst also immer wenn ein Repaint- oder Refreshereignis ausgelöst wird, die Bilder neu zeichnen.
Desweiteren musst du deine Objekte wieder freigeben, du rufst zwei mal Monster := cMonster.Create auf, ohne die Objekte auch wieder freizugeben. So müllst du den Speicher zu. |
Re: Anweisungen werden nicht durchgeführt. Warum?
Die .Free Methoden hab ich mittlerweile schon eingefügt. Danke!
Doch ich hab versucht, den Befehl, der das Lebal füllt vor dem Zeichnen der Monster unterzubringen. Somit wird ja nach dem Zeichnen kein neuer Repaint ausgeführt. Doch funktioniet es immer noch nicht... :wall: |
Re: Anweisungen werden nicht durchgeführt. Warum?
Hallo, wenn man im Objektinspektor lLife auf visible = false setzt, dann klappts so: (sprich beim starten des Programms ist lLife.visible := false;)
Delphi-Quellcode:
Gruß bluescreen25
...
Monster.Show_Life(50,405,Monster.Life_max,Monster.Life_max,fKampf.Canvas); //Wenn ich die Zeile drin hab, funktioniert's nicht....?????? fKampf.lLife.Caption := format('%d/%d',[Monster.Life_max,Monster.Life_max]); fKampf.lLife.Visible:=true; ... |
Re: Anweisungen werden nicht durchgeführt. Warum?
Funktioniert auch nicht...
|
Re: Anweisungen werden nicht durchgeführt. Warum?
Zitat:
und nach der Formatierung erst auf visible := true; Der Fehler war doch, das die Monster beim Starten nur kurz aufflackerten, anstatt konstant gezeichnet zu bleiben. du kannst es auch im Ereignis TfKampf.FormCreate einsetzen, geht genauso gut.
Delphi-Quellcode:
Allerding habe ich dies anhand deines Projektes zum runterladen gemacht. Du sagst, du hast die free-Methoden eingesetzt, da weiss ich natürlich nicht, was du da gemacht hast !
procedure TfKampf.FormCreate(Sender: TObject);
begin lLife.Visible:= false; //<----- end; Ich habe dies mal so gelöst, es wird kein weiterer Speicher mehr abgenommen.
Delphi-Quellcode:
procedure cMonster.Show_Monster(x,y:Integer; filename:string; Canvas:TCanvas);
var Monster : TBitMap; begin Monster := TBitMap.Create; Monster.LoadFromFile(filename); Monster.Transparent := True; Canvas.Draw(x,y,Monster); Monster.Free; // <----- end; |
Re: Anweisungen werden nicht durchgeführt. Warum?
Hatte die Reihenfolge verändert. Jetzt funktioniert's! Danke! :cheers:
Doch verstehen kann ich's immer noch nicht so richtig... Naja, Problem gelöst! :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:55 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