PREGUNTAS CONTESTADAS - Delphi

 Hay un total de 680 Preguntas.<<  >> 

    Pregunta:  2014 - ¿COMO IMPRIMIR EN MODO TEXTO?
Autor:  Heriberto Ledesma Sánchez
Hola...
Deseo saber si es posible imprimir en modo texto desde delphi, o si es posible imprimir sin que se utilice el administrador de impresion.

de antemano muchas gracias...
  Respuesta:  José Oronas
Tenes varias maneras de hacerlo

- Como se hacía habitualmente en Pascal

Procedure Prueba ;
Var
F : TextFile ;
Begin
AssignFile(F,´LPT1´) ;
Rewrite(F) ;
Writeln(´Lo que queras imprimir´);
CloseFile(F) ;
End ;

Esto tiene la desventaja que tenes que conocer las secuencias de caracteres de control de la/s impresoras que vas a usar (y en todo caso armar una base de datos con los correspondientes a varios modelos para despues dar posibilidad de seleccion).

- Otra es instalar la impresora genérica de Windows a la que le podes asignar las secuencias de caracteres de control segun tus necesidades y la impresion se maneja con el objeto tprinter de Delphi.

BeginDoc ;
TextOut(X, Y: Integer; const Text: string);
EndDoc ;

El Driver genérico te da posibilidad de seleccionar Roman 10cpi, Roman 12cpi, y Roman 17 cpi.
Lógicamente no acepta gráficos, el rendimiento es el mismo que el logrado de la forma anterior.
esta forma me dió muy buenos resultados.

- Otra posibilidad es usar el ZReport que es muy similar al QuickReport, yo lo he probado funciona bien pero con algunas faltas en capacidad de seleccion de tipo de letras (normal, Comprimida).
no recuerdo de donde lo baje pero de todas formas si lo queres probar ponete en contacto y te lo envío, es freeware.

    Pregunta:  2063 - ACCESO A LOS COMANDOS DEL MODEM
Autor:  Heriberto Ledesma Sánchez
nesesito hacer un programa que use un modem, es decir que necesito hacer llamadas y/o contestarlas por medio de un programa, mi pregunta es, ¿como enviarle los comandos al modem para que realice las operaciones que deseo...

espero puedan resolver mi duda, de antemano muchas gracias...
  Respuesta:  Alberto Molinero San Antonio
Necesitas un componente que te facilite esta labor.
Yo tengo un componente que se llama TComport y te permite comunicación via modem.
Este componente seguro podrás encontrarlo en cualquier página sobre Delphi, y si no este exactamente uno parecido

    Pregunta:  2075 - TTABLE O TQUERY
Autor:  Juan Enrique Palacios Hernández
Estoy trabajando contra una BD Oracle y he comprobado que a la hora de escribir en la BD unos 5000 registros tarda el mismo tiempo con tquery que con ttable, pero a la hora de leer de la BD el tquery es mucho más rápido. ¿Hay alguna forma de mejorar el tiempo con el ttable?, si no es así ¿para que existe el ttable?
  Respuesta:  Juan Enrique Palacios Hernández
El ttable sirve para conectarse con BD locales y el tQuery para conectarse con BD remotas.
  Respuesta:  Jorge Alexis Viqueira
Supuestamente para consultas de usa el TQuery que está por demás optimizado para este tipo de tareas, además de poseer una caché y leer registros adicionales y/o consecutivos en vez de uno en particular como TTable.
En la grabación no vas a encontrar diferencia de tiempo porque la que graba los datos es TTable. El retrazo que sentís es debido a la multitud de llamados a procedimiento que hacés para leer los 5.000 registros con TTable que no cuenta con caché.

    Pregunta:  2138 - LOS GIFS SE PUEDEN USAR EN DELPHI??
Autor:  celso gomez
En una pregunta anterior una persona pregunto si se podian usar gifs en delphi, el que la contesto aseguro que no!. Resulta que una persona pudo bajar un componente para delphi que si lo deja trabajar con los gifs, el problema es que delphi no soporta mas de 4 gifs ya que colapsa.

mi pregunta es esta:

¿Que ocasiona que delphi colapse al usarse mas de 4 gifs, y en que lugares se pueden bajar componentes como el que la persona que mencioné utilizó para delphi?

