Ver Mensaje Individual
  #1  
Antiguo 13-01-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Ayuda dinámica

Tengo este formulario

El cuadro gris que se ve abajo a la derecha es un TListBox que sea crea de forma dinámica al pulsar el BitBtn que se ve a la izquierda. Par ello uso este código:
Código:
void __fastcall TfTablas::BotAyu(TObject *Sender)
{
     TBitBtn *Boton = dynamic_cast<TBitBtn *>(Sender);
    TComponent *Source;
     POINT P1, P2;

    for (nItem = 0; nItem < this->ComponentCount; nItem ++)
     {
          Source = this->FindComponent("AyuLis");
          if (Source != NULL)
               return;
     }

    for (nItem = 0; nItem < this->ComponentCount; nItem ++)
     {
          Source = this->FindComponent(Boton->Name.SubString(2, Boton->Name.Length()));
          if (Source != NULL)
               if (Source->ClassNameIs("TEdit") || Source->ClassNameIs("TLabeledEdit"))
               {
                    AyuEdit = static_cast<TCustomEdit *>(Source);
                    break;
               }
     }

     if (Source == NULL)
          return;

     P1.x = AyuEdit->Parent->Left + AyuEdit->Left;
     P1.y = AyuEdit->Parent->Top + AyuEdit->Top + AyuEdit->Height;
     P2   = ClientToScreen(P1);

     AyuLis              = new TListBox(this);
     AyuLis->Name        = "AyuLis";
     AyuLis->Parent      = this;
     AyuLis->BevelInner  = bvNone;
     AyuLis->BevelKind   = bkFlat;
     AyuLis->BevelOuter  = bvLowered;
     AyuLis->BorderStyle = bsNone;
     AyuLis->Color       = clSilver;
     AyuLis->Height      = 10 * AyuLis->ItemHeight;
     AyuLis->Left        = P2.x;
     AyuLis->Top         = P2.y;
     AyuLis->Width       = AyuEdit->Width + Boton->Width;
     AyuLis->OnClick     = AyuLisClick;
}
La idea, lógicamente, es que dicha ayuda aparezca justo debajo del TEdit correspondiente pero no sé como convertir esas coordenadas obtenidas con ClientToScreen de forma que se muestre como deseo.
Responder Con Cita