AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TAdvCombobox erweitern mit der Option ReturnIsTab
Thema durchsuchen
Ansicht
Themen-Optionen

TAdvCombobox erweitern mit der Option ReturnIsTab

Ein Thema von RWarnecke · begonnen am 24. Nov 2012 · letzter Beitrag vom 24. Nov 2012
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

TAdvCombobox erweitern mit der Option ReturnIsTab

  Alt 24. Nov 2012, 11:47
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.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

AW: TAdvCombobox erweitern mit der Option ReturnIsTab

  Alt 24. Nov 2012, 12:07
Das WM_NEXTDLGCTL muss an die PArent Form geschickt werden. Du sendest es nun an deine ComboBox selber, dort sind ja aber keine weiteren Controls drin.

Delphi-Quellcode:
 f:=GetParentForm(Self);
 if assigned(f) then
   f.Perform(WM_NEXTDLGCTL, 0, 0);
Im OnKeyDown hast du wahrscheinlich auch das Perform von dem Form, wo das Control drauf lag aufgerufen.
Lars
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

AW: TAdvCombobox erweitern mit der Option ReturnIsTab

  Alt 24. Nov 2012, 12:31
Hallo Lars,

danke für Deine schnelle Antwort. Der Hinweis mit dem GetParentForm war genau richtig. Es funktioniert jetzt einwandfrei.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz