AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Form des blnkenden Textcursor bei TEdit ändern

Form des blnkenden Textcursor bei TEdit ändern

Ein Thema von Willie1 · begonnen am 5. Feb 2014 · letzter Beitrag vom 8. Feb 2014
Antwort Antwort
Willie1

Registriert seit: 28. Mai 2008
615 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Form des blnkenden Textcursor bei TEdit ändern

  Alt 5. Feb 2014, 18:06
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
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

AW: Form des blnkenden Textcursor bei TEdit ändern

  Alt 5. Feb 2014, 18:22
Das könnte dir helfen:
http://www.delphipraxis.net/5580-tex...r-aendern.html
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
615 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Form des blnkenden Textcursor bei TEdit ändern

  Alt 5. Feb 2014, 19:37
Hallo Danke TP!
Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
  if CreateCaret(Edit1.Handle,0,10,10) <> NULL then beep;
  ShowCaret(Edit1.Handle);
end;
Dieser Code wird aktzeptiert aber das Caret ändert sich nicht. Wo muss der Code stehen, ich habe es auch mit OnEnter versucht.
(Es beept - Bei Return <> NULL ist der Aufruf erfolgreich Delphi-Hilfe)

Gruß Willie.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.459 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Form des blnkenden Textcursor bei TEdit ändern

  Alt 6. Feb 2014, 08:30
CreateCaret:
Zitat:
The system provides one caret per queue. A window should create a caret only when it has the keyboard focus or is active. The window should destroy the caret before losing the keyboard focus or becoming inactive.
Außerdem: was soll der Vergleich mit NULL? Das ist eine BOOL-Funktion, da genügt doch ein
if CreateCaret(...) then...
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
615 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

AW: Form des blnkenden Textcursor bei TEdit ändern

  Alt 7. Feb 2014, 11:30
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.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

AW: Form des blnkenden Textcursor bei TEdit ändern

  Alt 7. Feb 2014, 16:38
Versuch es mal so, möglicherweise ist das was du suchst.
Delphi-Quellcode:
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;
Solltest du merere Edits so modifiz. wollen würde ich eine neue Klasse ableiten.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
615 Beiträge
 
Delphi 10.1 Berlin Starter
 
#7

AW: Form des blnkenden Textcursor bei TEdit ändern

  Alt 7. Feb 2014, 19:45
Hallo TP vielen Dank für deine Mühe.
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if CreateCaret(TEdit(Sender).Handle,1,5,12) then ShowCaret(TEdit(Sender).Handle);
end;
Nur wenn ich diesen Code einfüge wird nach dem Drücken einer beliebigen Taste das neue Caret sichtbar.
Ich habe deinen Code mit Copy and Paste eingefügt.

Gruß Willie
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

AW: Form des blnkenden Textcursor bei TEdit ändern

  Alt 8. Feb 2014, 18:04
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.
Angehängte Dateien
Dateityp: zip BigCaret.zip (206,0 KB, 17x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser

Geändert von turboPASCAL ( 8. Feb 2014 um 20:13 Uhr)
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
615 Beiträge
 
Delphi 10.1 Berlin Starter
 
#9

AW: Form des blnkenden Textcursor bei TEdit ändern

  Alt 8. Feb 2014, 19:08
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.

Geändert von Willie1 ( 8. Feb 2014 um 19:14 Uhr)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#10

AW: Form des blnkenden Textcursor bei TEdit ändern

  Alt 8. Feb 2014, 20:18
Hallo Leute,
bei dem Überweisungscomputer der Postbank wurde bei der Eingabe ein blinkendes Kästchen als Cursor benutzt, was sehr gut zu sehen war...

Ich um Nachsicht, ich sehe schlecht und bin daher schlecht bei der Rescheche. Danke.

MfG
Willie
Mal eine Frage zur Aufklärung:
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.
Miniaturansicht angehängter Grafiken
windows-groessenanpassung.jpg  

Geändert von hathor ( 8. Feb 2014 um 21:16 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf