elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  substraer color
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: substraer color  (Leído 1,112 veces)
NEBIRE


Desconectado Desconectado

Mensajes: 2.339


Ver Perfil
Re: substraer color
« Respuesta #10 en: 7 Mayo 2019, 23:50 »

Si necesitas hacerlo desde NET, prueba con las sugerencias de Elektro...

Respecto de vb6 (perdona que no te haya respondido antes, no me he percatado que respondiste hasta ahora).

Citar
Código
  1.    Private Sub Command1_Click()
  2.     Set UserControl_1.Picture = LoadPicture("")
  3.    End Sub
  4.  
Exacto, en vb6 la asignación de objetos es a través de Set objeto = loquesea
    


Citar
Para evitar usar el procedimiento set añadí esto al código del activex y ya funcionó bien
Set no es ningún procedimiento, es una instrucción propia de la sintaxis del lenguaje.
Un procedimiento implica código asociado que se ejecuta por debajo.
Una instrucción (como su nombre indica), simplemente instruye/advierte/notifica al compilador... (en este caso concreto) que se trata de un objeto, para que tenga en consideración el puntero de memoria, las referencias, y lo valide todo, etc... y de cara al programador para indicarle con claridad una diferencia tangible entre variables 'nativas' y las 'extendidas'...

Citar
Código
  1.    Public Property Let Picture(ByVal New_Picture As Picture)
  2.        Picture1.Picture = New_Picture
  3.        PropertyChanged "Picture"
  4.    End Property
  5.  
En definitiva, omitir el Set carece de consecuencias prácticas referentes al rendimiento, más bien es al revés, exige comprobaciones de tipo retrasadas a la compilación. Usando el Set, al compilar se verifica la asignación de objetos y por ende, una vez compilado evita hacer comprobaciones innecesarias...

Esto no es deseable, por que lo pasas por valor, que si tiene una pérdida de eficiencia. Fuerza a realizar más comprobaciones "Late In Time", de las necesarias...


Ten en cuenta que desde que la programación existe, la instrucción de asignar un valor a una variable es LET. La mayoría de los lenguajes la usaban en su tiempo y poco a poco fueron de sapareciendo de la mayoría (aún queda alguno que la utiliza).

Antes se usaban estas instrucciones de asignación, que hacen exactamente lo mismo que eliminando el Let.
Código
  1. Let b = 5
  2. Let a = b
  3. Let c = (a + 3)
  4.  
  5. Let picture1.picture = New_Picture
  6.  
Pero al final el 'let' dejó de ser obligatorio... es opcional. Para aquellos que proceden del C, y se lían por el uso de los símbolos '=' en referencia a la distinción entre asignación y comparación, la conveniente aparición y uso del 'let' les resolvería muchas dudas... pero se perdió en BASIC a finales de los 80, por obviedad... igual que el 'Set' en NET, por la misma razón (solo que en NET 'Set' ni siquiera es opcional en tanto que el 'Let' si lo sigue siendo... si lo pones, NET no canta error, simplemente lo borra inmediatamente, para indicarte que 'no es necesario'...

Así tu código debiera ser:
Código
  1.    'Public Property Let Picture(ByVal New_Picture As Picture)
  2.    Public Property Set Picture(ByRef New_Picture As Picture) ' ó mejor as IPictureDisp
  3.        Set Picture1.Picture = New_Picture
  4.        PropertyChanged "Picture"
  5.    End Property
  6.  

p.d.: Olvidaba responderte a esto:
Citar
he creado ya el ActiveX pero SetLayeredWindowAttributes no aplica cambios en el ActiveX, no elimina la parte coloreada. paso a la siguiente opción
La idea de crear el ActiveX, es que ya por sí solo y sin mediación de nada más (cero APIs) tenga intrínsecamente la transparencia, tu solo te preocupará de cambiar  alguna propiedad, como la propiedad 'Picture' y la propiedad 'MaskColor' y punto (y eventualmente alguna propiedad más, relacionada, por ejemplo para que deje de actuar transparente y en un momento dado sea opaco, o vuelta a transparente... vamos según en algún momento interese que sea así o asá...).

P.d2: Te dije que si me señalabas que necesitas exactamente o qué propiedades precisas tener, podría modificarte un control para que se adapte a lo que necesitas...

Te pongo alguna captura de ejemplo:
En el primero se ven varias intancias de un control DisplayLCD, que permite tener una serie de dígitos, y señalar en otro color los decimales, elegir la base numérica (octal, decimal y hexadecimal, hacerlo transparente o no, el relieve del borde admite hundido, elevado, plano (de un color específico) o sin borde, así mismo se puede sincronizar con un timer para reflejar la hora (el timer se pone a 1000 ms. y cuando vence el tiempo, actualiza el contenido con el valor de la hora, luego cambia cada segundo), etc...



En este otro se ven dos controles uno es un array de vértices 3d, que conecta a otros vértices, también transparente, que admite el giro en las 3 dimensiones... al caso muestra una figura dle ajedrez.
El otro es de texto... en la siguiente imagen se hace uso de desactivar/activar la transparencia cuando se pulsa/suelta el botón sobre las partes visibles de dicho control...




« Última modificación: 8 Mayo 2019, 00:44 por NEBIRE » En línea

FJDA

Desconectado Desconectado

Mensajes: 193


Ver Perfil
Re: substraer color
« Respuesta #11 en: 8 Mayo 2019, 17:11 »

ahora estoy con otro programa este tema lo dejé apartado temporalmente cuando pueda me probaré lo que me habéis comentado

En cuanto a lo del ActiveX si le puse APIs.


tened paciencia porque dedico muy poquito tiempo a la programación



« Última modificación: 8 Mayo 2019, 17:35 por FJDA » En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
sin color
Diseño Gráfico
Kaizin 3 1,111 Último mensaje 4 Julio 2006, 12:00
por Kaizin
fila impar, un color, fila par, otro color...
PHP
Luisango 5 4,337 Último mensaje 25 Marzo 2007, 12:23
por дٳŦ٭
color vb
Programación Visual Basic
WestOn 5 1,751 Último mensaje 20 Octubre 2008, 08:39
por WestOn
Igualar color de figura al color de fondo progresivamente.
Programación General
ignorantev1.1 2 898 Último mensaje 25 Noviembre 2016, 04:30
por ignorantev1.1
[SOURCE-CODE] Color.NET - Color Picker
.NET (C#, VB.NET, ASP)
**Aincrad** 8 907 Último mensaje 21 Noviembre 2018, 05:14
por **Aincrad**
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines