Re: Tworzenie nowych okien - formularzy

Cały czas chodzi o okna otwierane sposobem jaki jest tematem pierwotnym tego wątku. A kodo:Cyfrowy Baron napisał(a):Musisz podawać więcej informacji, gdyż zbyt dużo trzeba się tutaj domyślać. O wciśnięcie których klawiszy chodzi?]
KOD cpp: UKRYJ
void __fastcall TForm4::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
ShowMessage(Key);
}
{
ShowMessage(Key);
}
Jak sądzę ma za zadanie przechwytywanie wciśnięcia dowolnego klawisza podając jego nr np Insert = 45.... I przechwytuje wiele razy, ale gdy dam np:
KOD cpp: UKRYJ
void __fastcall TForm4::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
Edit1->Text = Key;
}
{
Edit1->Text = Key;
}
Ale jak już dam z wywołaniem okna dialogowego:
KOD cpp: UKRYJ
void __fastcall TForm4::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key == 45)
{
if(Application->MessageBox("Zapisać","Komunikat", MB_YESNO | MB_ICONQUESTION) == IDNO)
{
return;
}
else
{
// Zapisać...
}
}
BringWindowToFront(this->Handle);
}
TShiftState Shift)
{
if(Key == 45)
{
if(Application->MessageBox("Zapisać","Komunikat", MB_YESNO | MB_ICONQUESTION) == IDNO)
{
return;
}
else
{
// Zapisać...
}
}
BringWindowToFront(this->Handle);
}
Niestety tylko raz za pierwszym kliknięciem w Insert zadziała wyskoczenie okna monitu MessageBox nawet przy dodatnio Twojego funkcji
Wiec gdyby ktoś jednak chciał zapisać czyli powtórnie nacisnął klawisz Insert nie pojawi się już okno MessageBox przy czym okno formularza nadal jest jako pierwsze i aktywne

Dodam, że gdy okno dodatkowe znajdzie się pod głównym oknem programu już wcale nie reaguje na naciśniecie w klawisze