Resolucion de Dialogos

Resolucion de Dialogos

Postby wilsongamboa » Mon Oct 15, 2007 3:09 am

Antonio, buenas noches en los dialogos (los estoy armando a mano), aparentemente no se ponen en pixels ciertos controles, por ejemplo el control Button de cancelar le tuve que poner a una distancia horizontal de 40 ?? del button de ejecutar imagino que no son pixels ??

adjunto la imagen

Image

aca el codigo fuente



Code: Select all  Expand view
#include "FiveLinux.ch"

#define CRLF chr( 10 )

#define CRLF_WINDOWS chr( 13 ) + chr( 10 )


#define COPYRIGHT    "Wilson 'W' Gamboa A"

Function Main

    Local oWnd
    Local nRow0    := 2
    Local nCol0    := 3
    Local oRadio
    Local oCambio  := tWg_UtilCambioLinux():New()
    Local nRadio   := 1
    Local oMeter
    Local nVar     := 0
    Local nTotal   := 100
    Local lWhen    := .T.
    Local acItems  := {'Nombres de Archivos a Minúsculas','Traducir caracter de fin de lineas en Codigo Fuente'}

    DEFINE DIALOG oDlg SIZE 640, 280 Title 'Utilitarios de Conversión Windows - Linux ' + COPYRIGHT

    @ 1, 45 IMAGE FILENAME "wilson.gif" OF oDlg SIZE 140, 140

    @ nRow0 -2, 1 GROUP oGrp LABEL "Acciones a Realizar" OF oDlg SIZE 600, 160

    @ nRow0   , nCol0 RADIO oRadio VAR nRadio ;
                           OF oDlg ;
               ITEMS  acItems ;
            SIZE 400, 20 ;
            WHEN lWhen ;
            UPDATE

    @ nRow0 + 10, nCol0 METER oMeter VAR nVar ;
                       TOTAL nTotal ;
                       OF oDlg ;
             SIZE 300, 30 UPDATE
      

    @ nRow0 +20, nCol0       BUTTON "_Ejecutar" OF oDlg ACTION ( oCambio:nRadio := nRadio ,;
                                                                 oCambio:oMeter := oMeter ,;
                                                                 oCambio:ejecute() ) SIZE 100, 30

    @ nRow0 +20, nCol0 + 40 BUTTON "_Cancelar" OF oDlg ACTION oDlg:End() SIZE 100, 30


    ACTIVATE DIALOG oDlg CENTER

Return Nil

Class tWg_UtilCambioLinux

   
    Data oMeter
    Data nRadio
   
    Method New() constructor
    Method Minusculas()
    Method Ejecute( nRadio )
    Method CambiaFinDeLinea()

EndClass

Method New() Class tWg_UtilCambioLinux

Return Self

Method Minusculas() Class tWg_UtilCambioLinux

    Local aDirec  := directory( '*.*' )
    Local i
    Local aCambio := {}
    Local cLoFile
    Local nOp
    Local lMeter    := ( Valtype( ::oMeter ) == 'O' )
 
    if !MsgYesno('Seguro de cambiar a minúsculas los nombres de todos ' + CRLF +;
                 'los archivos del presente directorio' )
        Return Nil
    end
   
    for i:= 1 to len( aDirec )
        cLoFile := aDirec[ i, 1 ]
        if cLofile <> Lower ( cLofile )
            aadd( aCambio, { cLofile, Lower( cLoFile ) } )
        end
       
    next

    if lMeter
         ::oMeter:nTotal := Len( aCambio )
         ::oMeter:Set( 0 )
    end

    for i:= 1 to len( aCambio )

        if lMeter
            ::oMeter:Set( i )
        end

        Frename( aCambio[ i, 1], aCambio[ i, 2 ] )

    end

Return Nil

Method Ejecute( nRadio ) Class tWg_UtilCambioLinux

    if ::nRadio == 1
        ::Minusculas()
    elseif ::nRadio == 2
        ::CambiaFinDeLinea()
    end

Return Nil

Method CambiaFinDeLinea( ) Class tWg_UtilCambioLinux

    Local cMemo
    Local aDirec
    Local i
    Local lMeter    := ( Valtype( ::oMeter ) == 'O' )

    if !MsgYesno('Seguro de cambiar el fin de linea de windows a Linux' )
        Return Nil
    end

   

    aDirec := directory( '*.prg')
   
    if lMeter
        ::oMeter:nTotal := Len( aDirec )
        ::oMeter:Set( 0 )
    end
   
    for i:= 1 to len( aDirec )
       
        if lMeter
            ::oMeter:Set( i )
        end
       
        cMemo := Memoread( aDirec[ i, 1 ] )
        cMemo := StrTran( cMemo, CRLF_WINDOWS, CRLF)
        MemoWrit( cMemo )
       
    Next

Return Nil





perdon por la ignorancia, aun no se implementa la clausula Pixels ??
favor observa como tuve que cuadrar a mano la foto ? porque aparentemente no son pixels esos valores horizontales

de todas formas esta fantastico esto
gracias x todo
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
 
Posts: 593
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Postby Antonio Linares » Mon Oct 15, 2007 5:53 am

Wilson,

Son coordenadas "simuladas" tipo MsDos. Si revisas los fuentes de la clase TButton verás esto:

SetCoors( ::hWnd, nRow * 10, nCol * 10 )

Luego estamos multiplicando los valores que usas por 10. Se podría cambiar esa constante (10), ó añadir la claúsula PIXEL.

Tambien es posible usar el editor de recursos Glade y dibujar los diálogos. No está terminado al 100% Tienes un ejemplo en samples\TestRes.prg. El recurso está en samples\Test.glade
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42081
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby wilsongamboa » Mon Oct 15, 2007 6:02 am

gracias ya lo reviso
att
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
 
Posts: 593
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador


Return to FiveLinux / FiveDroid (Android)

Who is online

Users browsing this forum: No registered users and 3 guests