Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-04-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 1.878
Poder: 14
oscarac Va por buen camino
mostrar 2 formularios juntos

tengo un formulario donde doy mantenimiento a una tabla de artículos
la idea que tengo (si es posible) es poder mostrar 2 formularios juntos
en uno tener la grilla con los datos de la tabla mencionada y en el otro formulario, mostrar una imagen correspondiente al artículo
y que mientras se mueva el registro en la grilla cambien la imagen (almacenada en una carpeta)
obvio que en algun campo de la tabla estara la ruta de la imagen

he visto ejemplos, pero quiero saber si se puede hacer en 2 formularios
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 22-04-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 29.205
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y por qué otro formulario?
Responder Con Cita
  #3  
Antiguo 22-04-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 1.878
Poder: 14
oscarac Va por buen camino
porque me gustaria que sea flotante y que no tenga relacion con el formulario primario
si agrego un panel y "ajusto" el tamaño se veria una espacio en blanco visualmente nada agradable
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 22-04-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 1.878
Poder: 14
oscarac Va por buen camino
algo mas o menos asi
y en ese cuadrado mostrar una imagen
Imágenes Adjuntas
Tipo de Archivo: jpg asi.jpg (65,3 KB, 33 visitas)
__________________
Dulce Regalo que Satanas manda para mi.....

Última edición por Casimiro Notevi fecha: 22-04-2019 a las 09:32:30.
Responder Con Cita
  #5  
Antiguo 22-04-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 29.205
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por oscarac Ver Mensaje
porque me gustaria que sea flotante y que no tenga relacion con el formulario primario
si agrego un panel y "ajusto" el tamaño se veria una espacio en blanco visualmente nada agradable
Cita:
Empezado por oscarac Ver Mensaje
algo mas o menos asi
y en ese cuadrado mostrar una imagen

Presentar la imagen en otro formulario es fácil, puedes crearlo dinámicamente, por ejemplo, aunque se ocultará si el usuario mueve el form de los datos, la pantalla puede ser más o menos grande y no caber bien la imagen, creo que dices que el form se ajuste al tamaño de la imagen, pero si la imagen es muy grande y no cabe, ¿lo ajustas? y a partir de qué tamaño lo ajustas.
De todas formas, si quieres hacerlo así, adelante, ¿qué problema o duda tienes?
Responder Con Cita
  #6  
Antiguo 22-04-2019
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 5.800
Poder: 19
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
No debería haber problema. Basta con crear el otro formulario y mostrarlo (Show) en la inicialización del formulario principal. Si no quieres que el formulario principal lo pueda ocultar, haz que la propiedad "FormStyle" sea "fsStayOnTop" (ojo, esto último lo he mirado en Lazarus, que no estoy con Windows ahora, pero supongo que esto será igual que Delphi). También puedes hacer que no tenga borde ni título (BorderStyle = bsNone) y quitarle el botón (BorderIcons) cerrar para asegurarse de que no lo cerrará el usuario. Para que se mueva (o flote), usa el evento "onChangeBounds" (literalmente "al cambiar los límites") del formulario principal.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 22-04-2019 a las 11:56:20.
Responder Con Cita
  #7  
Antiguo 22-04-2019
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.202
Poder: 31
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

A ver si lo que buscas es algo así...


Form de la grilla:
Código Delphi [-]
...
const
  WM_AFTER_CREATE = WM_USER + 300;
type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    procedure WmAfterCreate(var Msg: TMessage); message WM_AFTER_CREATE;
    procedure WMMoving(var Msg: TMessage); message WM_MOVING;
    procedure LocateForm2;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation  {$R *.dfm}

uses Unit2, Unit3{datos};

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form2 := TForm2.Create(Self);
  Form2.BorderStyle := bsToolWindow;
  Form2.BorderIcons := [];
  Form2.FormStyle   := fsStayOnTop;
  PostMessage(Self.Handle, WM_AFTER_CREATE, 0, 0);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Form2.Close;
end;

//------------------------------------------------------------------------------
procedure TForm1.WmAfterCreate(var Msg: TMessage);
begin
  Form2.Show;
  LocateForm2;
end;

// Form1 se ha movido, reposicionar Form2.
procedure TForm1.WMMoving(var Msg: TMessage);
begin
  LocateForm2;
end;

// Posicionar Form2
procedure TForm1.LocateForm2;
begin
  Form2.Left := Self.Left + Self.Width;
  Form2.Top  := Self.Top + Self.Height - Form2.Height;
end;
end.

Form de la imágen:
Código Delphi [-]
...
type
  TForm2 = class(TForm)
    DBImage1: TDBImage;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation  {$R *.dfm}

uses Unit3 {datos};

//...

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

//------------------------------------------------------------------------------
// Form2 no se mueve
procedure TForm2.WMSysCommand(var Msg: TWMSysCommand);
begin
  if Msg.CmdType and $FFF0 = SC_MOVE then
    Msg.Result := 0
  else 
    inherited;
end;
end.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 22-04-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 1.878
Poder: 14
oscarac Va por buen camino
es exactamente lo que busco
pero el otro form lo estoy creando en tiempo de ejecucion mas o menos asi

Código Delphi [-]
_frmimagen := TForm.Create(self);
  with _frmImagen do
  begin
    Caption:= 'Imagen';
    Height:= 230;
    Width:= 300;
    FormStyle := fsMDIChild;
    Left := self.ClientWidth + (Screen.Height - self.ClientHeight) /2 ;
    Top := self.ClientHeight + self.top - 230;
    with TImage.Create(Self) do
    begin
      Align := alClient;
      Parent:= _frmimagen;
    end;
    Show;
  end;

