AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Eigener "Text"-Cursor auf einem TImage
Thema durchsuchen
Ansicht
Themen-Optionen

Eigener "Text"-Cursor auf einem TImage

Ein Thema von guitar1 · begonnen am 25. Apr 2007 · letzter Beitrag vom 26. Apr 2007
Antwort Antwort
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, 22: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
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Eigener "Text"-Cursor auf einem TImage

  Alt 25. Apr 2007, 22:35
Und wenn du einfach ein edit drüber legst? Das ist doch die Standard-Vorgehensweise.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
guitar1

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

Re: Eigener "Text"-Cursor auf einem TImage

  Alt 26. Apr 2007, 15:00
@ sirius
normaler weiße würde ich das ja auch machen , 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!
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Eigener "Text"-Cursor auf einem TImage

  Alt 26. Apr 2007, 15:05
cr.Transparent:= true; //hier soll der Cursor "weggeblendet" werden, geht aber irgendwie nicht Wie wärs stattdessen mit
cr.visible := false //hier soll der Cursor "weggeblendet" werden, geht aber irgendwie nicht hab den Code jetzt nur überflogen!
  Mit Zitat antworten Zitat
guitar1

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

Re: Eigener "Text"-Cursor auf einem TImage

  Alt 26. Apr 2007, 15:15
Zitat von NamenLozer:
Wie wärs stattdessen mit
cr.visible := false //hier soll der Cursor weggeblendet werden, geht aber irgendwie nicht hab den Code jetzt nur überflogen!
habs gerade mal ausprobiert, eine Besserung des Problems hat sich leider nicht ergeben, jetzt bleibt der Cursor ganz in der "ersten Position", kurz und gut das Blinken bleibt aus, man sieht einfach nur eine Linie die nichts tut ?!

MfG
A. Horn
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Eigener "Text"-Cursor auf einem TImage

  Alt 26. Apr 2007, 17:38
Probiers mal mit cr.pen.mode:=pmnotXor;
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
guitar1

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

Re: Eigener "Text"-Cursor auf einem TImage

  Alt 26. Apr 2007, 21:47
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
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:20 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