Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   FireMonkey (https://www.clubdelphi.com/foros/forumdisplay.php?f=50)
-   -   Auto-ajustar imagen (https://www.clubdelphi.com/foros/showthread.php?t=86710)

FabianSiza 20-09-2014 01:18:37

Auto-ajustar imagen
 
Hola mundo!.
tengo un imagen control y en el cargo imagenes y cuando presiono un boton se pintan unos cuadros a la imagen asi.
Código Delphi [-]
  MyRect := TRectF.Create(0, 0, 1000, 300);  //crea un rectangulo pos x, pos y , largo, alto
  MyRect2 := TRectF.Create(1000, 0, 1910, 300);  //crea un rectangulo pos x, pos y , largo, alto
  MyRect3 := TRectF.Create({borde iz}0, 2800, {largo}1000,2300);  //crea un rectangulo pos x, pos y , largo, alto
  MyRect4 := TRectF.Create(1910, 100000, 1000, 2300);  //crea un rectangulo pos x, pos y , largo, alto
ImageControl1.Bitmap.Canvas.BeginScene;

con esto los cuadros quedan arriba y abajo d la imagen importada pero solo funciona con las dimensiones de una imagen y cuando cargo una imagen de distinto tamaño los cuadros quedan perdidos por que no son dinamicos eso debe ser con variables pero como puedo hacer que los cuadros se auto-ajusten a las imagenes?. Gracias.!!

ecfisa 20-09-2014 06:50:41

Hola Fabián.

¿ Cual es la declaración del tipo TRectF ?

Por favor cuando incluyas código en tus mensajes usa las etiquetas:



Saludos :)

FabianSiza 20-09-2014 07:01:22

a perdón cuando le doy al boton aplicar este le pone el texto y los cuadros a la imagen aca esta

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  MyRect,MyRect2,MyRect3,MyRect4: TRectF;


begin

  MyRect := TRectF.Create(0, 0, 1000, 300);  //crea un rectangulo pos x, pos y , largo, alto
  MyRect2 := TRectF.Create(1000, 0, 1910, 300);  //crea un rectangulo pos x, pos y , largo, alto
  MyRect3 := TRectF.Create({borde iz}0, 2800, {largo}1000,2300);  //crea un rectangulo pos x, pos y , largo, alto
  MyRect4 := TRectF.Create(1910, 100000, 1000, 2300);  //crea un rectangulo pos x, pos y , largo, alto

 ImageControl1.Bitmap.Canvas.BeginScene;

//*******************************************
 ImageControl1.Bitmap.Canvas.Fill.Color := TAlphaColorRec.Black; //pinta el rectangulo
 ImageControl1.Bitmap.Canvas.FillRect(MyRect, 30, 60, [], 100); //dibuja el rectangulo
 //******************************************************

 //****************************************************
 ImageControl1.Bitmap.Canvas.Fill.Color := TAlphaColorRec.White; //pinta el texto
 ImageControl1.Bitmap.Canvas.Font.Size:=55;
 ImageControl1.Bitmap.Canvas.FillText(MyRect, 'NOMBRE: '+Edit1.Text,  false, 100,
 [TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center); //Agrega rectangulo y texto a la imagen
//*******************************************

//*******************************************
 ImageControl1.Bitmap.Canvas.Fill.Color := TAlphaColorRec.Red; //pinta el rectangulo
 ImageControl1.Bitmap.Canvas.FillRect(MyRect2, 30, 60, [], 100); //dibuja el rectangulo


 ImageControl1.Bitmap.Canvas.Fill.Color := TAlphaColorRec.White; //pinta el texto
  ImageControl1.Bitmap.Canvas.Font.Size:=50;
 ImageControl1.Bitmap.Canvas.FillText(MyRect2, 'CODIGO: '+Edit2.Text, false, 100,
 [TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center); //Agrega rectangulo y texto a la imagen
//*******************************************

//*******************************************
 ImageControl1.Bitmap.Canvas.Fill.Color := TAlphaColorRec.Black; //pinta el rectangulo
 ImageControl1.Bitmap.Canvas.FillRect(MyRect3, 30, 60, [], 100); //dibuja el rectangulo

 ImageControl1.Bitmap.Canvas.Fill.Color := TAlphaColorRec.White; //pinta el texto
  ImageControl1.Bitmap.Canvas.Font.Size:=55;
 ImageControl1.Bitmap.Canvas.FillText(MyRect3,'MEDIDAS: '+Edit3.Text, false, 100,
 [TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center); //Agrega rectangulo y texto a la imagen
//*******************************************

//*******************************************
 ImageControl1.Bitmap.Canvas.Fill.Color := TAlphaColorRec.Red; //pinta el rectangulo
 ImageControl1.Bitmap.Canvas.FillRect(MyRect4, 30, 60, [], 100); //dibuja el rectangulo

 ImageControl1.Bitmap.Canvas.Fill.Color := TAlphaColorRec.White; //pinta el texto
  ImageControl1.Bitmap.Canvas.Font.Size:=55;
 ImageControl1.Bitmap.Canvas.FillText(MyRect4,'PRECIO: '+Edit4.Text, false, 100,
 [TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center); //Agrega rectangulo y texto a la imagen
//*******************************************



  ImageControl1.Bitmap.Canvas.EndScene;
 

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
OpenDialog1.Execute;
if OpenDialog1.FileName <> '' then
ImageControl1.Bitmap.LoadFromFile(OpenDialog1.FileName);

este es mi codigo pero como decia no se ajusta automaticamente a el tamaño de las imagenes asi que el texto y los cuadros se pierden y se distrocionan creo que el Timagencontrol tiene algo para reconocer eso

zeeshan030 14-04-2015 11:09:45

Re: Anthony Bourdain "Parts Unknown"
 
pero como decia no se ajusta automaticamente a el tamaño de las imagenes asi que el texto y los cuadros se pierden y se distrocionan creo que el Timagencontrol tiene algo para reconocer eso..


____________________
aliii

ecfisa 14-04-2015 14:50:14

Hola zeeshan030, bienvenido a Club Delphi :)

Como a todo recién ingresado te invitamos a leer nuestra guía de estilo.

Saludos :)


La franja horaria es GMT +2. Ahora son las 18:58:45.

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