Funcion para Agregar/Remover STYLES a un control in Run-Time

Post Reply
User avatar
Hernan Diego Ceccarelli
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina
Contact:

Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by Hernan Diego Ceccarelli »

#define GWL_STYLE -16


Aca les mando esta funcion, espero les sirva :) :D Es MUY util ehh :)

Code: Select all

//--------------------------------------------------------------------------------------------------//

FUNCTION ChangeStyleWindow( hoWnd, naStyle, nStyleType, lAdd )

   local aStyles:= {}, n, hWnd, nStyleReturn:= 0

   if ValType(hoWnd)$"O"
      hWnd:= hoWnd:hWnd
   else
      hWnd:= hoWnd
   endif

   if ValType(naStyle)$"N;A"
      if ValType(naStyle)$"N"
          aStyles:= { naStyle }
      else
          aStyles:= aClone( naStyle )
      endif
      aEval(aStyles, {|nStyle| nStyleReturn:= __ChangeStyleWindow( hWnd, nStyle, nStyleType, lAdd )  } )
   endif

return nStyleReturn

//--------------------------------------------------------------------------------------------------//

STATIC FUNCTION __ChangeStyleWindow( hWnd, nStyle, nStyleType, lAdd )

   local nOldStyle, lExistStyle
   local nStyleReturn:= 0

   DEFAULT nStyleType:= GWL_STYLE,;
           lAdd:= .T.

   if ValType(hWnd)$"N" .and. ValType(nStyle)$"N" .and. ValType(nStyleType)$"N" .and. ValType(lAdd)$"L"
      nOldStyle  := GetWindowLong( hWnd, nStyleType )
      lExistStyle:= lAnd( nStyle, nOldStyle )
      if lAdd .and. !lExistStyle
         SetWindowLong( hWnd, nStyleType, nOr( nOldStyle, nStyle ) )
      elseif !lAdd .and. lExistStyle
         SetWindowLong( hWnd, nStyleType, nAnd( nOldStyle, nNot(nStyle) ) )
      endif
      nStyleReturn:= GetWindowLong( hWnd, nStyleType )
   endif

RETURN nStyleReturn
 
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by Antonio Linares »

Hola Hernán! Que bueno de volver a verte y saludarte,

gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
mmercado
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by mmercado »

Hola Hernán:
Hernan Diego Ceccarelli wrote:Aca les mando esta funcion, espero les sirva :) :D Es MUY util ehh :)
Que gusto tenerte nuevamente por acá, espero que nos visites con frecuencia :D .

Gracias por la función.

Un abrazo con mis mejores deseos.
manuelmercado at prodigy dot net dot mx
User avatar
Hernan Diego Ceccarelli
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina
Contact:

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by Hernan Diego Ceccarelli »

Gente linda, extraño todo esto de los foros y a uds. :) :D Me encanta ayudar a la gente con sus problemas :D
Voy a estar muy seguido por aca.
Les mando un abrazo grande a todos :D
User avatar
jose_murugosa
Posts: 943
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by jose_murugosa »

Saludos Hernán,

Es un gusto verte por el foro nuevamente :D
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
Alfredo Arteaga
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico
Contact:

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by Alfredo Arteaga »

De igual manera te expreso mi aprecio Hernan.

Un Abrazo.
Francisco Horta
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by Francisco Horta »

un gusto tenerte por aca de nuevo master
saludos
paco
____________________
Paco
mantonio_08
Posts: 330
Joined: Fri May 25, 2007 9:06 pm

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by mantonio_08 »

saludos hernan::

algun ejemplo simple de como aplicar la funcion..

GRACIAS
User avatar
Hernan Diego Ceccarelli
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina
Contact:

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by Hernan Diego Ceccarelli »

mantonio_08 wrote:saludos hernan::

algun ejemplo simple de como aplicar la funcion..

GRACIAS
Hola gracias a todos, pues es demasiado simple: Supongamos que tenemos un control que tenemos que QUITAR o AGREGAR EL TAB_STOP en tiempo de ejecucion, en funcion de una variable del aplicativo en cuestion.

ChangeStyleWindow( oGet, WS_TABSTOP, NIL, .T. ) // LO INCORPORA
ChangeStyleWindow( oGet, WS_TABSTOP, NIL, .F. ) // LO QUITA

Podria llamarse desde un ON CHANGE (bChange) o desde cualquier evento disparado por cualquier otro control, esto es un simple ejemplo, pero podemos manipular cualquier STYLE de window, sea define GWL_STYLE (-16) o GWL_EXSTYLE (-20)

Saludos :D
Hernan
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by Patricio Avalos Aguirre »

Muchas gracias por el aporte...

ahora se ve mas interesante
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
sjingo
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by sjingo »

Que agradable sorpresa tenerte por aquí después de tanto tiempo. Recuerdo que gracias a tu invalorable ayuda me enbarqué en FW. Bienvenido de nuevo :D

Te saluda
Marcelo Jingo
Marcelo Jingo
Marcelo Via Giglio
Posts: 1033
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by Marcelo Via Giglio »

Hernan,

primeramente, un gusto verte por aqui y agradecer esta contribucion, esto lo estoy intentando hacer sin existo es el de cambiar la justificacion de un GET en tiempo de ejecucion, y no lo he podido hacer, tienes alguna idea??

saludos

Marcelo
User avatar
Hernan Diego Ceccarelli
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina
Contact:

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by Hernan Diego Ceccarelli »

Marcelo Via Giglio wrote:Hernan,

primeramente, un gusto verte por aqui y agradecer esta contribucion, esto lo estoy intentando hacer sin existo es el de cambiar la justificacion de un GET en tiempo de ejecucion, y no lo he podido hacer, tienes alguna idea??

saludos

Marcelo
Marcelo,
Lamentablemente NO es posible, las APIs se reservan algunos styles internos EN TIEMPO DE EJECUCION y no pueden ser cambiados a posteriori dinamicamente. Los Edit Control son un caso. :cry: Igualmente voy a investigar formas de violar dicho impedimento jejeje :D Por el momento habria que destruirlo y crearlo en tiempo de ejecucion :( con la alineacion que quieras.,


Edit Control Styles

To create an edit control using the CreateWindow or
CreateWindowEx function, specify the EDIT class, appropriate
window style constants, and a combination of the following edit
control styles. After the control has been created, these styles
cannot be modified, except as noted.


The ES_CENTER/ES_LEFT/ES_RIGHT were not noted as modifiable.
Marcelo Via Giglio
Posts: 1033
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: Funcion para Agregar/Remover STYLES a un control in Run-Time

Post by Marcelo Via Giglio »

Hernan,

gracias por la respuesta, con razon :D

saludos

Marcelo
Post Reply