2009-02-04 5 views
6

Mi objetivo es actualizar el aspecto de la GUI en mi aplicación. Actualmente, mi GUI contiene muchas cajas de lista que se utilizan para editar algunos objetos de forma antigua, es decir, el usuario hace doble clic en un elemento y se muestra un cuadro de diálogo para modificar el objeto correspondiente.Control Delphi que podría imitar a los "Complementos | Lista de extensiones" de Firefox?

Creo que un buen enfoque moderno es cómo Firefox muestra las extensiones instaladas (una instantánea a continuación).

Mi pregunta es acerca de cómo construir una GUI en Delphi (win32) fácilmente? ¿Hay algún componente que utilices para imitar dicho comportamiento o solo tendré que codificarlo desde stratch utilizando paneles? (OMI un trabajo muy engorroso me gustaría evitar - la lógica de selección, resizings, etc ...)

alt text http://i41.tinypic.com/16k6gd5.png

Respuesta

9

Puede hacer algo similar (no exactamente) con componentes estándar; TDBCtrlGrid, TSpeedButton, ...

alt text http://img8.imageshack.us/img8/9585/imagen29ox3.png

+0

¡Guau!muchas gracias Neftali! :) –

+0

¡La imagen ya no está disponible! –

+0

Lo siento. Estaba en un servidor gratuito y ha expirado. lo tomo en cuenta para la próxima vez. :-( –

3

El uso de un TFrame para cada elemento de la lista y les puso el conjunto Más Alineados en un TScrollBox podría trabajo. También vea TDBCtrlGrid que hace algo así en combinación con datasets.

+0

Gracias Lars, me he ido una dirección similar Neftali sugirió. –

2

Se puede hacer con los controles Delphi existentes.

Por ejemplo, en el control deTCustomListBox puede crear su propio evento OnDrawItem a dibujar su propio elemento de la lista. También necesita crear su propio OnMeasureItem para cambiar la altura del artículo.

En algunos casos es muy limitado, por lo que si desea más libertad, tendrá que hacerlo desde cero.

+0

Esto es exactamente lo que estaba evitando :-) ¡Gracias, sin embargo! –

7

Si está utilizando Delphi 2007 o Delphi 2009, es posible que pueda hacer algo similar con TCategoryButtons (desde la página de la paleta de componentes 'Adicional'). Colóquelo en un formulario y haga clic con el botón derecho para mostrar el menú emergente y luego haga clic en "Editor de categorías ...". Agregue una categoría con el cuadro de diálogo resultante, configure su leyenda y, opcionalmente, configure los elementos que contiene. No es exactamente lo mismo, pero podría hacer lo que necesita.

También podría usar un diálogo con TTreeView (si tiene categorías de objetos) o TListView para emular el diálogo Delphi 2007 Projects-> Options. Al hacer clic en un elemento en TreeView o ListView, se muestra la página adecuada de un TPageControl para configurar el objeto.

+0

TCategoryButtons fue mi respuesta, por lo que obtuvo mi voto. –

+0

Gracias, Cesar. Finalmente me puse a configurar un OpenID para poder responder preguntas aquí. He estado al acecho en ocasiones, pero solo por tiempos cortos. –

+0

Esta parece ser la opción viable en D2007 y superior. Aunque desafortunadamente no lo tengo. Gracias. –

2

En general, estoy de acuerdo con Lars, pero utilizaría un marco para cada elemento en lugar de un panel. Eso se separaría en su propio archivo, y obtendría soporte de tiempo de diseño fácil para ello.

+0

Buena sugerencia. Actualicé mi respuesta. –

Cuestiones relacionadas