![]() |
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 |
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. |
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:
Wie muss ich die Parameter setzen, dass es funzt?
CreateCaret(HWND, HBITMAP, irgendwasWidth, irgendwasHight);
danke, heiopei |
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:
Das sollte einen "schönen" 10x10 Pixel grossen schwarzen Würfel ergeben.
CreateCaret(Memo1.Handle,0,10,10);
ShowCaret(Memo1.Handle); 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:
Da hier die Grösse nicht berücksichtigt wird spielt es keine Rolle welche Abmessungen Du angibst, es werden die der Bitmap genommen.
var
hCaret : HBITMAP; begin hCaret := LoadBitmap(hInstance,'CARET'); CreateCaret(Memo1.Handle,hCaret,0,0); ShowCaret(Memo1.Handle); end; Das Caret kann dann auch farbig sein. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 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