Einzelnen Beitrag anzeigen

Mossi

Registriert seit: 6. Feb 2004
Ort: Wenzenbach
35 Beiträge
 
Delphi 7 Enterprise
 
#1

Direct auf Screen zeichnen: Problem mit Hintergrund und Zeichnung wieder ausblenden

  Alt 13. Dez 2011, 14:08
Hallo alle zusammen,

ich versuch gerade einen Text direkt auf meinen Screens auszugeben. Das funktioniert prinzipiell auch. Allerdings bekomm ich es nicht hin, dass wirklich nur die ausgegebene Schrift angezeigt wird. Stattdessen wird immer irgendwas vom Hintergrund verändert. Außerdem fehlt es mir im moment noch an einer Idee, dass ich den eingeblendeten Text wieder verschwinden lassen kann.

Mein Code sieht im Moment so aus:
Delphi-Quellcode:
var
  i:integer;
  ca: TCanvas;
begin
  for i := 0 to Screen.MonitorCount - 1 do
  begin
    ca := TCanvas.Create;
    ca.Handle := GetWindowDC(0);
    ca.Brush.Style := bsSolid;
    ca.Font.Name := 'Tahoma';
    ca.Font.Style := [fsBold];
    ca.Font.Size := 60;
    ca.Font.Color := clRed;
    ca.TextOut(_screens[i].Resolution.Left + 50, 50, _screens[i].MonitorName);
    FreeAndNil(ca);
  end;
end;
Es wird also auf jedem Monitor der Name des Monitors eingeblendet. Nach einer bestimmten Zeit (Timer mit 5000ms) soll dieser Text dann aber wieder ausgeblendet werden. Desweiteren soll wirklich nur der Text eingeblendet werden.
Im obigen Beispiel mit bsSolid wird ein weißer Hintergrund verwendet. Wenn ich das auf bsClear ändere, hab ich erst einmal auch wieder einen weißen Hintergrund. Wenn ich damit dann ein bisschen rumspiele, hab ich irgendwann irgendeinen komplett anderen Hintergrund, der von einem anderen Programm kommt usw. Also alles ziemlich unzuverlässig.
Hat da jemand eine Lösung, wie man das sauber machen kann?
  Mit Zitat antworten Zitat