Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Acceso a formularios desde un TDBListBox en Delphi7 (https://www.clubdelphi.com/foros/showthread.php?t=88565)

TheNew 25-06-2015 01:00:29

Acceso a formularios desde un TDBListBox en Delphi7
 
Buenas tardes a todos, estoy trabajando en accesos a formularios desde un dblistbox en delphi7, la situacion es que no se como llamar al formulario al hacer click sobre el Item del listbox que lleva el nombre del formulario. Cualquier ayuda de antemano sera inmensamente agradecida.

Casimiro Notevi 25-06-2015 01:33:33

¿Llamar al formulario?, ¿a qué formulario?, por favor, tómate tu tiempo en explicar con detalle tu problema, adjunta tu código, explica claramente qué quieres conseguir, etc.

kapcomx 25-06-2015 01:57:06

ejemplo
 
espero te sirva este ejemplo

es un treeview que muestra 4 opciones cada una manda llamar un formulario

Código Delphi [-]
procedure TfPrincipal.tPVentasClick(Sender: TObject);
begin
     
     if tPVentas.Items[0].Selected then
       begin
            if not createMDI(fPrincipal,tfNvaVenta,fNvaVenta) then
            Application.CreateForm(tfNvaVenta,fNvaVenta);
            PanelPrincipal.Enabled := False;
            fnvaventa.envia:='P';
            fnvaventa.Height:= 650;
            fNvaVenta.Show;
       end;

     if tPVentas.Items[1].Selected then
       begin
            if not createMDI(fPrincipal,tfListVenta,fListVenta) then
            Application.CreateForm(tfListVenta,fListVenta);
            PanelPrincipal.Enabled := False;
            dbds.filtra(dbds.dsventas, dbds.con_ventas +' order by tblpuntodeventa.posid desc');
            flistventa.envia:='P';
            fListVenta.Show;
       end;



     if tPVentas.Items[2].Selected then
       begin
            if not createMDI(fPrincipal,tfCorteCaja,fCorteCaja) then
            Application.CreateForm(tfCorteCaja,fCorteCaja);
            PanelPrincipal.Enabled := False;
            fCorteCaja.envia:='P';
            fCorteCaja.Show;
       end;

     if tPVentas.Items[3].Selected then
       begin
            if not createMDI(fPrincipal,tfrmcorte_parcial,frmcorte_parcial) then
            Application.CreateForm(tfrmcorte_parcial,frmcorte_parcial);
            PanelPrincipal.Enabled := False;
            frmcorte_parcial.envia:='P';
            frmcorte_parcial.Show;
       end;

end;

createmdi es una funcion que uso para saber si el formulario no ha sido creado.

Código Delphi [-]
function tfPrincipal.CreateMDI(Owner:TForm;BaseClass:TFormClass; FormVar:TForm):Boolean;
var
    found:Boolean;
    i:integer;
begin
     Application.ProcessMessages;
     found := False;
//                        Recorremos el array de ventanas hijas
     For i:= 0 To Owner.MDIChildCount-1 Do
         If Owner.MDIChildren[i] is BaseClass Then
           Begin
                Owner.MDIChildren[i].Show;
                found := True;
           End;
     createMDI := Found;
end;

espero te sirva:cool:

Casimiro Notevi 25-06-2015 09:43:38

Cita:

Empezado por kapcomx (Mensaje 493647)
es un treeview que muestra 4 opciones cada una manda llamar un formulario

Vaya, yo no había entendido eso :rolleyes:

ecfisa 25-06-2015 14:25:00

Hola.
Cita:

Empezado por TheNew (Mensaje 493644)
...llamar al formulario al hacer click sobre el Item del listbox que lleva el nombre del formulario.

De lo anterior, interpreto que busca algo parecido a lo expuesto en este artículo.

Saludos :)

Neftali [Germán.Estévez] 25-06-2015 16:51:03

Creo que la forma correcta y óptima es utilizar RTTI, al igual que se hace con los componentes en ejecución.
Registrando las clases de los formularios, deberías poder accceder a la clase de cada formualrio y a partir de ahí crear una instancia del formulario en cuestión.

Revisa el link que hapasado ecfisa.

TheNew 25-06-2015 18:05:23

Gracias
 
Hola a todos por responder a mi interrogante, debo decir que todas son buenas y muy validas es exactamente lo que buscaba aunque supuse que podia guardar el nombre de campo en una variable de tipo String y adjuntar .show.... " Es que nunca habia manejado clases en delphi y por eso las dudas" Gracias Neftali revisare bien el post y luego les digo como me fue.


La franja horaria es GMT +2. Ahora son las 12:31:21.

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