PREGUNTAS CONTESTADAS - Delphi≤nguaje=

 Hay un total de 680 Preguntas.<<  >> 

    Pregunta:  44497 - PASO DE PARAMETROS ENTRE FORMAS
Autor:  CESAR SUBIRIE
Hola a todos mi duda es la siguiente:

Deseo pasar parametros entre formas de mi aplicacion pero que no se tenga que agregar en el uses de una la unidad de la otra, no se si quedo claro.

De antemano muchas gracias.
  Respuesta:  Gamaliel Ramirez
Hola que tal... mirano se cual sea tu problema que no quieres utilizar en el uses, pero que yo sepa solo se pude pasar las variables poniendola en el uses (estas deben ser publicas), y la otra forma pasandolas a un airchivo auxiliar y despues las lees.
  Respuesta:  gustavo bellino
lo unico que se me ocurre, sin se tenga que agregar en el uses de una la unidad de la otra, es dependiendo del tipo de parametro que necesitas pasar, utilizar un archivo en el cual con una form escribis y con la otra lees, de esta forma utilizas una pila de comunicacion entre las dos forms. Pero no entiendo porque no queres que se agregue en el uses de una la unidad de la otra.
espero que te sirva de algo
hasta luego

    Pregunta:  44678 - DBLOOKUPCOMBOBOX
Autor:  Aldo Martin
Hola, mi problema es el sigiente, tengo una aplicacion cenectada a interbase, cargo los combobox de datos y cuando despliego solo me muestra un regustro en la lista despleglable, para que la lista despliege mas de un solo reglon tengo que navegar por los dats del combo y luego desplegar nuevamente la lista del combo, esto solo me pasa cuando uso intebase como motor de datos, no se por donde encontrar el problema, si algien sabe algo por favor requiero sugerencias. Desde ya muyas gracias
  Respuesta:  Luis Felipe García Gutiérrez
A pesar que el DBLCBox tiene propiedades como el DataField y el DataSource, para realizar la asociación de la información que se quiere mostrar se deben utilizar las propiedades ListSource a la cual se asocia el DataSource o el Table que trae los datos de la BD, luego en la propiedad ListField se relaciona el campo que se desea mostrar y por último en la propiedad KeyField se direcciona el dato que queremos tomar por debajo (ej: el identificador del campo).

Si el objeto a vincular es un Query, se debe asegurar la ejecución de la consulta previo a la carga del DBLCBox.
  Respuesta:  victor Lopez Luna
tienes que poner en la propiedad keyfield o el campo llave de tu tabla

Saludos

    Pregunta:  44774 - CóMO OBTENER LA POSICION DE UNA CELDA DE UN STRINGGRID
Autor:  Marisol Gonzalez
Hola, agradeceria que me dijeran como puedo obtener la posición de una celda en un string grid, es decir en el momento en que termino de capturar datos en cualquier celda de mi string grid y me posiciono en la siguiente celda como puedo obtener la posicion de la celda en la cual acabo de introducir información.
Gracias de antemano.
  Respuesta:  Matt Guadalupe
Hola Marisol si entendí bien tu pregunta la respuesta es la siguiente:
dw_1.setrow(1)....SETROW te ubica la fila donde deseas trabajar
dw_1.setcolumn(4)...SETCOLUMN te ubica la columna donde deseas trabajar

En este caso estariamos trabajando en la primera fila - columna 4 así: con la cantidad 10 porque esta en la fila 1 y en la columna 4

------------------------------------
NUMERO|MOVIMIENTO|MATERIAL|CANTIDAD|
------------------------------------
|00001| Entrada | 142563 | 10 |
|00002| Entrada | 152567 | 20 |
  Respuesta:  Erwin Perez
Utiliza el evento OnSelectCell del componente, este te dice en que celda estas, guarda los valores ACol y ARow, ej.:

MyForm.MyGridSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if LastPosObtained then
MiProcedimiento(LastCol, LastRow);// Aqui es donde ya sabes cual fue la ultima celda
LastCol:=ACol;
LastRow:=ARow;
LastPosObtained:=True; // Esta variable te puede servir para saber si has capturado por lo menos una vez la celda seleccionada, como podras ver arriba.
end;

    Pregunta:  44876 - ACCEDER COMPONENTES FORMULARIO CREADO EN TIEMPO DE EJECUCION
