![]() |
Eigener "Text"-Cursor auf einem TImage
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:
so zu meinem Problem:
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; 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 |
Re: Eigener "Text"-Cursor auf einem TImage
Und wenn du einfach ein edit drüber legst? Das ist doch die Standard-Vorgehensweise.
|
Re: Eigener "Text"-Cursor auf einem TImage
@ sirius
normaler weiße würde ich das ja auch machen :wink: , aber die sache ist, das ich keinen Text schreibe, sondern Noten (aus der Musik). Diese werden per Canvas dort auf den Untergrund gezeichnet, wo der Cursor ist, deshalb brauch ich einen Cursor, der unabhängig von Text bewegbar ist! |
Re: Eigener "Text"-Cursor auf einem TImage
Delphi-Quellcode:
Wie wärs stattdessen mit
cr.Transparent:= true; //hier soll der Cursor "weggeblendet" werden, geht aber irgendwie nicht
Delphi-Quellcode:
hab den Code jetzt nur überflogen!
cr.visible := false //hier soll der Cursor "weggeblendet" werden, geht aber irgendwie nicht
|
Re: Eigener "Text"-Cursor auf einem TImage
Zitat:
MfG A. Horn |
Re: Eigener "Text"-Cursor auf einem TImage
Probiers mal mit cr.pen.mode:=pmnotXor;
|
Re: Eigener "Text"-Cursor auf einem TImage
ich konnte das problem jetzt zum Glück auch selber lösen, mir ist nämlich auf gefallen, das es mit Visible := true/false , bei andern Images auch geht, also hab ich die Cursor-"Grafik" im OnCrate erstellt und jetzt wird einfach nur zwischen Visible := true und Visible:= false gewechselt. Vermutlich lag das problem darin, dass das Image jedes mal aufs neue per Create erstellt wurde.
Trozdem großes Danke an alle :!: MfG A. Horn |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz