Ir al contenido


Bandera Cubana usando canvas.


  • Por favor identifícate para responder
35 respuestas en este tema

#21 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 15 diciembre 2008 - 11:14

jajajaja no hombre que va, así está mejor ;) (y)
  • 0

#22 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 15 diciembre 2008 - 11:39

Coloquen un spinedit y un boton, en el evento onclick del boton peguen este codigo:



delphi
  1. var
  2.   Factor: Integer;
  3. begin
  4.   Factor := spFactor.Value;
  5.   //Amarillo
  6.   Form1.Canvas.Pen.Color := clYellow;
  7.   Form1.Canvas.Pen.Width := 0;
  8.   Form1.Canvas.Brush.Color := clYellow;
  9.   Form1.Canvas.Rectangle(10, 10, 200*Factor, 80*(Factor div 2));
  10.   //Azul
  11.   Form1.Canvas.Pen.Color := clBlue;
  12.   Form1.Canvas.Pen.Width := 0;
  13.   Form1.Canvas.Brush.Color := clBlue;
  14.   Form1.Canvas.Rectangle(10, 10 + (70*(Factor div 2)), 200*Factor, 150*(Factor div 2));
  15.   //Rojo
  16.   Form1.Canvas.Pen.Color := clRed;
  17.   Form1.Canvas.Pen.Width := 0;
  18.   Form1.Canvas.Brush.Color := clRed;
  19.   Form1.Canvas.Rectangle(10, (10 + (70*(Factor div 2))* 2), 200*Factor, 220*(Factor div 2));
  20. end;



¿Que hace?, Estira las barras proporcionalmente, segun el factor dado en el spinedit.
  • 0

#23 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 15 diciembre 2008 - 12:18

Muy interesante el código compadre (y)
  • 0

#24 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 15 diciembre 2008 - 01:06

Yo quiero ver cómo diantres le haríamos para el escudito  :|  :s  :p  :o


Hola :)



delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3.   Image1.Top := 60;
  4.   Image1.Left := 140;
  5.   with Canvas do begin
  6.       Pen.Color := clWhite;
  7.       Pen.Width := 0;
  8.       Brush.Color := clWhite;
  9.       Rectangle(10,10,390,200);
  10.  
  11.       Pen.Color := clRed;
  12.       Pen.Width := 0;
  13.       Brush.Color := clRed;
  14.       Rectangle(10,10,130,200);
  15.  
  16.       Pen.Color := clGreen;
  17.       Pen.Width := 0;
  18.       Brush.Color := clGreen;
  19.       Rectangle(260,10,390,200);
  20.  
  21.       Image1.Repaint; \\ Escudo
  22.   end;
  23. end;



Salud OS ;)

Archivos adjuntos

  • Archivo adjunto  126_.zip   17,48KB   3 descargas

  • 0

#25 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 15 diciembre 2008 - 01:10


Yo quiero ver cómo diantres le haríamos para el escudito  :|  :s  :p  :o


Hola :)



delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3.   Image1.Top := 60;
  4.   Image1.Left := 140;
  5.   with Canvas do begin
  6.       Pen.Color := clWhite;
  7.       Pen.Width := 0;
  8.       Brush.Color := clWhite;
  9.       Rectangle(10,10,390,200);
  10.  
  11.       Pen.Color := clRed;
  12.       Pen.Width := 0;
  13.       Brush.Color := clRed;
  14.       Rectangle(10,10,130,200);
  15.  
  16.       Pen.Color := clGreen;
  17.       Pen.Width := 0;
  18.       Brush.Color := clGreen;
  19.       Rectangle(260,10,390,200);
  20.  
  21.       Image1.Repaint; \\ Escudo
  22.    end;
  23. end;



Salud OS ;)


Jajajajaja, eso pensé pero luego me dije: trampositaaa !!!!  :p
  • 0

#26 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 15 diciembre 2008 - 01:12

Carnal, me salistes buen alumno, estoy orgulloso de ti.  :D (y)


Un Saludo.

#27 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 15 diciembre 2008 - 02:55

Jajajajaja, eso pensé pero luego me dije: trampositaaa !!!!  :p


:o :$ :| :s (w) :

Carnal, me salistes buen alumno, estoy orgulloso de ti.  :D (y)


<:o) :p :D

Salud OS


  • 0

#28 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 16 diciembre 2008 - 09:50

Estuve ayer jugando con el código que usa Canvas para dibujar cualquier cosa sobre un Form y me encontré con algo "curioso" para mi. Trataré de explicarlo paso por paso cómo lo hice para hacerme entender:

1. Ejecuto
2. Doy click al botón que dibuja la Bandera (lo hace correctamente)
3. Restauro una ventana de cualquier otra aplicación corriendo que cubra total o parcialmente el Form con la Bandera dibujada
4. La parte de la Bandera que fue cubierta por la ventana restaurada se desdibuja, lo que no sucede con la parte que no cubrió.

De esto me di cuenta "accidentalmente" e hice también pruebas moviendo la ventana del hacia uno de los extremos de la pantalla, de tal manera que también se ocultara una parte de la Bandera y al regresar la ventana al centro de la pantalla, esa parte cubierta se había desdibujado.

