FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour O mucho o poco
Posts: 498
Joined: Thu May 10, 2007 08:30 PM
O mucho o poco
Posted: Sat Jun 16, 2007 11:54 AM

Hola amigos del foro. Soy nuevo en este foro, y espero seros util.
Por lo pronto tengo un problemilla, a ver si alguien puede ayudarme.
Resulta que estoy haciendo un browse propio para listar arrays multidimensiones, todo va bien. Ahora estoy creando el método de edicion de celdas, y me surge un problema del que no tengo ni idea de como solucionarlo. Resulta que para editar la ceda creo un DIALOGO del tamaño de la celda para poner un GET dentro. El problema es que si pongo un tamaño, el DIALOGO es 1 pixel demasiado grande y sobresale de la celda. Pero si le quito un pixel, se dibuja un pixel más pequeño que la celda y se queda corto (resulta feo). ¿Os lo podeis creer? He intentado de todo, cambiar el ::nWidth o el ::nRight, hacer un Move durante la inicialización, redimensionarla, etc, pero no hay solución.
¿Alguna sugerencia?
Gracias de antemano.

Peaaaaaso de foro...

FWH 2007 - xHarbour - BCC55
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
O mucho o poco
Posted: Sat Jun 16, 2007 04:27 PM

Prueba a cambiarle el tamaño al diálogo desde la claúsula ON INIT del diálogo:

ACTIVATE DIALOG oDlg ON INIT oDlg:nWidth := ...

Otra opción que puedes considerar es crear un GET directamente en vez de un diálogo

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 63
Joined: Sun Apr 08, 2007 09:50 PM
O mucho o poco
Posted: Sun Jun 17, 2007 04:43 PM

Hola Amigos
Antonio:
"Otra opción que puedes considerar es crear un GET directamente en vez de un diálogo"
Pregunta: Cómo se crea un Get sin Dialogo, Qué se pone en Clausula "OF"
Gracias.
Saludos
Jorge Vargas

FW-705, xHarbour 0.99.71 (SimpLex) , bcc55
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
O mucho o poco
Posted: Sun Jun 17, 2007 08:26 PM

> Qué se pone en Clausula "OF"

el browse sobre el que queremos mostrarlo:

... OF oBrowse

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 498
Joined: Thu May 10, 2007 08:30 PM
O mucho o poco
Posted: Mon Jun 18, 2007 09:07 AM

Gracias de todas formas, pero eso no me sirve de mucha ayuda.
El problema es que ya está todo diseñado para un DIALOGO. Principalmente la funcion que evalua el resultado del GET. El caso es que ese mismo método lo tenía hecho en FW Clipper y no teníe es probema.
Además, el WBrowse de FW utiliza un DIALOGO y no tiene ese inconveniente.
Si alguien conociera cúal es el origen Windows/Harbour del Problema, a lo mejor se podía solucionar.
Tanto este como otros. Por ejemplo porqué RECTANGLE y MOVETO/LINETO producen resultados diferentes.
Lo miemso ocurre con EXTTEXTOUT y DRAWTEXT que varian de DOS a CUATRO pixels tanto en ancho como en alto con respecto a las coordenadas LINETO. El origen de todos estos pequeños "bugs" debe de tener alguna relacion. A lo mejor quitar/añadir uno de cada x pixel o algo así, o poner algún SET a ON u OFF.
Pensaba que los Gurus del FW sabrían algo al respecto. Pero me conformaré. Tampoco es demasiado inconveniente.
Un saludo y gracias.

Peaaaaaso de foro...

FWH 2007 - xHarbour - BCC55
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
O mucho o poco
Posted: Mon Jun 18, 2007 09:18 AM

Las funciones que comentas tan sólo hacen llamadas directas al API de Windows, por lo que esas diferencias son propias de Windows, no de FW.

Por otra parte, las dimensiones de un diálogo son en unidades lógicas y no en pixeles, de ahí que la modifiación tenga que hacerse desde la claúsula ON INIT para que sea en pixeles

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 498
Joined: Thu May 10, 2007 08:30 PM
O mucho o poco
Posted: Tue Jun 19, 2007 07:24 PM

Desde ON INIT tampoco va. Pero Gracias de todas formas

Peaaaaaso de foro...

FWH 2007 - xHarbour - BCC55
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
O mucho o poco
Posted: Tue Jun 19, 2007 08:37 PM
Este codigo funciona correctamente:
#include "FiveWin.ch"

function Main()

   local oDlg

   DEFINE DIALOG oDlg

   ACTIVATE DIALOG oDlg ;
      ON INIT ( oDlg:nWidth := 50, oDlg:nHeight := 50 )

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 498
Joined: Thu May 10, 2007 08:30 PM
O mucho o poco
Posted: Sat Jun 23, 2007 09:40 AM

Lo intenté en su momento, pero me cambia el dialogo de sitio. Necesitaría calcular un nuevo nTop/nLeft, pero no me asegura que esas coordenadas se mantengan en otros ordenadores con otros Windows/resolucion.

Déjalo, me aguantaré así. Lo estraño es que con CLIPPER no me pasaba.

Gracias de todas formas.

Saludos

Peaaaaaso de foro...

FWH 2007 - xHarbour - BCC55
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
O mucho o poco
Posted: Wed Jun 27, 2007 08:20 PM

Antolin,

a mi me gustan los dialogos al centro sin importar el tipo de resolucion de las pantallas,

para centrar el dialogo siempre uso el metodo CENTERED

ACTIVATE DIALOG oDlg CENTERED

Saludos.

Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 498
Joined: Thu May 10, 2007 08:30 PM
O mucho o poco
Posted: Thu Jun 28, 2007 02:18 PM

El caso no es centrar el dialogo, sino hacerlo coincidir con las dimensiones de la Celda del Listbox.

Peaaaaaso de foro...

FWH 2007 - xHarbour - BCC55

Continue the discussion