Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Anfängerhilfe Labyrinth (https://www.delphipraxis.net/124471-anfaengerhilfe-labyrinth.html)

guidok 19. Nov 2008 18:57

Re: Anfängerhilfe Labyrinth
 
Die Variable b ist zwar vom Typ TBitmap, aber du musst natürlich eine Instanz davon erzeugen, bevor du sie benutzen kannst.

Delphi-Quellcode:
b := TBitmap.Create;
Damit wird ein Objekt vom Typ TBitmap erzeugt, d.h. unter anderem wird der dafür benötigte Speicher reserviert. Um diesen Speicher auch wieder freizugeben musst du, wenn du "b" nicht mehr brauchst auch noch


Delphi-Quellcode:
b.Free;
einfügen. Damit wird die Instanz wieder freigegeben.

Wo du das jetzt machen musst, hängt davon ab wo du "b" deklarierst. In diesem Fall wäre es OK "b" als lokale Variable in deiner "KeyPress" Prozedur zu deklarieren. Demnach erzeugst du "b" bevor du es verwenden willst und gibst es am Ende wieder frei.

Übrigens: Ich halte es für sehr wichtig, dass du auch verstehst, was dir hier gezeigt wird. Einfaches Abtippen bringt dir rein gar nichts. Im Zweifelsfall frag lieber mal nach, was "b" überhaupt bewirken soll.

skaot 19. Nov 2008 20:18

Re: Anfängerhilfe Labyrinth
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also das mit dem Bitmap check ich grad gar nicht :lol: Werde mal im internet nach ein paar anständigen Tutorials suchen.
Und ich hab noch ne kleine Frage. Wie schaffe ich es das wenn ich auf Vollbild schalte nicht nur das formular größer wird sondern alles "gestreckt" wird?

Aber schon ermutigend was man als Anfänger schon so alles anstellen kann.

Corpsman 20. Nov 2008 06:47

Re: Anfängerhilfe Labyrinth
 
Also wenn du die TBitmap vairante hast dann ist das mit dem "Größer" werden Kein Problem

du kannst dann anstatt

Delphi-Quellcode:
Form1.canvas.draw(0,0,b);
einfach

Delphi-Quellcode:
Form1.canvas.stretchdraw( ... );
nehmen. Für die Genaue parametriesierung hilft die F1 Taste ;).

skaot 20. Nov 2008 14:50

Re: Anfängerhilfe Labyrinth
 
Ich glaube ich lass das mit Bitmap erstmal weg versteh das nicht so wirklich.

Noedel 20. Nov 2008 15:32

Re: Anfängerhilfe Labyrinth
 
noch zwei fragen:

1) warum zeichnest du die barrikaden immer wieder bei jedem knopfdruck?
2) Ich werde aus dem obigen Code nicht schlau, wie die zweite Kugel bewegt werden soll!?

Corpsman 20. Nov 2008 15:32

Re: Anfängerhilfe Labyrinth
 
Du kannst dir ja mal mein PingPong Sample anschaun, da habe ich diese BMP Technik benutzt.

Evtl wirds dann verständlicher ;).

skaot 20. Nov 2008 18:38

Re: Anfängerhilfe Labyrinth
 
Zitat:

Zitat von Noedel
noch zwei fragen:

1) warum zeichnest du die barrikaden immer wieder bei jedem knopfdruck?
2) Ich werde aus dem obigen Code nicht schlau, wie die zweite Kugel bewegt werden soll!?

1) Habs bestimmt zu kompliziert gemacht aber bei jedem Knopdruck wird erst einmal das gesamte bild gelöscht, damit das die alte position der Kugel gelöscht wird. Dann rstelle ich alles neu mit der neuen Position der Kugel.
2) Indem man mit der 1. dagegen "läuft".( Am Anfang 1mal J drücken hatte ich vergessen mit rein zuschreiben)

guidok 21. Nov 2008 06:25

Re: Anfängerhilfe Labyrinth
 
Zitat:

Zitat von skaot
Ich glaube ich lass das mit Bitmap erstmal weg versteh das nicht so wirklich.

Der Sinn des Ganzen sollte klar sein. So wie du es machst, löscht du die Zeichenfläche (Canvas) und zeichnest sie neu und zwar zeichnest du auf der sichtbaren Zeichenfläche (Canvas des Formular). Das führt dann zum Flackern.

Die Lösung ist es zunächst einmal auf einem anderen, nicht sichtbaren, Canvas zu zeichnen und dies dann mittels einer schnellen Methode auf das sichtbare Canvas zu legen.

Also erzeugst du ein Bitmap, das dir ein Canvas bereitstellt, auf dem du zeichnen kannst. Sobald du damit fertig bist, zeigst du dein frisch (unsichtbar) gezeichnetes Canvas an.

Soweit klar?

Das Erzeugen, Zuweisen und Entfernen von Objekten sind Grundlagen, die du völlig unabhängig von deiner Lösung unbedingt verstehen solltest. Ich verweise, wie so oft, auf diesen sehr guten Delphi Crashkurs.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 Uhr.
Seite 2 von 2     12   

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