PDA

Ver la Versión Completa : Unas cuantas dudas...


alt126
16-12-2004, 11:00:22
Vamos a ver, tengo una aplicacion pero quiero hacer unas cosillas y aunque he encontrado informacion, esta no me vale o no se muy bien como utilizarla.

1º Tengo unos TDBLookupComboBox, que leen de una base de datos. El problema es que cuando aparecen varias cadenas iguales (varios nombres iguales por ejemplo), al darle a la flecha abajo (con el teclado), no avanza. ¿Esto se puede cambiar de alguna manera?

2º Quiero que se pueda avanzar de un componente a otro al pulsar el enter y el tab. Sobre esto hay mucha informacion sobre eventos y cosas. Pero me sigue sin quedar claro. Hay ejemplos hechos en delphi, pero no me funcionan, supongo que porque mi version del builder c++ es la 3, un poco antigua. Si alguien me puede dar alguna idea clara, pero a ser posible que no sea indicar a cada componente el siguente con el evento OnKeyPress de cada componente...algo que sirve para toda la aplicacion.

3º He insertado codigo de un ejemplo que viene en cbuilder3\examples sobre como poner la aplicacion en el system tray. Y todo funiona perfectamente. El problema es que para activar todo ese codigo y que la aplicacion desapareza y se coloque en el tray, he capturado el minimize con Application->OnMinimize = "mi funcion".

La primera vez funciona de vicio, pero ya no mas. Y no se que estoy haciendo mal, porque si el codigo lo activo con el evento de pulsar un boton en vez del OnMinimize...funciona perfectamente siempre.

Cuando se minimiza realizo lo siguiente :

TrayMessage(NIM_ADD);
TrayMessage(NIM_MODIFY);
Hide();

y para volver:

Show();

Alguna sugerencia sobre esto?, da problemas el capturara el evento minimize?

Muchas gracias,

Antonio

aleph
03-11-2006, 18:55:45
pues yo estoy utilizando los componentes que dan en : http://www.lmd.de/ hay uno para el trayIcon; el codigo que utilizo e el siguiente:

.
.
.
.

void __fastcall TForm1::FormCreate(TObject *Sender)
{
TrayIcon1->Active=false;
Application->OnMinimize = AppStart;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::TrayIcon1Click(TObject *Sender)
{
TrayIcon1->Active=false;
Application->Restore();

}
//---------------------------------------------------------------------------
void __fastcall TForm1::AppStart(TObject *Sender)

{
TrayIcon1->Active=true;
}



y me ha funcionado sin problemas , pero la aplicacion siempre queda en segundo plano es decir , aparece siempre debajo de cualquier otra ventana que tenga abierta en ese momento si sabes algo de como hacer que sea ella la ventana activa me avisas.

aleph
03-11-2006, 18:57:58
no me habia fijado de la fecha en que publicaste esto, espero aun te sirva,

aleph
05-11-2006, 05:25:05
creo que me enrrede mas de lo que debia, entiendo que tratas de hacer y si por casualidad revisas este hilo que ya parece muerto, intente como tu lo haces y me dio el mismo problema al parecer funciona si utilizo Application->Restore; despues de mostrarla con Show() y mandando un mensaje NIM_DELETE ; aparentemente ha funcionado sin problema, ojala si revisas este hilo me digas si pudiste solucionarlo.