Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Textcursor ändern? (https://www.delphipraxis.net/5580-textcursor-aendern.html)

heiopei 11. Jun 2003 20:10


Textcursor ändern?
 
Wie kann ich in einem Memo den Textcursor ändern, d.h. machen, dass er blinkt oder eine andere Form(z.B. _), bzw. eine andere Farbe annimmt?
(Der Cursor sollte bspw. so aussehen wie der eines DOS-Fensters-wie _ und
blinkend!!)

Danke,
heiopei

Christian Seehase 11. Jun 2003 21:33

Moin Heiopei,

probiert hab' ich das noch nicht, aber vielleicht ist es ein Anhaltspunkt.
Das was Du meinst nennt sich Caret, und es gibt Funktionen einem Fenster (z.B. wohl einem Memo) ein solches zuzuweisen (CreateCaret), es Blinken zu lassen (GetCaretBlinkTime/SetCaretBlinkTime) und weitere.
Das mit CreateCaret erzeugte/zugewiesene Caret kannst Du als Bitmap Resource einbinden und mittels LoadBitmap laden. So sollte auch ein _ möglich sein.
Am Besten schaust Du Dir das mal im PSDK an, das Thema Caret ist recht umfangreich.

heiopei 13. Jun 2003 21:18

Hallo Christian Seehase,
das mit Get und SetCaretBlinkTime funktioniert. Aber ich hab nicht rausgefunden, wie das mit CreateCaret gehn soll. Also ich hab in der Hilfe
nachgeschaut, damit ich weiss, wie ich die Parameter setzen muss, aber ich kriegs einfach nicht hin!

Ich glaub des hieß in der Hilfe:

Delphi-Quellcode:
   CreateCaret(HWND, HBITMAP, irgendwasWidth, irgendwasHight);
Wie muss ich die Parameter setzen, dass es funzt?

danke,
heiopei

Christian Seehase 13. Jun 2003 22:28

Moin Heiopei,

kommt drauf an, ob Du jetzt eine eigene Grafik als Caret einbinden, oder nur eigene Abmessungen festlegen willst.

Im ersten Falle z.B.

Delphi-Quellcode:
CreateCaret(Memo1.Handle,0,10,10);
ShowCaret(Memo1.Handle);
Das sollte einen "schönen" 10x10 Pixel grossen schwarzen Würfel ergeben.

Soll es eine eigene Grafik werden, brauchst Du erst einmal eine Bitmap, die als Resource in's Programm eingebunden wird (vielleicht geht's auch mit einer externen Datei)

Dazu brauchst Du eine Datei in der die Zeile

CARET BITMAP <Pfad zur Bitmapdatei>

steht.
Die kannst Du dann mit der BRCC32.EXE (Delphi\Bin Verzeichnis) in eine RES Datei umwandeln.

Delphi-Quellcode:
var
  hCaret : HBITMAP;

begin
  hCaret := LoadBitmap(hInstance,'CARET');
  CreateCaret(Memo1.Handle,hCaret,0,0);
  ShowCaret(Memo1.Handle);
end;
Da hier die Grösse nicht berücksichtigt wird spielt es keine Rolle welche Abmessungen Du angibst, es werden die der Bitmap genommen.
Das Caret kann dann auch farbig sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 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