Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Hola ayuda en delphi 7 (https://www.clubdelphi.com/foros/showthread.php?t=76735)

Cartel 23-11-2011 16:30:20

Hola ayuda en delphi 7
 
Hola amigos soy nuevo en el foro y estoy aprendiendo a usar delphi ya se una cosas pero mi interes orita es como puedo hacer q una imagen cambie a otra selecionando otro componente componente por ejemplo

Agrego un Combobox y le agrego una lista (Azul, Verde y Rojo) bueno y que al selecionar alguno de esos colores me salga una imagen de ese color y que comando tengo q usar graxias espero q me ayuden ^^

Caro 23-11-2011 16:44:07

Hola Cartel, puedes utilizar el evento OnChange de tu combobox:
Código Delphi [-]
 procedure TForm1.ComboBox1Change(Sender: TObject);
 var
   Indice : Integer;
 begin
  Indice := ComboBox1.ItemIndex;
  Case Indice Of
    0 : Image1.Picture.LoadFromFile('C:\Path\azul.jpg');
    1 : Image1.Picture.LoadFromFile('C:\Path\verde.jpg');
    2 : Image1.Picture.LoadFromFile('C:\Path\rojo.jpg');
  end;
 end;


Saluditos

Caro 23-11-2011 16:51:16

Cartel no te olvides leer nuestra guia de estilo, la siguiente ves pon un mensaje que describa tu problema en el titulo de los hilos que abras, así recibiras mucha ayuda ;).

Saluditos y bienvenido al foro.

Cartel 23-11-2011 17:46:22

Cita:

Empezado por Caro (Mensaje 419219)
Hola Cartel, puedes utilizar el evento OnChange de tu combobox:

procedure TForm1.ComboBox1Change(Sender: TObject);
var
Indice : Integer;
begin
Indice := ComboBox1.ItemIndex;
Case Indice Of
0 : Image1.Picture.LoadFromFile('C:\Path\azul.jpg');
1 : Image1.Picture.LoadFromFile('C:\Path\verde.jpg');
2 : Image1.Picture.LoadFromFile('C:\Path\rojo.jpg');
end;
end;
[/delphi]


Saluditos

Graxias pero no es lo que busco porque al copilar tengo que mantener los archivos (imagenes) en esa direccion y eso no es lo que pido xD

oscarac 23-11-2011 17:54:24

hola Cartel

caro te ha contestado con la respuesta mas logica y mas oportuna de acuerdo a la pregunta que hiciste... (al menos a lo que yo tambien entendi)

si no es lo que necesitas...... puedes explicar con un poco mas de detalle lo que requieres?

Cartel 23-11-2011 18:04:37

Cita:

Empezado por oscarac (Mensaje 419241)
hola Cartel

caro te ha contestado con la respuesta mas logica y mas oportuna de acuerdo a la pregunta que hiciste... (al menos a lo que yo tambien entendi)

si no es lo que necesitas...... puedes explicar con un poco mas de detalle lo que requieres?

ps lo que sucede es que si uso el src que esta arriba cuando copile la aplicacion me va a pedir que tenga esas imagenes en la dirrecion que introduge en el src y yo no lo quiero asi

oscarac 23-11-2011 18:08:27

Cita:

Empezado por Cartel (Mensaje 419246)
ps lo que sucede es que si uso el src que esta arriba cuando copile la aplicacion me va a pedir que tenga esas imagenes en la dirrecion que introduge en el src y yo no lo quiero asi


y vuelvo a preguntar........
como lo quieres????

Caro 23-11-2011 18:18:40

Hola de nuevo, por lo que he entendido, entonces puedes utilizar un archivo de recurso:

Primero, te creas en la ruta donde estan tus imagenes, un archivo con extención rc, digamos "img.rc" el cual debe contener lo siguiente:

Código:

1 RCDATA azul.jpg
2 RCDATA verde.jpg
3 RCDATA rojo.jpg

Despues lo ejecutas en línea de comandos:

Código:

C:\path\brc32 -r -v img.rc
En la parte de implementation añades:

[delphi]
implementation
{$R *.dfm}
{$R img.res}
........................................
[delphi]

Para ver la imagen:

Código Delphi [-]
var
  Recursos: TResourceStream;
  Imagen: TJPegImage;
begin
  Imagen := TJPegImage.Create;
  Recursos := TResourceStream.Create(hInstance,'#2', RT_RCDATA);
  Try
   Recursos.Seek(0, soFromBeginning);
   Imagen.LoadFromStream(Recursos);
   Image1.Canvas.Draw(0, 0,Imagen);
  Finally
   Recursos.Free;
   Imagen.Free;
  end;

Saluditos

ecfisa 23-11-2011 18:23:25

Hola.

Indudablemente como ha dicho Caro más arriba, el evento a utilizar es OnChange, pero también es indudable que no estás explicando con claridad lo que deseas hacer.

Cita:

lo que sucede es que si uso el src que esta arriba cuando copile la aplicacion me va a pedir que tenga esas imagenes en la dirrecion que introduge en el src y yo no lo quiero asi
Por lo que infiero del texto, una posible solución es usar un TImageList donde previamente tengas almacenadas las imágenes a mostrar, luego podrías hacer:
Código Delphi [-]
...
implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  with ComboBox1.Items do
  begin
    Add('AZUL');
    Add('VERDE');
    Add('ROJO');
  end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Image1.Picture:= nil;
  with Sender as TComboBox do
    ImageList1.GetBitmap(ItemIndex, Image1.Picture.Bitmap)
end;

Un saludo.

Cartel 23-11-2011 22:10:09

Cita:

Empezado por ecfisa (Mensaje 419254)
Hola.

Indudablemente como ha dicho Caro más arriba, el evento a utilizar es OnChange, pero también es indudable que no estás explicando con claridad lo que deseas hacer.


Por lo que infiero del texto, una posible solución es usar un TImageList donde previamente tengas almacenadas las imágenes a mostrar, luego podrías hacer:
Código Delphi [-]
...
implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  with ComboBox1.Items do
  begin
    Add('AZUL');
    Add('VERDE');
    Add('ROJO');
  end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Image1.Picture:= nil;
  with Sender as TComboBox do
    ImageList1.GetBitmap(ItemIndex, Image1.Picture.Bitmap)
end;

Un saludo.

Esto es lo que necesitaba grasias ^^


La franja horaria es GMT +2. Ahora son las 06:24:59.

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