Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-05-2008
Avatar de judit25
judit25 judit25 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Bronx, NY
Posts: 122
Poder: 19
judit25 Va por buen camino
Question Formulario tipo galeria de imagenes

Buenos Dias

Mi inquietud es la siguiente:

Quiero realizar un formulario que se va a llenar de fotos cuya ruta se guarda en una tabla. Este formulario va a ser llamado de un formulario consulta donde al momento de seleccionar una marca te pueda permitir mostrar todas las fotos de los productos de esa marca en dicho formulario (no hay una cantidad especifica de fotos).

Este formulario va a mostrar las fotos en 5 columnas y por pantalla caben 3 filas, si hay mas de tres filas debe de mostrar un scrollbar vertical que me permita moverme para abajo y para arriba, para ver todas las fotos.

Ademas que si le dan un click encima de la foto me devuelva al formulario anterior con los datos del producto al que pertenece esa foto.

Hay una forma de hacer esto? que dependiendo la cantidad de fotos que encuentre de esa marca se vaya llenando por fila el formulario.

No se si me explique bien.

Gracias anticipadas.

Saludos
__________________
El hombre feliz no es el hombre que rie, sino aquel cuya alma llena de alegría y confianza se sobrepone y es superior a los acontecimientos.
Séneca

Última edición por judit25 fecha: 22-05-2008 a las 16:59:26.
Responder Con Cita
  #2  
Antiguo 22-05-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Deberías concretar un poco más en cual es la pregunta.
¿Qué es lo que necesitas saber?

Para las barras deberías utilizar un ScrollBox; Dentro de un ScrollBox, los controles TImage que necesites (sólo carga imágenes en los visibles); A medida que vayas moviéndote carga las nuevas imágenes.

Podría ser una forma de hacerlo, aunque hay que ver cuanta memoria consume y lo que tarda en cargar las imágenes de disco.

¿Te refieres a eso? ¿A otra cosa?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 22-05-2008
Avatar de judit25
judit25 judit25 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Bronx, NY
Posts: 122
Poder: 19
judit25 Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Deberías concretar un poco más en cual es la pregunta.
¿Qué es lo que necesitas saber?

Para las barras deberías utilizar un ScrollBox; Dentro de un ScrollBox, los controles TImage que necesites (sólo carga imágenes en los visibles); A medida que vayas moviéndote carga las nuevas imágenes.

Podría ser una forma de hacerlo, aunque hay que ver cuanta memoria consume y lo que tarda en cargar las imágenes de disco.

¿Te refieres a eso? ¿A otra cosa?


Gracias por responder.

A lo que me refiero es de como puedo cargar todas las imagenes que tengo en una tabla de una marca especifica (que filtro del formulario anterior), en un formulario, donde al darle click a esa imagen me retorne al formualrio anterior con los datos de ese producto al que hace referencia esa imagen.

Segun el numero de imagenes que tenga la tabla o el query al filtrarlo debera de irse creando un dbimage (me imagino) donde se va a cargar la imagen desde la tabla y colocandola una al lado de la otra o una abajo de la otra.

No se si me explique mejor.

Gracias de nuevo
__________________
El hombre feliz no es el hombre que rie, sino aquel cuya alma llena de alegría y confianza se sobrepone y es superior a los acontecimientos.
Séneca

Última edición por judit25 fecha: 22-05-2008 a las 17:45:59.
Responder Con Cita
  #4  
Antiguo 22-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Cool

Hola...

puede que te sirva el componente NiceGallery.. que lo puedes obtener desde Aquí

no lo he probado....

Salu2
__________________
BlueSteel
Responder Con Cita
  #5  
Antiguo 22-05-2008
santus santus is offline
Miembro
 
Registrado: ene 2006
Posts: 130
Poder: 19
santus Va por buen camino
Holas

Para mostrar eso que quieres hacer, te recomiendo que uses el "ImagesViewer" de las librerias JEDI que anda muy bien.

Lo único que en vez de tomarte las imagenes desde una base de datos, te las toma desde un directorio. Supongo que te será sencillo adaptarlo a este componente.

Para usarlo solamente tienes que especificar en la propiedad "Directory" el directorio de las imagenes y listo.

Despues para actualizar las imagenes:
Código Delphi [-]
ImagesViewer1.LoadImages;

Despues tambien te dejo algo de codigo para que te des una idea de como trabajan:

Código Delphi [-]

procedure TfPropiedades.btnBorrarImagenSelecPropClick(Sender: TObject);
begin
  inherited;
  // Borramos la foto seleccionada.
  if (ImagesViewer1.Count > 0) and (ImagesViewer1.SelectedIndex >= 0) then begin
    DeleteFile(ImagesViewer1.Items[ImagesViewer1.SelectedIndex].FileName);
    ImagesViewer1.LoadImages;
  end;
end;

Y siguiendo el ejemplo haces lo que tu quieras.

Espero que te sirva.

Mucha suerte!
__________________
"El ordenador nació para resolver problemas que antes no existían." Bill Gates.

Última edición por santus fecha: 22-05-2008 a las 19:26:14.
Responder Con Cita
  #6  
Antiguo 22-05-2008
Avatar de judit25
judit25 judit25 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Bronx, NY
Posts: 122
Poder: 19
judit25 Va por buen camino
Buenas tardes!

Les cuento que he conseguido parte de lo que necesito, solo me falta poder asignar en tiempo de ejecucion lo que va a hacer al momento de que presionen click en la imagen.

Por ahora este es el codigo que he logrado:

Código Delphi [-]
procedure TFrmConFotosAros.FormShow(Sender: TObject);
var
 NumEdits, I, j: Integer;
begin
j := 11;
  if Query1.RecordCount > 0 then
    begin
      Query1.First;
      while not Query1.Eof do
        begin
          if (Query1Ruta.IsNull) or (Query1Ruta.Value = '') then
            begin
              NumImagenes := NumImagenes;
              Query1.Next;
            end
          else
            begin
              NumImagenes := NumImagenes + 1;
              with TDBImage.Create(Self) do
                begin
                  Name := 'DBImage' + IntToStr(NumImagenes);
                  Parent := Self;
                  Height := 126;
                  Width := 129;
                  if NumImagenes = 1 then
                    begin
                      j := j;
                    end
                  else
                    begin
                      j := j + 159;
                    end;
                  Top := j;
                  stretch := true;
                  Picture.LoadFromFile(Query1Ruta.Value);
                  onclick :=  MyClick;
                end;
    
//Esta parte lo hago para poder guardar el codigo del producto al que pertenece la imagen 
              with TEdit.Create(Self) do
                begin
                  Name := 'Edit' + IntToStr(NumImagenes);
                  Parent := Self;
                  Top := 25*(NumImagenes + 1);
                  text := Query1Cod_Prod.Value;
                  Visible := false;
                end;

              Query1.Next;
            end;     
        end;
    end;

end;

Esto es lo que debe de hacer al momento de darle click en una de las imagenes

Código Delphi [-]
procedure TFrmConFotosAros.MyClick(Sender:TObject);
var
nomed1 : string;
nomed : integer;
begin
nombreedit:= (Sender as TdbImage).Name;

nomed:= strtoint(copy(nombreedit,8,5));
nomed1:= 'Edit' + IntToStr(nomed);  // Aqui tengo el nombre del edit que esta asociado a la dbimage que se pulso

FConAros.Query1.Close();
FConAros.Query1.SQL.Clear;

FConAros.Query1.SQL.Add('SELECT * FROM QAro');
FConAros.Query1.SQL.Add(' WHERE Cod_Prod like '+quotedStr(('%'+Edit1.Text)+'%'));  //donde esta Edit1, debe de tomar el edit que hace referencia a la imagen (nomed1).   
FConAros.Query1.Open();
if FConAros.Query1Ruta.IsNull then
  FConAros.dbImage1.Visible := false
