Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi DoubleBuffered für nonVCL (https://www.delphipraxis.net/40330-doublebuffered-fuer-nonvcl.html)

idontwantaname 14. Feb 2005 13:21


DoubleBuffered für nonVCL
 
Huhu :hi:

Ich programmiere gerade mein Tennis-Spiel neu nur mit nonVCL, da mir die EXE für ein so winziges Programm zu groß ist. :mrgreen:
Es funktiniert auch schon recht gut, nur flackern die "Schläger" und der Ball ziemlich und das will ich nicht. :stupid:

Bei VCL Programmen gibt es ja die Eigenschaft DoubleBuffered, gibt es sowas auch für nonVCL, bzw. wie könnte man soetwas realisieren ??

Stevie 14. Feb 2005 13:31

Re: DoubleBuffered für nonVCL
 
Hi, vielleicht hilft dir dieser Beitrag...

idontwantaname 14. Feb 2005 13:48

Re: DoubleBuffered für nonVCL
 
Liste der Anhänge anzeigen (Anzahl: 1)
Leider nicht sehr viel. :(
//edit: Ich hab ja auch nur eine Personal-Version

Ihr könnt euch ja mal anschauen, was ich bis jetzt zustande gebracht habe. :-D

Die Steuerung:
linker Spieler: A und Y
rechter Spieler: K und M
neue Runde: Leertaste

jim_raynor 14. Feb 2005 13:53

Re: DoubleBuffered für nonVCL
 
Zitat:

Zitat von idontwantaname
Leider nicht sehr viel. :(
//edit: Ich hab ja auch nur eine Personal-Version

Was hat dass den mit der Personal Version zu tuen?

idontwantaname 14. Feb 2005 14:28

Re: DoubleBuffered für nonVCL
 
Aus diesem Beitrag (wurde weiter oben genannt):
Zitat:

Zitat von mirage228
Du sollst ja nicht die VCL selbst benutzen. Aber eventuell findest Du in der Borland Implementierung von DoubleBuffered (im Quelltext) ja ein paar Ansätze bzw. ganze API-Codestücke, die Du verwenden könntest.

mfG
mirage228

Nur leider liegen keine Quellcodes bei den Personal-Versionen bei. :(

Stevie 14. Feb 2005 14:40

Re: DoubleBuffered für nonVCL
 
Also, dort geht es doch um einen bestimmten Fall, wo folgendes nicht funktioniert:
Delphi-Quellcode:
var
    dc,dctmp:HDC;
    bitmap:HBITMAP;
begin
     dc:=GetDC(windowhandle);
     bitmap:=CreateCompatibleBitmap(dc,windowwidth,windowheight);
     dctmp:=CreateCompatibleDC(dc);
     SelectObject(dctmp,bitmap);
     //-->Alles ZEICHNEN
     zeichnen(dctmp);
     //<--Alles ZEICHNEN
     bitblt(dc,0,0,windowwidth,windowheight,dctmp,0,0,srccopy);
     DeleteDC(dctmp);
     DeleteObject(bitmap);
     ReleaseDC(windowhandle,dc);
end;
Funktioniert das denn bei DIR???

idontwantaname 14. Feb 2005 14:56

Re: DoubleBuffered für nonVCL
 
Nein, weil ich das nicht brauche, denke ich zumindestens.
Ich habe mich nur auf das Zitat bezogen, da ich den Quellcode für DoubleBuffered aus TWinControl nicht habe.

Dort könnte man sicher nachschauen, wie DoubleBuffered dort gelöst wurde und somit auch mein Problem.

NicoDE 14. Feb 2005 15:21

Re: DoubleBuffered für nonVCL
 
Zitat:

Zitat von idontwantaname
Dort könnte man sicher nachschauen, wie DoubleBuffered dort gelöst wurde und somit auch mein Problem.

Indem man zuerst in einen (Speicher)Kontext schreibt und diesen am Ende komplett zeichnet.
Bei Luckie liegt nch ein altes aber reichlich kommentiertes Projekt rum: DelphUBBsrc.

Luckie 14. Feb 2005 17:07

Re: DoubleBuffered für nonVCL
 
Wenn du mit Speicherkontext ein Bitmap im Speicher meinst, dann sit das identisch meit meinem Code aus der Code-Lib und den Vorschlägen, die hier schon gemacht wurden.

NicoDE 14. Feb 2005 19:33

Re: DoubleBuffered für nonVCL
 
Zitat:

Zitat von Luckie
Wenn du mit Speicherkontext ein Bitmap im Speicher meinst, dann sit das identisch meit meinem Code aus der Code-Lib und den Vorschlägen, die hier schon gemacht wurden.

Schönere/verständlichere Formulierung als die meinige - eben das meinte ich :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 Uhr.
Seite 1 von 2  1 2      

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