![]() |
Form des blnkenden Textcursor bei TEdit ändern
Hallo Leute,
bei dem Überweisungscomputer der Postbank wurde bei der Eingabe ein blinkendes Kästchen als Cursor benutzt, was sehr gut zu sehen war. (Seit der Umstellung auf SEPA ist es der schmale blinkende Strich(Standart), was für mich ungünstig ist). Nach Aussage der Postbank laufen die ÜW-Rechner mit Win XP! Wie kann ich ein blinkendes Kästchen als Text-Cursor bei TEdit in eine eigene Eingabemaske einbauen. Property Cursor ändert ja nur den Mauszeiger, wenn er über dem Eingabefeld steht. Ich um Nachsicht, ich sehe schlecht und bin daher schlecht bei der Rescheche. Danke. MfG Willie |
AW: Form des blnkenden Textcursor bei TEdit ändern
|
AW: Form des blnkenden Textcursor bei TEdit ändern
Hallo Danke TP!
Code:
Dieser Code wird aktzeptiert aber das Caret ändert sich nicht. Wo muss der Code stehen, ich habe es auch mit OnEnter versucht.
procedure TForm1.FormCreate(Sender: TObject);
begin if CreateCaret(Edit1.Handle,0,10,10) <> NULL then beep; ShowCaret(Edit1.Handle); end; (Es beept - Bei Return <> NULL ist der Aufruf erfolgreich Delphi-Hilfe) Gruß Willie. |
AW: Form des blnkenden Textcursor bei TEdit ändern
![]() Zitat:
Delphi-Quellcode:
if CreateCaret(...) then...
|
AW: Form des blnkenden Textcursor bei TEdit ändern
Hallo DeddyH,
mit CreateCaret in OnKeyDown klappt es. Es ist aber nicht genau, was ich wollte. Das vergrüßerte Caret sollte das focussierte Feld leichter erkennbar machen. das wird aber erst sichtbar, wenn ich eine Taste gedrückt habe. Ich werde das fokussierte Feld gelb einfärben. (OnEnter und OnExit). Danke und Gruß Willie. |
AW: Form des blnkenden Textcursor bei TEdit ändern
Versuch es mal so, möglicherweise ist das was du suchst.
Delphi-Quellcode:
Solltest du merere Edits so modifiz. wollen würde ich eine neue Klasse ableiten.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} var oldMemoProc: Pointer; function NewEditWndProc(Wnd: hWnd; wMsg: DWORD; ParamW: WParam; ParamL: LParam): LongInt; stdcall; var edRect: TRect; begin NewEditWndProc := CallWindowProc(oldMemoProc, Wnd, wMsg, ParamW, ParamL); Case wMsg of WM_SETFOCUS: begin GetClientRect(Wnd, edRect); CreateCaret(Wnd, 0, 8, edRect.Bottom - 2); ShowCaret(Wnd); end; WM_KILLFOCUS: begin HideCaret(Wnd); DestroyCaret; end; end; end; // --------------------------------------------------------------------------- procedure TForm1.FormCreate(Sender: TObject); begin oldMemoProc := Pointer(SetWindowLong(Edit1.Handle, GWL_WNDPROC, LongInt(@NewEditWndProc))); end; procedure TForm1.FormDestroy(Sender: TObject); begin // end; |
AW: Form des blnkenden Textcursor bei TEdit ändern
Hallo TP vielen Dank für deine Mühe.
Delphi-Quellcode:
Nur wenn ich diesen Code einfüge wird nach dem Drücken einer beliebigen Taste das neue Caret sichtbar.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin if CreateCaret(TEdit(Sender).Handle,1,5,12) then ShowCaret(TEdit(Sender).Handle); end; Ich habe deinen Code mit Copy and Paste eingefügt. Gruß Willie |
AW: Form des blnkenden Textcursor bei TEdit ändern
Liste der Anhänge anzeigen (Anzahl: 1)
Warscheinlich hast du beim ausprobieren des obigen Codes vergessen im OI Create und Destroy einzustellen.
Noch mal ein Versuch mit einer anderen Herangehensweise. Hier wird einfach die TEdit-Classe durch überschreiben erweitert. |
AW: Form des blnkenden Textcursor bei TEdit ändern
Hallo TP,
RESPEKT: beide Rezepze klappen gut!!! Ich hatte gestern Abend etwas übersehen. Das ist genau, was ich wollte. Es ermöglicht es einem sehbehinderten Anwender, Daten ein zu geben. Deine Rezepte zeigen, wie einfallslos die Programmierer der Bank-Software sind. Obwohl der Bildschirm groß genug ist, ist die Schrift winzig, weder wird das fokussierte Feld eingefärbt noch das Caret vergrüßert. Auch für User mit gesunden Augen ist das hilfreich. Die Datumseingabe ist aus dem letzten Jahrhundert. Der Rechner bei der Post wurde mal hochgefahren, da las ich Windows XP. Die Chefin der Postfiliale hat immerhin zugesagt, mein Anliegen weiter zu geben. Auf meinem Coputer zu Hause komme ich mit einer Lupensoftware ganz gut zurecht. Aber Internet-Banking mache ich nicht. Gruß Willie. |
AW: Form des blnkenden Textcursor bei TEdit ändern
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Ist das Dein Arbeitsplatz (Dann setze Dich mit dem Behindertenbeauftragten in Verbindung) oder was? Wenn Du zuhause über einen Internet-Browser Überweisungen tätigst, warum änderst Du dann nicht WINDOWS für Sehbehinderte (Center für erleichterte Bedienung) oder vergrösserst das Browser-Bild (z.B. STRG + bei FIREFOX). Für eigene DELPHI-Programme:
Delphi-Quellcode:
type
TForm2 = class(TForm) Edit1: TEdit; Button1: TButton; SpinEdit1: TSpinEdit; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure SpinEdit1Change(Sender: TObject); private { Private-Deklarationen } OrignalValue : Integer; public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); var NewValue : Integer; begin Screen.Cursor := crHourGlass; NewValue := SpinEdit1.Value; SystemParametersInfo(SPI_SETCARETWIDTH, 0, Pointer(NewValue), SPIF_SENDCHANGE); Screen.Cursor := crDefault; Edit1.SetFocus; end; procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin SystemParametersInfo(SPI_SETCARETWIDTH, 0, Pointer(2), // Breite des Carets SPIF_SENDCHANGE); end; procedure TForm2.FormCreate(Sender: TObject); begin SpinEdit1.MaxValue:=20; SpinEdit1.Value:=10; SystemParametersInfo(SPI_GETCARETWIDTH, 0, @OrignalValue, 0); end; procedure TForm2.SpinEdit1Change(Sender: TObject); begin Button1.Click; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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