Autor:  Juan Alberto Lopez
Saludos....

Compañeros como puedo acceder de un formulario a otro en tiempo de ejecucion osea en la opcion proyectos lo pase para el lado derecho
y cuando quiero mostrar lo creo de la siguientye forma
hijo:=Tformulario2.create(self);
Lo que deseo es acceder
formularion1.edit1.text:=formulario2.edit1.text
pero me sale un error de violacion de memoria, claro que si en la opcion proyecto paso el formulario 2 para la parte izquierda funciona lo mas de bien...

agradezco la ayuda.
  Respuesta:  Jose Martinez
hijo:=Tformulario2.create(self);
Lo que deseo es acceder
formularion1.edit1.text:=formulario2.edit1.text

A simple vista esto es lo correcto:

formularion1.edit1.text := hijo.edit1.text

    Pregunta:  44913 - CAPTURAR CTRL+ALT+DEL
Autor:  Mario Fernandez
Necesito capturar desde mi aplicacion el evento generado por la combinacion de teclas CTRL+ALT+DEL
  Respuesta:  Rodolfo Carlos Burlando Makthon
Bueno. Si pulsas esa convinacion de teclas, desde alguna parte quien cojera el mensaje será el S.O.

El S.O. no lanza eventos o mensajes a las aplicaciones para informarles de que se pulso ctrl-alt-del, solo les envia un mensaje wm_ pidiendo que se cierren

Lo que podrias hacer es un hook (gancho) al teclado en la cual tu aplicacion este revisando constantemente, dicha convinacion de teclas estara en una condicion, que contendra el codigo que quieres agregar.

Para hacer un hook en Delphi, necesitas de basicamente dos programas, una dll que es la que se comunica con el S.O. y tu exe que se comunica con la dll. Este codigo lo tienes desarrollado como ejemplo en la web de trucomania.

Saludos.

    Pregunta:  44949 - COMO UTILICO BASE DE DATOS DBASE
Autor:  azucena lopez
Estoy haciendo una aplicacion en delphi pero necesito jalar una base de datos de dbase y no se como hacerlo.

alguien me puede decir como lo puedo realizar Gracias por su ayuda.
  Respuesta:  Aquiles Canto
Yo tuve que hacer lo mismo. Utilicé el componente de base de datos que viene con delphi (TDatabase), este componente tiene una propiedad que se llama directory, en ella hay que pasarle la ruta a la carpeta que contiene la base de datos dbase. En la propiedad drivertype hay que seleccionar Standard Luego hay que conectar una tabla (componente TTable) al database y especificar en la propiedad tablename el nombre del archivo (ej: base.dbf). Y listo. Solo falta abrir la base y abrir la tabla (ambos componentes tienen un metodo open).

    Pregunta:  45017 - PROGRAMAR CON EXPRESSQUANTUMGRID 5 EN DELPHI
Autor:  Juan José Bonilla
Quería saber que tal es el programar con el componente ExpressQuantumGrid 5 para Delphi, como se comporta, que debilidades tiene, que calificación le darían, todo al respecto a nivel perdsonal para ver si me tiro a programar con esta componente o no, es que tengo mis dudas
  Respuesta:  Jorge Peressotti
Yo hace bastante que lo uso y realmente son muy poco los casos donde no lo uso (Delphi 5), tiene muchas ventajas, además viene con otros software de complemento que son muy buenos. Tiene muchas opciones de configuración pero la ayuda es buena y viene con muchos ejemplos.

    Pregunta:  45189 - FORMULARIOS MDI
Autor:  Fernando Pedraza
Como puedo acceder a los componentes o procedimientos declarados en un formulario hijo, desde el formulario principal.

Se que puedo acceder a los formularios hijo mediante MDIchildren pero no puedo acceder a sus componentes
  Respuesta:  Carlos Lopez
Si de verdad necesitas llamar a un método del hijo desde el padre quiere decir que no tienes bien diseñada la jerarquía de clases.
Indícame porque necesitas hacerlo y te hecho una mano.

    Pregunta:  45422 - APLICACCION TIPO MESSENGER EN DELPHI
Autor:  Siko Maximus
Hola a todos.
En la empresa que estoy haciendo practicas estamos creando una aplicacion tipo messenger para red local mediante sockets.
La aplicacion funciona bien,(envia,recibe....),pero no sabemos que los diferentes usuarios tengan distintos tipos de letras(utilizamos un richtext).

