AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Anweisungen werden nicht durchgeführt. Warum?

Anweisungen werden nicht durchgeführt. Warum?

Ein Thema von nowmaxx · begonnen am 10. Jan 2006 · letzter Beitrag vom 11. Jan 2006
Antwort Antwort
Seite 2 von 2     12
nowmaxx

Registriert seit: 10. Jan 2006
13 Beiträge
 
#11

Re: Anweisungen werden nicht durchgeführt. Warum?

  Alt 11. Jan 2006, 14:21
Oben hab ich mal geschrieben:
Zitat:
Wenn ich jetzt diese eine Programmcodezeile (durch Kommentar gekennzeichnet) einfüge, werden dir vorigen Anweisungen nicht mehr durchgeführt.

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?
Nico
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#12

Re: Anweisungen werden nicht durchgeführt. Warum?

  Alt 11. Jan 2006, 15:15
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.
  Mit Zitat antworten Zitat
nowmaxx

Registriert seit: 10. Jan 2006
13 Beiträge
 
#13

Re: Anweisungen werden nicht durchgeführt. Warum?

  Alt 11. Jan 2006, 15:54
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...
Nico
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Anweisungen werden nicht durchgeführt. Warum?

  Alt 11. Jan 2006, 20:43
Hallo, wenn man im Objektinspektor lLife auf visible = false setzt, dann klappts so: (sprich beim starten des Programms ist lLife.visible := false

Delphi-Quellcode:
...
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;
...
Gruß bluescreen25
  Mit Zitat antworten Zitat
nowmaxx

Registriert seit: 10. Jan 2006
13 Beiträge
 
#15

Re: Anweisungen werden nicht durchgeführt. Warum?

  Alt 11. Jan 2006, 21:41
Funktioniert auch nicht...
Nico
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Anweisungen werden nicht durchgeführt. Warum?

  Alt 11. Jan 2006, 21:49
Zitat von nowmaxx:
Funktioniert auch nicht...
doch sicher.....es ging bei mir erst, nachdem ich das Label auf visible := false gesetzt hatte,
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:
procedure TfKampf.FormCreate(Sender: TObject);
begin
 lLife.Visible:= false; //<-----
end;
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 !

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;
  Mit Zitat antworten Zitat
nowmaxx

Registriert seit: 10. Jan 2006
13 Beiträge
 
#17

Re: Anweisungen werden nicht durchgeführt. Warum?

  Alt 11. Jan 2006, 22:28
Hatte die Reihenfolge verändert. Jetzt funktioniert's! Danke!
Doch verstehen kann ich's immer noch nicht so richtig...
Naja, Problem gelöst!
Nico
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:29 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