Ir para conteúdo


Foto
- - - - -

BackEffect


  • Por favor, faça o login para responder
6 respostas neste tópico

#1 Luigi

Luigi

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 601 posts
  • LocationCWB

Postado 15 março 2015 - 08:24

Apresento esta UDF chamada BackEffect, (back = para trás, effect = efeito).

 

Quando você cria um controle* com esta UDF é possível você adicionar um efeito para este controle.

 

Que tipo de efeito?

Ao deixar o mouse sobre o controle, você vai perceber uma caixa que irá mudando gradualmente da dor do background da janela para o verde.

 

Posso personalizar a cor?

Sim. O padrão da UDF é o verde, mas é possível definir qualquer outra cor.

 

Posso personalizar o tamanho da borda do efeito?

Sim. O default é 4.

 

Como funciona?

Quando você cria um controle* em uma GUI** a UDF lê o tamanho (largura e altura) do controle e cria um GUICtrlCreateLabel com um tamanho maior do que o seu controle (4 pontos maior, por default), e depois, posiciona esse controle por trás do controle principal.

E no momento que o mouse é posicionado sobre o seu controle principal, a UDF vai suavemente alterando a cor GUICtrlCreateLabel posicionada atrás do controle até a cor definida (verde, por default).

Ao retirar o mouse do controle principal, o processo inverso é realizado, isto é, a cor do GUICtrlCreateLabel vai suavemente do verde até a cor do background da GUI.

 

Requisitos:

A GUI criada necessita ter $WS_EX_COMPOSITED em seu $sStyle.

 

Restrições:

$WS_EX_COMPOSITED não funciona com GDIPLus+.

 

*Controles:

  • GUICtrlCreateLabel
  • GUICtrlCreateButton
  • GUICtrlCreateRadio
  • GUICtrlCreateGroup
  • GUICtrlCreateCheckbox
  • GUICtrlCreateCombo
  • GUICtrlCreateInput
  • GUICtrlCreateList

*GUI: Graphic User Interface ou simplesmente janela

[attachment=463:BackEffect.au3]

[attachment=464:BackEffect_Exemple.au3]

 



#2 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.204 posts
  • LocationMinas Gerais

Postado 16 março 2015 - 06:59

@Luigi pelo que vc falou parece ter ficado muito legal só não consegui testar porquê ainda uso a versão 3.3.9.4 do Autoit!



#3 Sergio-F

Sergio-F

    Membro

  • Membros
  • Pip
  • 76 posts
  • LocationOsasco

Postado 20 março 2015 - 04:33

Gostei muito desse efeito, só não sei onde muda a cor e a expessura.

Vou deixar uma sugestão:

AddBack_Effect($aGui[0], $hControlLabel, $Cor, $Expessura)

Assim não seria preciso mudar manualmente dentro da udf



#4 Frezan

Frezan

    Membro

  • Membros
  • Pip
  • 63 posts
  • Location

Postado 21 março 2015 - 09:29

@Sergio-F 

 

Não precisa mudar dentro da udf, apenas informe ao chamar a função "__BackEffectStart()".

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Informe no segundo parâmetro a cor desejada.

 

Mas acho que está valendo também a tua sugestão e a incremento:

- Na function "__BackEffectStart()" informar a espessura da borda que seria padrão para todos.

- Na function "AddBack_Effect()" dar a possibilidade de informar uma cor em específica para o elemento.



#5 Luigi

Luigi

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 601 posts
  • LocationCWB

Postado 22 março 2015 - 10:38

Hum... gostei das sugestões, acho que vou fazer a cor e a largura personalizada por controle, fica mais customizável né?

 

Mas respondendo a dúvida do @Sergio-F:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido


Editado por Luigi, 22 março 2015 - 10:39 .


#6 Israel

Israel

    Membro

  • Membros
  • Pip
  • 37 posts
  • LocationMinas Gerais

Postado 10 julho 2015 - 04:39

@Luigi,

 

Parabéns pela sua UDF! Gostei muito e me ajudou muito. 

 

Só uma dúvida: eu consigo usar sua UDF pra elementos em uma página web ? Seria essencial ! O que acha ?

 

 

Israel



#7 Luigi

Luigi

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 601 posts
  • LocationCWB

Postado 11 julho 2015 - 09:00

Eu li o seu post aqui no fórum e no fórum americano, e pensei a respeito, acredito que impossível não é, mas você teria que ter uma UDF para IE, Firefox, Chrome, etc...

 

a] E envolveria uma matemática / algoritmo para interpretar e localizar onde está o elemento, seria quase como desenvolver um novo browser para destacar o elemento, mas um browser para rodar em background, só para fazer isso.

Pode ser que eu esteja errado e não tenha visto outra alternativa diante do meu nariz.

 

b] Mas o que eu acho mais fácil, é você desenvolver isso em JavaScript / JQuery (como disse o JhonOne) e submeter o elemento via AJAX para um server AutoIt (se for o caso).

 

A primeira opção, eu acho bastante trabalhosa.

A segunda opção, mais fácil.






0 usuário(s) está(ão) lendo este tópico

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Documentação OnLine de referência