Hallo zusammen,
ich verusche gerade irgednwie verwzeifelt eine Option ReturnIsTab in der TAdvCombobox einzubauen. So sieht mein Quelltext aus :
Delphi-Quellcode:
type
TBISCombobox = class(TAdvComboBox)
private
FReturnIsTab : Boolean;
protected
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
public
{ Public-Deklarationen }
published
property ReturnIsTab : Boolean read FReturnIsTab write FReturnIsTab default False;
end;
{...}
procedure TBISCombobox.KeyDown(var Key: Word; Shift: TShiftState);
begin
if (Key = VK_RETURN) and (FReturnIsTab) then
begin
Perform(WM_NEXTDLGCTL, 0, 0);
end;
inherited KeyDown(Key, Shift);
end;
Wenn ich jetzt zur Laufzeit die Komponente erstelle und die Option ReturnIsTab auf True setze, wird nicht ins nächte Eingabefeld gesprungen, warum ? Wenn ich für die Komponente das OnKeyDown-Ereignis zuweise und dort
Perform(WM_NEXTDLGCTL, 0, 0)
ausführe, funktionert der Sprung ins nächste Eingabefeld.
Wer keine AdvCombobox hat kann es mal mit der TCombobox ausprobieren. Beide sind von TCustomCombobox abgeleitet und das OnKeyDown-Ereignis steht erst in der TCustomCombobox drin.