Se puede hacer eso? Y si se puede como?

Gracias por adelantado.
  Respuesta:  Rodolfo Carlos Burlando Makthon
Bueno. primero deberas crear un servidor (msn teine una cola de servidores), segundo deberas crear los clientes. la idea de Socket es la mejor.

Tu Servidor debera crear un hilo nuevo por cada cliente que se conecte a él.

Debes definir un protocolo de comunicaciones, algo asi como una estructura de registro, en la cual hay datos basicos como por ejemplo: sender (quien envia), target (a quien envias), msg, parametros, id, estado, etc.

Este protocolo es un lenguaje comun entre el servidor y los clientes, hara mas facil la vida de comunicaciones.
En la parte de parametros puedes detallar que letra usas, de que color, tamaño, etc.
Observa snifiando como es el protocolo de msn o de emule. es parecido, donde la cadena se define de la siguiente forma:

tamaño-cadena, donde tamaño puede ser dos bytes y cadena es el concepto de lo que envias, cada cosa debe tener antecedido su propio tamaño.

essageSize LongIntegr 4 bytes (0xFFFFFFFF) Longitud total del mensaje, incluyendo estos 4 primeros bytes.
MessageType Byte 1 byte (0xFF) Indica el tipo de mensaje. Los valores posibles son:
0 tMT_System
1 tMT_Internal
2 tMT_ExternalSimple
3 tMT_TestRebound
CryptoFlag Byte 1 byte (0xFF)

Este valor es usado únicamente en el mensaje de LOGIN.
0 Crypto_Unsupported
1 Crypto_Supported
CryptoSeed 8 bytes

Valor aleatorio de 8 bytes de longitud donde cada byte puede ser un caracter ASCII comprendido dentro de Asc(33) y Asc(126).

Este valor es usado únicamente en el mensaje de LOGIN y si el valor de CryptoFlag es <> 0

Sender UserName ShortString Max. 30 Usuario del emisor.
IDModulo ShortString Max. 20 ID/Nombre del módulo que genera el mensaje en el emisor.
IDTransmisor ShortString Max. 20 ID/Nombre del Transmisor que genera el mensaje en el emisor.

arget UserName ShortString Max. 30 Usuario del destinatario.
IDModulo ShortString Max. 20 ID/Nombre del Módulo que debe recibir el mensaje.
IDTransmisor ShortString Max. 20 ID/Nombre del Transmisor que debe procesar el mensaje.

arameters ListSize Byte 1 byte (0xFF) Indicador del número de elementos de la lista
[1] .. [10] String

Lista de hasta como máximo 10 parámetros.

ata ListSize Byte 1 byte (0xFF) Indicador del número de élementos de la lista.
CompressFlag Byte 1 byte (0xFF)

Flags que indican si el contenido está comprimido. Cada bit corresponde a un contenido. Si el bit es establecido a 1, el contenido correspondiente está comprimido.
Bytes[1] .. [8] Binario Datos a enviar.

..... y asi creas un "Protocolo", ese es el corazon de tus comunicaciones amigo mio.

Saludos.

    Pregunta:  45455 - SABER SI SE ENVIó CON éXITO UN MENSAJE
Autor:  Juan Carlos García Morales
Hola colega, necesito tu ayuda, estoy desarrollando una aplicación en Delphi 7.0 donde genero un reporte y lo envio por correo vía MAPI, se abre el outlook express y el usuario da click en enviar. Necesito conocer por programación si el usuario dió al botón enviar del OE y se envió el mensaje o canceló el envio del mensaje dando clic en cancelar o cerrando la aplicación.
gracias de antemano,
Juan Carlos
  Respuesta:  Alirio Gavidia
Saludos.

Juan Carlos pasé por un problema similar la mejor solución que encontré (no la única) fue usar otra opción que no fuese MAPI, en particular Indy tiene un componente para enviar mensajes de correo y funciona muy bien. La diferencia es que este componente enviará directamente el mensaje al servidor SMTP que definas. IdSMTP (de hecho cualquier componente que maneje SMTP te debe servir)

Gracias y disculpa por que se que esta no es la respuesta que querías.

|<  <<  52 53 54 55 56 57 58 59 60 61 62  >>  >|