Einzelnen Beitrag anzeigen

Bauer007

Registriert seit: 17. Sep 2007
Ort: Husum
56 Beiträge
 
Delphi XE2 Professional
 
#1

Text auf Desktop Zeichnen

  Alt 2. Jan 2008, 07:04
Moin Moin,

habe folgende Funktionen gefunden

Delphi-Quellcode:
procedure Tmnb_form.WriteText(TransText: string);
var
  MyHand: HWND;
  MyDc: HDC;
  MyCanvas: TCanvas;
begin
  MyHand := GetDesktopWindow;
  MyDc := GetWindowDC(MyHand);
  MyCanvas := TCanvas.Create;
  MyCanvas.Handle := MyDC;
  BeginPath(MyCanvas.Handle);
  MyCanvas.Font.Color := clRed;
  MyCanvas.Font.Name := 'Courier New';
  MyCanvas.Font.Size := 60;
  SetBkMode(MyCanvas.Handle, TRANSPARENT);
  EndPath(MyCanvas.Handle);
  MyCanvas.TextOut(0, 0, TransText);
end;
oder

Delphi-Quellcode:
procedure DrawPicture(const FileName: string; Width: Integer = 0; Height: Integer = 0; Top: Integer = 0; Left: Integer = 0);
var
  DC: HDC;
  Canvas: TCanvas;
  Bitmap: TBitmap;
begin
  // Falls die Datei existiert, dann fortfahren
  if FileExists(FileName) then
  begin
    Bitmap := TBitmap.Create;
    try
      Bitmap.LoadFromFile(FileName);
      // Falls eigene Parameter angeben sind, werden diese benutzt.
      if Height > 0 then
        Bitmap.Height := Height;
      if Width > 0 then
        Bitmap.Width := Width;
      // Wir holen uns den 'Device Context' vom Desktop
      DC := GetWindowDC(GetDesktopWindow());
      try
        Canvas := TCanvas.Create();
        try
          // Wir weisen den DC dem Canvas zu
          Canvas.Handle := DC;
          // Das Bild wird an Left / Top auf den Desktop gezeichnet
          Canvas.Draw(Left, Top, Bitmap);
        finally
          Canvas.Free;
        end;
      finally
        ReleaseDC(0, DC);
      end;
    finally
      Bitmap.Free;
    end;
  end;
end;
beide funktionieren so gesehen recht ok! aber - was ist wenn der Text dann auf dem Desktop zu sehen ist?!
Wie bekomme ich den wieder weg?! oder stehe ich auf dem Schlauch?!
Sebastian
  Mit Zitat antworten Zitat