me da errores en el Left

pero voy a probar de la forma en que tu lo estas recomendando

otra cosa, como haces para mostrar la imagen en el post (clubDelphi) ayer quise colocar una imagen y tuve que subirla como adjunto?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #9  
Antiguo 22-04-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 29.205
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por oscarac Ver Mensaje
otra cosa, como haces para mostrar la imagen en el post (clubDelphi) ayer quise colocar una imagen y tuve que subirla como adjunto?
Usa un servidor externo, por ejemplo: https://subefotos.com/
Responder Con Cita
  #10  
Antiguo 23-04-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 1.878
Poder: 14
oscarac Va por buen camino

ya me salió
pero cuando entra el foco lo recibe el formulario donde se muestra la imagen
tengo que hacer click en el formulario de la grilla para que se active
__________________
Dulce Regalo que Satanas manda para mi.....

Última edición por oscarac fecha: 23-04-2019 a las 00:43:04.
Responder Con Cita
  #11  
Antiguo 24-04-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 1.878
Poder: 14
oscarac Va por buen camino
otro tema que me he dado cuenta es que cuando al formulario donde esta la grilla lo invoco desde el formulario principal (MAIN), funciona normal, aparece el formulario con la imagen, pero cuando invoco a este mismo formulario (el de la grilla) desde otro formulario (child) no aparece la imagen....

ecfisa a que se debe ??
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #12  
Antiguo 24-04-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 29.205
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y por qué no pones tu código?
Responder Con Cita
  #13  
Antiguo 24-04-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 1.878
Poder: 14
oscarac Va por buen camino
es el mismo codigo
creo que el problema esta en

Código Delphi [-]
 PostMessage(Self.Handle, WM_AFTER_CREATE, 0, 0);

estoy investigando que hace este comando
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #14  
Antiguo 24-04-2019
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.202
Poder: 31
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por oscarac Ver Mensaje
es el mismo codigo
creo que el problema esta en

Código Delphi [-]
 PostMessage(Self.Handle, WM_AFTER_CREATE, 0, 0);

estoy investigando que hace este comando
La función PostMessage pone de forma asincrónica un mensaje en la cola de mensajes de la ventana indicada y retorna. Cuando ese mensaje es capturado por el método WmAfterCreate, ejecuta su código.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #15  
Antiguo 24-04-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 1.878
Poder: 14
oscarac Va por buen camino
no se si en algun momento mencione que estoy aprendiendeo Delphi de manera autodidacta y este grupo incluido los integrantes mas activos me han ayudado muchisimo

pero aun no estoy en un nivel avanzado como para entender el postmessage

la ventana donde se supone deberia aparecer la imagen no aparece cuando el formulario de articulos lo invoco desde otra form
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #16  
Antiguo 24-04-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 29.205
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Seguramente estás enviando el "self.handle" del form que hace la llamada, en lugar del form desde donde debería hacer la llamada para mostrar la imagen.
Responder Con Cita
  #17  
Antiguo 24-04-2019
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.202
Poder: 31
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Recién veo en tu mensaje #8 la línea:
Código Delphi [-]
FormStyle := fsMDIChild;
es decir que estas trabajando con MDI. Te adjunto un ejemplo similar al anterior pero adaptado para ese formato, sólo crea una carpeta y descomprimelo allí.

Saludos
Archivos Adjuntos
Tipo de Archivo: zip oscarac.zip (123,8 KB, 4 visitas)
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #18  
Antiguo 28-04-2019
hal1967 hal1967 is offline
Miembro
 
Registrado: feb 2012
Posts: 23
Poder: 0
hal1967 Va por buen camino
Donde



Código Delphi [-]
    Left := self.ClientWidth + (Screen.Height - self.ClientHeight) /2 ;

debe ser

Código Delphi [-]
    Left := self.ClientWidth + (Screen.Height - self.ClientHeight) div 2 ;


La diferencia 101/2 es 50.5 102 div 2 es 50
Responder Con Cita
  #19  
Antiguo 28-04-2019
hal1967 hal1967 is offline
Miembro
 
Registrado: feb 2012
Posts: 23
Poder: 0
hal1967 Va por buen camino
Me salgo del topico

Disculpen que me salga del tópico, pero este gif ¿cómo lo generaste?.


Gracias



Cita:
Empezado por ecfisa Ver Mensaje
Hola.

A ver si lo que buscas es algo así...


....
Saludos
Responder Con Cita
  #20  
Antiguo 29-04-2019
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.202
Poder: 31
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por hal1967 Ver Mensaje
Disculpen que me salga del tópico, pero este gif ¿cómo lo generaste?.
Las imágenes vienen en el archivo biolife.db que trae Delphi 7 como demo. Está incluido en el comprimido que adjunté mensajes mas arriba .

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas al abrir nuevas ventanas (Formularios) y mostrar imágenes... zeta2 Varios 2 23-04-2013 18:47:43
Mostrar 2 formularios dockeados al lanzar el formulario terneromayor OOP 1 15-04-2008 12:40:59
Mostrar Formularios BuenaOnda Varios 1 29-03-2007 07:13:45
Como mostrar formularios transparentes fbravo OOP 2 27-10-2005 22:11:15
Mostrar y cerrar correctamente los formularios serhasae Varios 3 25-06-2005 19:55:25


La franja horaria es GMT +2. Ahora son las 17:33:05.


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