B
Hiermit mache ich beim Click im Treeview das MDIChild für die Benutzer auf, bzw. hole es in den Vordergrund, wenn es schon einmal in Hintergrund offen steht. Wahrscheinlich ist diese Funktion sowieso etwas chaotisch, da es mein erstes MDI Projekt in Borland ist.
void OpenBenutzerView()
{
bool is_open = false;
if(MDIChildCount < 1)
{
TBenutzerForm* mform = new TBenutzerForm(this);
mform->Show();
mform->BringToFront();
mform->SetFocus();
}
else
{
for(int i = MDIChildCount-1; i >= 0; i--)
{
if(MDIChildren[i]->Name == "BenutzerForm")
{
MDIChildren[i]->BringToFront();
MDIChildren[i]->SetFocus();
TBenutzerForm* form = (TBenutzerForm*)MDIChildren[i];
form->m_gridBenutzer->SetFocus();
is_open = true;
break;
}
}
if(!is_open)
{
TBenutzerForm* mform = new TBenutzerForm(this);
mform->Show();
mform->BringToFront();
mform->SetFocus();
}
}
}
Das Problem liegt nun daran, das wenn praktisch den Treeview doppelklicke der Focus dorten hängen bleibt, trotz diesem form->....->SetFocus();
Ich kann in diesem Fall nicht mal mehr mit der Maus dem Fokus direkt an das DBGrid übergeben. Das funktioniert nur, wenn ich zuerst ein Editfeld auf der Form anklicke und danach dann das DBGrid!