AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bitmap auf Bildschirm zeichnen
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmap auf Bildschirm zeichnen

Ein Thema von jfheins · begonnen am 23. Jan 2005 · letzter Beitrag vom 19. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#1

Bitmap auf Bildschirm zeichnen

  Alt 23. Jan 2005, 13:35
Ich habe eine Animation, in der ich ein Bitmap habe, da draufzeichne, und dann das Bitmap ausgebe. kann ich das auch irgendwie direkt aufden Bildschirm zeichen ???
Also sowas wie Screen.Assign(Bitmap) ???
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Bitmap auf Bildschirm zeichnen

  Alt 23. Jan 2005, 13:43
Hi,

worauf willst du die Bitmap zeichnen lassen? Man kann nicht auf TScreen zeichnen, sondern nur auf Zeichenflächen (also TCanvas bzw. ein HDC). Wenn du auf dem gesamten Bildschirm zeichnen willst helfen dir die Funktionen MSDN-Library durchsuchenGetDesktopWindow und MSDN-Library durchsuchenGetDC weiter =)
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: Bitmap auf Bildschirm zeichnen

  Alt 23. Jan 2005, 13:59
Ich möchte das Bitmap auf den ganzen Bildschirm zeichnen, ja.
Es muss nicht z.B. Spiele "überzeichnen", aber sowas wie eine Fullscreen-Ansicht meines Bitmaps.

P.S. Könntest du mir das mit dem GETDC mal erklären ? Ich versteh' das irgendwie nicht do richtig ...
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Bitmap auf Bildschirm zeichnen

  Alt 23. Jan 2005, 14:08
GetDC liefert dir die zu einem Fenster gehörige Zeichenfläche (in Form eines Handles).

Delphi-Quellcode:
//Bitmap auf Desktop ausgeben
procedure DrawBMPOnDesktop(BMP: TBitmap; XOffset, YOffset: Integer);
var hdcDesktop: HDC;
begin
  hdcDesktop := GetDC(GetDesktopWindow);
  If hdcDesktop <> 0 then
   (**Schnelles kopieren des Bitmaps auf die Desktop-Zeichenfläche**)
   BitBlt(hdcDesktop, XOffset, YOffset BMP.Width, BMP.Height,
          BMP.Canvas.Handle, 0, 0, SRCCOPY);
end;
ist aber ungetestet, alle Angaben ohn....

//Edit: Delphi-Tags
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#5

Re: Bitmap auf Bildschirm zeichnen

  Alt 27. Jan 2005, 19:42
Funktioniert super, hab' Sie noch ein wenig abgewandelt ...

Delphi-Quellcode:
procedure DrawBMPFullScreen(BMP: TBitmap32);
var hdcDesktop: HDC;
begin
  hdcDesktop := GetDC(0);
  If hdcDesktop <> 0 then
    StretchBlt(hdcDesktop,
               0,
               0,
               GetSystemMetrics(SM_CXSCREEN), // Screenbreite
               GetSystemMetrics(SM_CYSCREEN), // Screenhöhe
               BMP.Canvas.Handle,
               0,
               0,
               BMP.Width,
               BMP.Height,
               SRCCOPY);
end;
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Bitmap auf Bildschirm zeichnen

  Alt 28. Jan 2005, 18:51
Zu früh gefreut ... Jetzt muss man das immer wieder wegwischen ...

Kann man alles neuzeichenen lassen ???

MitSendMessage (HWND_BROADCAST, WM_PAINT, 0, 0); geht's irgendwie nicht ...

Sollte Non-VCL sein ...

Edit:

Lösung: InvalidateRect (0, nil, TRUE);
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

Re: Bitmap auf Bildschirm zeichnen

  Alt 11. Mär 2005, 21:26
Mittlerweile habe ich folgendes Problem: Wenn ich mein tolles Bitmap zeiche (mitunter 60 mal /sek) und dann mit der Maus unten in Richtung Taskleiste gehe, dann flimmert die Taskleiste da durch, also mal wird mein Bitmap auf die Taskbar gezeichnet, und mal andersrum. kann ich irgendwie mein Desktop-Fenster (Handle: 0) nach oben holen, dass die Taskbar dadrunter gezeichnet wird ???

Oder kann ich gar einen DC dafür anlegen, der alles überdeckt ?
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#8

Re: Bitmap auf Bildschirm zeichnen

  Alt 17. Mär 2005, 16:24
*piep*
  Mit Zitat antworten Zitat
Hospi

Registriert seit: 17. Mär 2005
21 Beiträge
 
Delphi 6 Personal
 
#9

Re: Bitmap auf Bildschirm zeichnen

  Alt 17. Mär 2005, 19:57
Wo zeichnest du das Bild rein, direckt auf die Form? Wenn du das Bild in einem Image zeichnen würdest, könntest du das Image löschen und danach neu erzeugen.

z.B. so:
Delphi-Quellcode:
Image1.Free;
Image1:=TImage.Create(Self);
with Image1 do
 begin
  Name:='Image1';
  Parent:=self;
  Left:=336;
  Top:=40;
  height:=273;
  width:=489;
 end;
Gruß
Hospi
Sven H.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

Re: Bitmap auf Bildschirm zeichnen

  Alt 17. Mär 2005, 21:30
Nene, ist schon Vollbild, aber es flackert halt, wenn ich mit der Maus z.B. über si Taskleiste gehe ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:17 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