Einzelnen Beitrag anzeigen

guitar1

Registriert seit: 9. Sep 2006
65 Beiträge
 
Turbo Delphi für Win32
 
#1

Eigener "Text"-Cursor auf einem TImage

  Alt 25. Apr 2007, 21:14
hi

ich bin gerade dabei, einen Cursor (ähnlich dem in einem edit, etc.) zu programmieren, der auch blinken soll. Das alles soll auf einem TImage geschehen, auf diesem TImage sind auch noch einige Sachen mit Canvas gezeichnet.

hier erst mal der Code den ich schon hab:
Delphi-Quellcode:
procedure Tform1.Cursor (X, Y: Integer);
var
cr: TImage; //Image auf welches der Cursor gezeichnet werden soll
begin

  cr:= TImage.Create(Self);
  cr.Parent := self;
  cr.Parent.DoubleBuffered:= true;
  cr.Visible:= true;
  cr.Left := X; //Koordinaten der oberen, linken Cursor"ecke"
  cr.Top := Y;
  cr.Width := 1;
  cr.Height := 90;


  if (cursoran mod 2 = 0) then //cursoran ist eine Integervariable, welche per timer alle 500 ms mit 1 addiert wird
  begin
    cr.Canvas.Pen.Color := clred;
    cr.Canvas.Pen.Style := psdot;
    cr.Canvas.LineTo(0,90); //hier wird der Cursor gezeichnet
  end
  else
  begin
    cr.Canvas.LineTo(0,0);
    cr.Transparent:= true; //hier soll der Cursor "weggeblendet" werden, geht aber irgendwie nicht
  end;

  LinienRefresh; //aktuallisiert, den Canvas des unterem Images

end;
so zu meinem Problem:
Auf dem unterem Image sind per Canvas erstellte Linien, wenn nun der Cursor gezeichnet wird, klappt das auch erst einmal, soll er dann aber ausgeblendet werden (er soll ja blinken) bleibt an den Stellen, an welchen er sich mit den Linien geschnitten hat, ein weißes Pixel zurück (die Linien sind nur 1 Pixel dick). Ebenso bleibt ein weißes Pixel oder sogar das komplette "Bild" des Cursors an Ort und Stelle, wenn der Cursor seine Position wechselt.

Bei einem anderen Projekt habe ich die eigenschaft Image.Transparent schon öffters genutzt und dabei wurde der Untergrund wieder sichtbar ?!?!

Hat jemand eine Idee woran das liegen könnte? Oder noch besser hat einer von euch vielleicht noch eine andere Idee einen blinkenden "Text"-Cursor auf einem TImage darzustellen? Vielleicht etwas eleganter als per Canvas.

Schon mal danke im Voraus!

A. Horn
  Mit Zitat antworten Zitat