SetFocus - Problem
-
Wenn das Feld noch nicht enabled ist, dann kann es auch nicht in der Tab-Order auftauchen.
-
-
bin manchmal etwas langsamer,...
also, ich hab nun folgende definition:
void __fastcall TEdit::WMGetDlgCode(TMessage & Message) { Message.Result = DLGC_WANTTAB; }
müsste eigentlich hinhauen, wo muss ich die deklaration unterbringen, bzw.
wo darf ich, bietet es sich an?
-
Hi,
< *.h > private: void __fastcall CMDialogKey(TWMKey &AMsg); public: __fastcall TForm1(TComponent* Owner); protected: BEGIN_MESSAGE_MAP VCL_MESSAGE_HANDLER(CM_DIALOGKEY, TWMKey, CMDialogKey) END_MESSAGE_MAP(TForm) < *.cpp > void __fastcall TForm1::CMDialogKey(TWMKey &AMsg) { TForm::Dispatch(&AMsg); switch(AMsg.CharCode) { case VK_TAB : if (ActiveControl == Edit1) { Edit2->Enabled = true; Edit2->SetFocus(); } break; } }
-
Okelidokeli, des wars, sitzt, passt, wackelt und hat Luft.
danke
-
muss nochmal auf die taborder zurückkommen.
anscheinend wird diese inkrementiert, bevor das OnExit()-Ereignis ausgelöst wird, wie kann ich die taborder nun manuell zurücksetzen, bzw. wo innerhalb des übergeordneten Elements(in diesem fall TTabSheet) wird der wert von taborder des aktiven/fokussierten objekts festgehalten?
-
Moin,
der Msg-Handler von Jaroslav hat mir schon sehr geholfen.
Allerdings hab ich nun das Problem, dass der auch auf Shift+Tab reagiert, ich kann also nicht mehr zurücktabben.
Wie kann ich im Msg-Handler zusätzlich den Shiftstatus abfragen?
Bzw. wie muss dazu die Deklaration aussehen?void __fastcall TForm1::CMDialogKey(TWMKey &AMsg, TShiftState Sh) { TForm::Dispatch(&AMsg); if(!Sh.Contains(ssShift)) { switch(AMsg.CharCode) { case VK_TAB : if (ActiveControl == Edit1) { Edit2->Enabled = true; Edit2->SetFocus(); } break; } } }
-
Hi,
nein, nein....das geht nicht mit 2 parameters
void __fastcall TForm1::CMDialogKey(TWMKey &AMsg) { TForm::Dispatch(&AMsg); if (AMsg.CharCode == VK_TAB && KeyDataToShiftState(AMsg.KeyData).Contains(ssShift)) { if (ActiveControl == Edit1) { Edit2->Enabled = true; Edit2->SetFocus(); } } }
-
Habs mir schon fast gedacht, aber wie sind dann die anderen Msg-Handler wie z.B. MouseMove aufgebaut?
Danke für deine schnelle Hilfe, danach (KeyDataToShiftState) hät ich wohl ewig gesucht
-
Original erstellt von DBler:
aber wie sind dann die anderen Msg-Handler wie z.B. MouseMove aufgebaut?Hä???
-
sorry, ganz schnell vergessen, kurzer anflug von geistiger umnachtung