Ir al contenido


Foto

SKIN para Lazarus


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

#1 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 260 mensajes

Escrito 31 mayo 2012 - 01:13

buenas amiguitos, despues de un tiempito vengo con una consulta..

resulta que prácticando quize ver si podía cambiar el estilo de los botones estandares que vienen en lazarus, primero busque información haber si se le podia poner skins a las aplicaciones o al menos cambiarle de apariencia a uno mas llamativo.... en la busqueda encontré programas DEMOS para delphi pero eran de pago... luego uno de ustedes publicó un post sobre la expansión de lazarus llamado "CODE thypon" el cual (ahora) trae unos componentes llamado "LAVA" y la apariencia es Hermosa...  (h)

En fin, viendo que estas alternativas requieren o bien previo pago o sino tener la expansion mencionada... decidí buscar más alternativas.

Ahora lo que me he dado cuenta es que algunas aplicaciones de terceros tienen una apariencia bien preciosa y lo que encontré es que algunos de estos lo que hacen es crean imagenes (sean bmp, png o jpg) de sus texturas y/o botones a los cuales me imagino los llamaran desde sus ejecutables para hacer creer que es su apariencia en sí cuando en verdad es solo como engañar al ojo (algo bien ingenioso).

Entonces decidí tratar de hacer algo parecido al menos con un boton, es aquí en donde tengo unos pequeños inconvenientes y quisiera que me den una mano o bien me corrijan si lo estoy haciendo mal...

para comenzar cree un form y le puse un "timage" luego consegui tres imagenes que simularían los tres estados de un BOTON al pasar el mouse (normal, encima, pulsado), convertí las tres imágenes en un recurso...


ahora bien los estados "norma"l y "encima" los logró con el siguiente evento del "Timage"

"OnMouseEnter"



delphi
  1. procedure TForm1.Image2MouseEnter(Sender: TObject);
  2. begin
  3.   Image2.Picture.LoadFromLazarusResource('encima'); // cuando situo el mouse encima
  4. end;



---------------

"OnMouseLeave"



delphi
  1. procedure TForm1.Image2MouseLeave(Sender: TObject);
  2. begin
  3.   Image2.Picture.LoadFromLazarusResource('normal');  // cuando retiro el mouse del boton
  4. end;



---------------

Bien, el problema que tengo es tratar de simular al darle clic y al soltar el clic, es decir que al darle un clic a la imagen este cambie su imagen al estado "Pulsado" hasta que suelte el clic, espero me comprendan y me ayuden ....

Saludos .....

PD: les adjunto mis avances....
:)
  • 0

#2 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 mensajes
  • LocationOaxaca, México

Escrito 31 mayo 2012 - 01:38

Hola monchito, creo si entendí bien, solo reemplaza por estos eventos.



delphi
  1. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  2.   Shift: TShiftState; X, Y: Integer);
  3. begin
  4.     Image1.Picture.LoadFromLazarusResource('encima');
  5. end;
  6.  
  7. procedure TForm1.Image1MouseLeave(Sender: TObject);
  8. begin
  9.   Image1.Picture.LoadFromLazarusResource('normal');
  10. end;
  11.  
  12. procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  13.   Shift: TShiftState; X, Y: Integer);
  14. begin
  15.       Image1.Picture.LoadFromLazarusResource('normal');
  16. end;



Saludos

  • 0

#3 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 31 mayo 2012 - 05:41

Te recomiendo la lectura de este tema, concretamente este mensaje. Está en delphi, por lo tanto fácilmente trasladable a Lazarus.


PD. La última versión la tienes aquí.


Saludos.


  • 0

#4 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 260 mensajes

Escrito 02 junio 2012 - 01:50

Gracias le darè un vistazo..... (y)
  • 0

#5 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 260 mensajes

Escrito 01 julio 2012 - 01:46

Buenas amiguitos, disculpando la demora, al fin pude sincronizar los eventos del
mouse con una imagen que la hago pasar como botón para darle vida a un form.

les adjunto todo mi ejercicio y les pongo el código esencial por si a alguien
le puede servir...




delphi
  1. unit Unit1;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls, LResources;
  9.  
  10. type
  11.  
  12.   { TForm1 }
  13.  
  14.   TForm1 = class(TForm)
  15.     Image1: TImage;
  16.     procedure FormCreate(Sender: TObject);
  17.     procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
  18.       Shift: TShiftState; X, Y: Integer);
  19.     procedure Image1MouseEnter(Sender: TObject);
  20.     procedure Image1MouseLeave(Sender: TObject);
  21.     procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
  22.       Shift: TShiftState; X, Y: Integer);
  23.   private
  24.     { private declarations }
  25.   public
  26.     { public declarations }
  27.   end;
  28.  
  29. var
  30.   Form1: TForm1;
  31.  
  32. implementation
  33.  
  34. {$R *.lfm}
  35.  
  36. { TForm1 }
  37.  
  38. procedure TForm1.FormCreate(Sender: TObject);
  39. begin
  40.  
  41. end;
  42.  
  43. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  44.   Shift: TShiftState; X, Y: Integer);
  45. begin
  46.   Image1.Picture.LoadFromLazarusResource('pulsar');
  47.   //ShowMessage('Hola....!!!');
  48. end;
  49.  
  50. procedure TForm1.Image1MouseEnter(Sender: TObject);
  51. begin
  52.   Image1.Picture.LoadFromLazarusResource('encima');
  53. end;
  54.  
  55. procedure TForm1.Image1MouseLeave(Sender: TObject);
  56. begin
  57.   Image1.Picture.LoadFromLazarusResource('normal');
  58. end;
  59.  
  60. procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  61.   Shift: TShiftState; X, Y: Integer);
  62. begin
  63.   Image1.Picture.LoadFromLazarusResource('normal');
  64.   ShowMessage('Hola....!!!');
  65. end;
  66.  
  67. initialization
  68. {$I boton.lrs}
  69. end.





saludos....  :)
  • 0

#6 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 02 julio 2012 - 09:39

Buen ejemplo.  (y)


Saludos.
  • 0




IP.Board spam blocked by CleanTalk.