Resulta que esa persona no recuerda el sitio en el que bajo el componente que uso!

Tengo que realizar un trabajo de multimedios y prefiero usar delhpi en lugar de visual basic!

Gracias!!!
  Respuesta:  José Carlos Sánchez
Muy buenas.

No se por que se colapsa Delphi al usarse más de 4 gifs.
Los componentes para ver gifs (incluso animados), son unos llamados "RX". Estos son unos componentes rusos muy buenos. Yo los he encontrado en la página:
http://www.clubdelphi.com/
dentro de esta página, selecciona Componentes RXLib, y alli encontraras la versión que quieras según la versión de Delphi que utilices.

Un saludo.

    Pregunta:  2155 - COMO PUEDO ABRIR UNA CONEXION A INTERNET
Autor:  Jose Vazquez
como puedo abrir la conexion a internet de una forma automatica sin tener que tocar nada el usuario es decir para poder temporizar una aplicacion que necesite conexion a internet.

y tb si hay alguan forma de que te de una lista de las conexiones disponibles en tu equipo y seleccionar la que mas te interese.
  Respuesta:  Raúl P.
Desconozco que versión tienes de Delphí, pero la versión 5 tiene un control, que te permite realizar tu propisito, solo tienes que poner un control de tiempo para que se active la conexión, el segundo apartado no lo he entendido muy bién pero si lo que quieres es una lista de conexiones actuales solo tienes que mostrar las propiedades en un liscombo o similar del dicho control. Si tengo tiempo te mando un ejemplo, pero no prometo nada.

    Pregunta:  2195 - RELACIONES DE BASES DE DATOS
Autor:  José Pazos
Hola a todos, mi duda trata sobre las relaciones entre tablas, ¿cómo puedo saber si una relación me permite una actualización o eliminación en cascada? imagino que Interbase y otras bases de datos que permitan relaciones tienen que ofrecer un método o propiedad que nos ayude a distinguir cuando una relación puede o no borrar un registro en cascada.

Agradecería buestra información.

Un Saludo.
  Respuesta:  Hugo OH
Hola...

tal vez te pueda servir manipular los eventos de error de que vienen en los componentes TTable... si instalaste completo Delphi, hay un ejemplo muy bueno de como manipular los errores en las bases de datos, entre ellos el determinar si se viola la integridad referencial de las tablas....

...\demos\db\dberrors\

suerte...

    Pregunta:  2234 - TIEMPO DE RESPUESTA EN CONSULTAS SQL
Autor:  David Arboleyda
Historia: Tengo la siguiente consulta en Fox 2.5 SELECT * FROM TABLA1 WHERE LLAVE IN (SELECT LLAVE FROM TABLA2) el tiempo de respuesta es de aprox 5 segundos y la misma consulta en Delphi 4 se tarda aprox 1 minuto con 15 segundos.

Mi pregunta es :
¿Como puedo hacerle para que en delphi me acelere mi tiempo de respuesta de esa consulta?

NOTA: He probado con el componente TQuery y el RXQuery.

Gracias !!!!
  Respuesta:  JOSE K
UTILIZA STORE PROCEDURE.

EXEC TABLA, TE REDUCE BASTENTE EL TIEMPO YA QUE NO ES LO MISMO EJECUTAR LA CONSULTA DESDE DELPHI QUE DE EL PROPIO SQL
  Respuesta:  Armando Solarte
Qué tal cambiando la consulta

