Moin,
ich versuche gerade ein Caret in einem RichEdit zu verstecken und zwar habe ich eine Komponente abgeleitet die bis jetzt erst so aussieht:
Delphi-Quellcode:
unit pbIRCChatBox;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, StdCtrls, ComCtrls;
type
TpbIRCChatBox =
class(TRichEdit)
private
FHideCaret: Boolean;
procedure OnFocus(
var Msg: TMessage);
message WM_SETFOCUS;
public
constructor Create(AOwner: TComponent);
override;
published
property HideCaret: Boolean
read FHideCaret
write FHideCaret;
end;
procedure Register;
implementation
constructor TpbIRCChatBox.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FHideCaret := True;
end;
procedure TpbIRCChatBox.OnFocus(
var Msg: TMessage);
begin
inherited;
if HideCaret
then
Windows.HideCaret(
Handle);
end;
procedure Register;
begin
RegisterComponents('
PB', [TpbIRCChatBox]);
end;
end.
Nur irgendwie hat das keine Wirkung, das Caret ist immernoch da obwohl ich HideCaret aufrufe! Wenn ich das inherited weglasse ist der Caret zwar weg, aber dann wird das HideCaret auch nicht benötigt, weil der caret nie kreiert wird... aber wer weiss was im WM_SETFOCUS noch passiert als das caret zu kreieren....also muss ich das wohl benutzen oder?
Jemand ne idee?