Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Atajos en Popup menus (https://www.clubdelphi.com/foros/showthread.php?t=94745)

aguml 19-06-2020 14:08:47

Atajos en Popup menus
 
Amigos tengo un Popup menu que está asociado con dos TListbox diferentes y la idea es que al pulsar un atajo de teclado se ejecute el método que tenga ese atajo pero quiero que funcione con el ListBox que tenga el foco. Ahora mismo no me funciona con ninguno de ellos y no se por qué. ¿Pueden ayudarme?

Esto tengo:
Código PHP:

void __fastcall TForm1::SendClipboardSelectedArchivosClick(TObject *Sender)

{
    if(
ListBoxSeleccionados->Focused)
        
CopiarSeleccion(ListBoxSeleccionados);
    else if(
ListBoxCoincidencias->Focused)
        
CopiarSeleccion(ListBoxCoincidencias);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SendClipboardAllArchivosClick(TObject *Sender)
{
    if(
ListBoxSeleccionados->Focused)
        
CopiarTodo(ListBoxSeleccionados);
    else if(
ListBoxCoincidencias->Focused)
        
CopiarTodo(ListBoxCoincidencias);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::DelSelectedArchivosClick(TObject *Sender)
{
    if(
ListBoxSeleccionados->Focused)
        
LabelNArchivos->Caption EliminarSeleccion(ListBoxSeleccionados);
    else if(
ListBoxCoincidencias->Focused)
        
LabelNCoincidencias->Caption EliminarSeleccion(ListBoxCoincidencias);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::CreateFileArchivosClick(TObject *Sender)
{
    if(
ListBoxSeleccionados->Focused)
        
ListBoxSeleccionados->Items->SaveToFile("Lista_principal.txt");
    else if(
ListBoxCoincidencias->Focused)
        
ListBoxCoincidencias->Items->SaveToFile("Lista_coincidencias.txt");


Les puse delante de cada Caption el & en el carácter que quiero que sea el atajo pero no funcionan los atajos.

Neftali [Germán.Estévez] 22-06-2020 08:08:40

Ejecuta el programa paso a paso y mira qué te devuelve al preguntar por el Listbox.focused.
Es posible que cuando se ejecuten las accciones ninguno de los 2 listbox tenga el foco.
A quién está asignado el popupmenu?

aguml 22-06-2020 10:02:05

está asignado a dos Listbox. Incluso he probado a hacer un SetFocus en el evento OnClick y ni así me funciona.

Neftali [Germán.Estévez] 22-06-2020 13:46:30

Cita:

Empezado por aguml (Mensaje 537737)
está asignado a dos Listbox. Incluso he probado a hacer un SetFocus en el evento OnClick y ni así me funciona.


En ese caso utiliza el Sender y no tendrás que hacer el IF para cada TListBox


La franja horaria es GMT +2. Ahora son las 01:22:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi