Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-03-2009
Avatar de Mindfield
Mindfield Mindfield is offline
Miembro
 
Registrado: mar 2009
Posts: 26
Poder: 0
Mindfield Va por buen camino
ayuda , que las imagenes no se superpongan ??

hola tengo este codigo
Código Delphi [-]
  if contador < 15 then
    begin
      For t:= 0 to Random(372) do;     //top 0 a 372
      For l:= 0 to Random(575) do;    //left 0 a 575
      begin
        Image2.Top := t;
        Image2.Left:= l;
      end;

      For t:= 0 to Random(372) do;     //top 0 a 372
      For l:= 0 to Random(575) do;    //left 0 a 575
      begin
        Image3.Top := t;
        Image3.Left:= l;
      end;

      begin
        Image4.Top := t;
        Image4.Left:= l;
      end;

como puedo hacer para que no se esconda una imagen con otra , oscea que las coordenadas no sean parecidas , porque aveces se superponen !

gracias
Responder Con Cita
  #2  
Antiguo 25-03-2009
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.275
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
¿Puedes explicar unpoco más lo que estás haciendo? ¿Dar una visión más general del problema?

¿Estás moviendo imágenes?
__________________
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 26-03-2009
Avatar de Mindfield
Mindfield Mindfield is offline
Miembro
 
Registrado: mar 2009
Posts: 26
Poder: 0
Mindfield Va por buen camino
si Neftali ! perdòn si no se entendio ! , lo que estoy buscando es que una serie de imagenes aparezca en un form pero que estas imagenes aparezcan de forma indefinida ! o random ! , pero el problema surge que al hacer esto algunas imagenes quedan arriba de otras y no se ven !! como puedo hacer para usar un random y que las imagenes tengan una posicion en la pantalla de forma indefinida pero que ninguna tenga la misma posicion de otra ?? , si no se entiende lo vuelvo a explicar y mando todo el codigo !
Responder Con Cita
  #4  
Antiguo 26-03-2009
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.275
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
Hola. Ahora ha quedado un poco más claro. Pues sólo se me ocurre que lo hagas de forma manual. Es decir, para cada imagen que creas, debes guardarte la posición X,Y y el tamaño (Hith y Height) y cuando calcules el Random de una nueva imagen compruebes si tienes colisiones con la que ya hay creadas (con esos 4 valores debería bastarte). Si te da colisiones, puedess descartar el valor y calcular uno nuevo.
__________________
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
  #5  
Antiguo 27-03-2009
Avatar de Mindfield
Mindfield Mindfield is offline
Miembro
 
Registrado: mar 2009
Posts: 26
Poder: 0
Mindfield Va por buen camino
Bueno gracias Neftali voy a tenerlo en cuenta cuando este escribiendo el codigo ! pero soy nuevo en esto y no se como arrancar jeje si tengo complicaciones vuelvo a escribir !
Responder Con Cita
  #6  
Antiguo 27-03-2009
Avatar de Mindfield
Mindfield Mindfield is offline
Miembro
 
Registrado: mar 2009
Posts: 26
Poder: 0
Mindfield Va por buen camino
perdon este es el codigo
Código Delphi [-]
begin
  contador := contador + 1;
  t:= 0;
  l:= 0;
  if contador < 15 then
    begin
      For t:= 0 to Random(372) do;     //top 0 a 372
      For l:= 0 to Random(575) do;    //left 0 a 575
      begin
        Image2.Top := t;
        Image2.Left:= l;
      end;

      For t:= 0 to Random(372) do;     //top 0 a 372
      For l:= 0 to Random(575) do;    //left 0 a 575
      begin
        Image3.Top := t;
        Image3.Left:= l;
      end;

      begin
        Image4.Top := t;
        Image4.Left:= l;
      end;

      For t:= 0 to Random(372) do;     //top 0 a 372
      For l:= 0 to Random(575) do;    //left 0 a 575
      begin
        Image5.Top := t;
        Image5.Left:= l;
      end;

      begin
        Image6.Top := t;
        Image6.Left:= l;
      end;

      For t:= 0 to Random(372) do;     //top 0 a 372
      For l:= 0 to Random(575) do;    //left 0 a 575
      begin
        Image7.Top := t;
        Image7.Left:= l;
      end;

      begin
        Image8.Top := t;
        Image8.Left:= l;
      end;

      For t:= 0 to Random(372) do;     //top 0 a 372
      For l:= 0 to Random(575) do;    //left 0 a 575
      begin
        Image9.Top := t;
        Image9.Left:= l;
      end;

      begin
        Image10.Top := t;
        Image10.Left:= l;
      end;

      For t:= 0 to Random(372) do;     //top 0 a 372
      For l:= 0 to Random(575) do;    //left 0 a 575
      begin
        Image11.Top := t;
        Image11.Left:= l;
      end;
    end;

pero yo no quiero que una imagen este en la misma posicion que otra y si lo verifico las posiciones con un if es correcto ? , y tambien pedir perdón porque no estoy creando imagenes , las imagenes ya estan en el image ! , no se si sirve de algo lo que estoy diciendo ?
Responder Con Cita
  #7  
Antiguo 27-03-2009
Davidcfres Davidcfres is offline
Miembro
 
Registrado: ago 2007
Ubicación: Francia
Posts: 10
Poder: 0
Davidcfres Va por buen camino
no entiendo bien el problema, pero has intentado eso ?

ImageX.transparent := TRUE;
ImageX.transparentColor := clWhite; // o otra...

David
Responder Con Cita
  #8  
Antiguo 28-03-2009
Avatar de Mindfield
Mindfield Mindfield is offline
Miembro
 
Registrado: mar 2009
Posts: 26
Poder: 0
Mindfield Va por buen camino
Hola caro ! , cuando necesites contencion o charlar sobre esas cosas que uno no quiere que pasen y nos hace mal , no dudes en escribir ! , este foro es como una gran familia ! y yo soy miembro de esta gran familia !

saludos !

con respecto a la respuesta de Davidcfres ,
ImageX.transparent := TRUE; // esto hace que la imagenx sea trasparente ya que esta en true o verdadero en español pero no encuentro ningun codigo en este momento como para darte un ejemplo , es mas no se si realmente tiene valides !

ImageX.transparentColor := clWhite; // y este codigo tal cual lo escribiste no se puede usar ! creo jeje , yo no conozco mucho del tema tampoco ! je
Responder Con Cita
  #9  
Antiguo 01-04-2009
Davidcfres Davidcfres is offline
Miembro
 
Registrado: ago 2007
Ubicación: Francia
Posts: 10
Poder: 0
Davidcfres Va por buen camino
:)

Vale, lo siento por mi ultima repuesta...

eso es una solucion



Código Delphi [-]
uses types;
procedure TForm4.Button1Click(Sender: TObject);
  function PositionValide(ImageRect:TRect; Liste:TObjectList):boolean;
  var
    i : integer;
    tmpRect : TRect;
    Unused : TRect;
  begin
    result := true;
    i := 0 ;
    while ( i < Liste.count ) and result do
    begin
      tmpRect := TImage(Liste[i]).BoundsRect;
      result := not(IntersectRect(Unused, tmpRect, ImageRect));
      inc(i);
    end
  end;
var
  nbImage : integer;
  tmpImage : TImage;
  ImageListe : TObjectList;
  i : integer;
begin
  nbImage := 20;
  ImageListe := TObjectList.Create(false);
  For i := 0 to nbImage-1 do
  begin
    tmpImage := TImage.Create(self);
    tmpImage.Picture.LoadFromFile('C:\Documents and Settings\David\Mes documents\Mes images\erreur.bmp');
    repeat
      tmpImage.Left := random(self.ClientWidth - tmpImage.Width);
      tmpImage.Top := random(self.ClientHeight - tmpImage.Height);
    until PositionValide(tmpImage.BoundsRect , ImageListe);
    tmpImage.Parent := self;
    ImageListe.Add(tmpImage);
    application.ProcessMessages;
  end;
 
  freeAndNil(ImageListe);
end;
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
Ayuda con insercion de imágenes en campo blob aojeda Gráficos 0 29-01-2009 18:23:46
Ayuda para manejar imagenes en Delphi Forest Varios 1 28-08-2008 23:47:12
Ayuda con imagenes Jraul_Montu Internet 1 24-06-2007 02:17:59
Ayuda en php con imagenes. gatsu PHP 5 28-01-2004 09:54:42


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


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