Sé que debe existir una razón para ello... y sé que alguien me lo aclarará :)

Saludos  :D
  • 0

#29 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 16 diciembre 2008 - 10:01

Estuve ayer jugando con el código que usa Canvas para dibujar cualquier cosa sobre un Form y me encontré con algo "curioso" para mi. Trataré de explicarlo paso por paso cómo lo hice para hacerme entender:

1. Ejecuto
2. Doy click al botón que dibuja la Bandera (lo hace correctamente)
3. Restauro una ventana de cualquier otra aplicación corriendo que cubra total o parcialmente el Form con la Bandera dibujada
4. La parte de la Bandera que fue cubierta por la ventana restaurada se desdibuja, lo que no sucede con la parte que no cubrió.

De esto me di cuenta "accidentalmente" e hice también pruebas moviendo la ventana del hacia uno de los extremos de la pantalla, de tal manera que también se ocultara una parte de la Bandera y al regresar la ventana al centro de la pantalla, esa parte cubierta se había desdibujado.

Sé que debe existir una razón para ello... y sé que alguien me lo aclarará :)

Saludos  :D


Hola Fena, es un problema de la pintura que usas.Por alguna razon la pintura que estas usando es muy sencible a la oscuridad y una vez que la retornas a la luz ambiente se descolora. ;)
Si nos puedes poner un sample de ella aqui, la podemos probar en el laboratorio y te diremos exactamente que sucede. :D :D :D

Un Saludo.

#30 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 16 diciembre 2008 - 10:22

Estuve ayer jugando con el código que usa Canvas para dibujar cualquier cosa sobre un Form y me encontré con algo "curioso" para mi. Trataré de explicarlo paso por paso cómo lo hice para hacerme entender:

1. Ejecuto
2. Doy click al botón que dibuja la Bandera (lo hace correctamente)
3. Restauro una ventana de cualquier otra aplicación corriendo que cubra total o parcialmente el Form con la Bandera dibujada
4. La parte de la Bandera que fue cubierta por la ventana restaurada se desdibuja, lo que no sucede con la parte que no cubrió.

De esto me di cuenta "accidentalmente" e hice también pruebas moviendo la ventana del hacia uno de los extremos de la pantalla, de tal manera que también se ocultara una parte de la Bandera y al regresar la ventana al centro de la pantalla, esa parte cubierta se había desdibujado.

Sé que debe existir una razón para ello... y sé que alguien me lo aclarará :)

Saludos  :D


Hola



delphi
  1. procedure TForm1.FormPaint(Sender: TObject);
  2. begin
  3.   Button1.Click;
  4. end;
  5.  
  6. procedure TForm1.Button1Click(Sender: TObject);
  7. begin
  8.   Image1.Top := 60;
  9.   Image1.Left := 140;
  10.   with Canvas do begin
  11.       Pen.Color := clWhite;
  12.       Pen.Width := 0;
  13.       Brush.Color := clWhite;
  14.       Rectangle(10,10,390,200);
  15.  
  16.       Pen.Color := clRed;
  17.       Pen.Width := 0;
  18.       Brush.Color := clRed;
  19.       Rectangle(10,10,130,200);
  20.  
  21.       Pen.Color := clGreen;
  22.       Pen.Width := 0;
  23.       Brush.Color := clGreen;
  24.       Rectangle(260,10,390,200);
  25.  
  26.       Image1.Repaint; \\ Escudo
  27.   end;
  28. end;



Salud OS ;)
  • 0

#31 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 16 diciembre 2008 - 10:26

lo que Eliseo quizo decir fue...

jejeje lo que sucede es que el comportamiento que describes es el normal.  cuando una pantalla se oculta al volverse a mostrar se pinta de nuevo.  Como pintas directamente al canvas debes sobreescribir el metodo Paint, para que el sepa que es lo que va a pintar.
  • 0

#32 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 16 diciembre 2008 - 02:59

Gracias !, ya quedó...  (y)  :D

El único detalle que agregué para que la Bandera no se dibuje desde el principio si no hasta que se le de Click al botón fue con una variable global booleana que detectara si el Form se estaba dibujando por primera vez o lo hacía después del Click del botón y funciona bonito...

Gracias...  :)
  • 0

#33 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 16 diciembre 2008 - 03:49

entonces utilizastes una bandera para dibujar la bandera jejej
  • 0

#34 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 16 diciembre 2008 - 03:52

entonces utilizastes una bandera para dibujar la bandera jejej


Efectivamente mi estimado y querido amiguito  :D
  • 0

#35 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 16 diciembre 2008 - 03:54


entonces utilizastes una bandera para dibujar la bandera jejej


Efectivamente mi estimado y querido amiguito  :D


jejeje, muy inteligente esa frase amigo eduarcol :) después de leer mas de dos veces tu respuesta la entendi :D

Salud OS
  • 0

#36 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 17 diciembre 2008 - 09:18

jeje es que de pronto me recorde de  Luis Joyanes y mis interminables noches estudiando algoritmo ;)
  • 0




IP.Board spam blocked by CleanTalk.