SELECT * FROM TABLA1 WHERE LLAVE IN (SELECT LLAVE FROM TABLA2

por

SELECT * FROM TABLA1 T1, TABLA2 T2 WHERE T1.LLAVE = T2.LLAVE

Suerte!
  Respuesta:  Carlos Andres Pereira Vasquez
Hola!, lo que puedes hacer es usar dentro del query el comando /* +rule */ el cual obliga al query a utilizar los indices de las tablas.

ej.

Select /* +rule */ campo1, campo2....
from tabla1

Saludos
  Respuesta:  Hugo O H
Ya probaste con el método prepare, de TQuery???.... suele dar muy buenos resultados... ejecutalo antes de activar la consulta....

    Pregunta:  2305 - PROBLEMAS CON EL F1BOOK
Autor:  Jorge Cortes
Estoy haciendo una aplicacion(Delphi 4) que tiene incluido el componente f1book que se encuentra en la carpeta de Active X, pero al hacer el instalador y bajarlo en la maquina destino este me marca un error:
*EXCEPTION EOLESYSERROR in module INVENTARIOS.EXE
*Clase no registrada

que librerias ocupo o como puedo superar este obstaculo.

de antemano gracias.
  Respuesta:  Oronas José
Hola
Tenes que registrar el ocx en la máquina del usuario.
inclui entre los archivos de la aplicación
VCF132.OCX
MFCANS32.DLL
OC30.DLL
MSVCRT20.DLL
(podes copiarlos en un \Windows\System u otro directorio del Path)

Despues ejecuta :
c:\Windows\System\Regsvr32 VCF132.OCX

Con esto quedará registrado el ocx, y debería desaparecer tu problema.
Creo que el InstallShield hace este trabajo, pero como no uso ocx no me he puesto a ver como se hace.
Espero que te sea útil.
Saludos

    Pregunta:  2320 - INDEX OUT OF DATE
Autor:  Jose Vazquez
como puedo solucionar y evitar que me pase esto con los indices de una tabla en paradox
gracias.
  Respuesta:  Osvaldo Flores
Este mensaje de "Index out of date" regularmente aparece cuando en la aplicación de delphi le estamos pidiendo a la tabla que se indexe o que maneje alguna consulta, filtro, o búsqueda y en la tabla el campo en el que estamos trabajando no se especificó en paradox como indice secundario, para realizar esto, abre paradox y le das restructure y elijes secondary indexes, y agregas todos los que gustes.
  Respuesta:  Remberto Gonzales
Lo que pasa, es uno de los archivos de indice (.PX) correspondiente a tu Tabla, tiene la fecha diferente a la de (.DB), lo que tienes que hacer es colocar la misma fecha a ambos (inclusive a los otros archivos relacionados).

Si esto no funciona intenta desde el DBE, copiar todo el contenido a otra tabla Tools->Utilities

Delphi siempre cambia autoamaticamente las fechas de tus tablas y esto no deberia haber ocurrido a no ser que tu hayas copiado alguna otra tabla o indice con otra fecha.

    Pregunta:  2353 - ¿COMO BUSCAR TEXTO EN DELPHI?
Autor:  Jose Luis Gómez
A alguien se le ocurre un algoritmo para poder buscar expresiones en un documento de texto (o un richedit) tipo:

amo*: y debería encontrar amor, amorío...
am? : y debería encontrar amo, ama, ...

Gracias,
  Respuesta:  Heriberto Ledesma Sánchez
Tengo este programa...
creo que no cumple al 100% tu peticion, pero creo que sera mas facil adaptarlo a tus necesidades...
de cualquier forma no es tan dificil hacerlo a partir de este (bueno eso digo yo) :)

procedure TForm1.Button1Click(Sender: TObject);
Var
ilineas, i : Integer; //recorrer todas las lineas del rich
icaracteres,j : Integer; //recorrer el contenido de una linea
s : String; //cadena a buscar
aux : String;
bandera:Boolean;
begin
ilineas:=0;
s:=´prue´; //Esta es la palabra que estas buscando
bandera:=false;
//icaracteres:=0;
while ((ilineas<RichEdit1.Lines.Count)and(not bandera)) do begin //recorre todas las lineas
aux := RichEdit1.Lines.Strings[ilineas];
icaracteres := 1;
while ((icaracteres<=Length(aux))and(Not bandera)) do begin
i:=1;
if aux[icaracteres]=s[i] then begin //compara si es igual
j:=icaracteres;
while ((aux[j]=s[i]) and (j<=Length(aux)) and (i<=length(s))) do begin
inc(i);
inc(j);
end;
if (i>Length(s)) then
bandera:=true;
End;
if bandera then begin
showMessage(´Palabra encontrada en el renglon ´+IntToStr(ilineas+1)+´ en la posicion ´+inttostr(icaracteres-1));
bandera:=false //es para que siga buscando otras que pueda haber
//puedes eliminar esta linea y solo buscara la primera coincidencia
end;
inc(icaracteres);
End;Ð/LM/W3SVC/157/Root

|<  <<  3 4 5 6 7 8 9 10 11 12 13  >>  >|