else
  begin
    FConAros.dbImage1.Visible := true;
    FConAros.dbImage1.Picture.LoadFromFile(FConAros.Query1Ruta.Value);
  end;
FconAros.Show;
close;
end;

Como puedo tomar el valor (Text) que esta en ese Edit, que el nombre saque en esa variable?.

Es decir si por ej presione en el dbimage1, en la variable nomed1 tendria Edit1. Como puedo convertirlo a un TEdit para poder usar el .text de los edits. (Edit1.text) que ahi es que guardo el codigo que me hace falta para poder filtrar el Query.

Gracias anticipadas

Saludos
__________________
El hombre feliz no es el hombre que rie, sino aquel cuya alma llena de alegría y confianza se sobrepone y es superior a los acontecimientos.
Séneca

Última edición por judit25 fecha: 23-05-2008 a las 16:36:16. Razón: Actualizacion en el codigo
Responder Con Cita
  #7  
Antiguo 23-05-2008
Avatar de judit25
judit25 judit25 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Bronx, NY
Posts: 122
Poder: 19
judit25 Va por buen camino
Hola a tod@s

Les comento que pude encontrar la solucion de lo que necesitaba. Aqui dejo el codigo que actualice por si alguien se encuentra en la misma situacion que yo y necesite algo parecido.

EL codigo que cambie fue el del Procedure MyClick, lo demas se quedo igual.

Aqui esta el codigo

Código Delphi [-]

procedure TFrmConFotosAros.MyClick(Sender:TObject);
var
nomed1, nomed3 : string;
nomed, I: Integer;
Temp: TComponent;

begin
nombreedit:= (Sender as TdbImage).Name; 

nomed:= strtoint(copy(nombreedit,8,5)); 
nomed1:= 'Edit' + IntToStr(nomed); 

for I := ComponentCount - 1 downto 0 do
  begin
    Temp := Components[i];
    if (Temp is TEdit) then
      begin
        if ((Temp as TEdit).Name = nomed1) then  
          begin
            nomed3 := (Temp as TEdit).Text;
            FConAros.Query1.Close();
            FConAros.Query1.SQL.Clear;

            FConAros.Query1.SQL.Add('SELECT * FROM QAro');
            FConAros.Query1.SQL.Add(' WHERE Cod_Prod like '+quotedStr(('%'+nomed3+'%')));
            FConAros.Query1.Open();
            if FConAros.Query1Ruta.IsNull then
              begin
                FConAros.dbImage1.Visible := false;
              end
            else
              begin
                FConAros.dbImage1.Visible := true;
                         FConAros.dbImage1.Picture.LoadFromFile(FConAros.Query1Ruta.Value);
              end;
            FconAros.Show;
            close;
          end
        else
          begin
            nomed3 := '';
          end;
      end;
  end;
end;

Muchas gracias a todos por su ayuda.

Saludos
__________________
El hombre feliz no es el hombre que rie, sino aquel cuya alma llena de alegría y confianza se sobrepone y es superior a los acontecimientos.
Séneca
Responder Con Cita
Respuesta



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
Galeria de Imágenes en Delphi 7 (Paradox) lKinGl Gráficos 14 17-08-2011 18:11:07
Formulario tipo Barra de Windows cone220 Varios 1 07-03-2007 18:38:41
¿Que tipo de imágenes soporta firebird? Delphius Firebird e Interbase 12 13-10-2006 19:33:58
formulario tipo splash screen fer21unmsm Varios 3 06-01-2006 23:03:22
ACCESS Imagenes automaticas en formulario skapado Gráficos 3 10-02-2005 14:59:21


La franja horaria es GMT +2. Ahora son las 04:01:18.


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
Copyright 1996-2007 Club Delphi