PREGUNTAS CONTESTADAS - Delphi

 Hay un total de 680 Preguntas.<<  >> 

    Pregunta:  57 - IMPRIMIR DESDE DELPHI FUENTES NO TRUETYPE
Autor:  Pablo
Como conseguir imprimir desde Delphi con tipos de fuente que no sean TrueType, para que la impresión no tarde tanto?
Un saludo.
  Respuesta:  José Oronas
Tienes dos formas simples de lograr impresión rápida con impresoras de impacto, supongo esa es la necesidad.

- Asignar a Printer.Canvas.Font.Name el nombre de una fuente interna de la impresora que estas usando esto funciona en algunos casos, pero si bien es rápido no es eficaz.

- Otra manera es instalar el modelo genérico de impresora provisto por Windows, una vez hecho esto se debe seleccionar propiedades del nuevo dispositivo y allí incluir las secuencias que el modelo de impresora a usar requiera para imprimir en 10 cpi, 12 cpi, 17 cpi , doble ancho, subrayado etc.
En lo que respecta a la programación, se debe asignar a Printer.Canvas.Font.Name los nombres ´Roman 10cpi´, ´Roman 12cpi´, ´Roman 17cpi´, de acuerdo al tipo de fuentes que prefieras. En este caso debes obviar cualquier salida de tipo gráfico ya que este controlador no tiene esa capacidad.

Si las secuencias incluidas en el controlador de impresora genérica de Windows son los correctos para el modelo usado y la propiedad Printer.PrinterIndex coincide con el dispositivo genérico los resultados serán los mismos que los logrados bajo DOS.
En ambos casos puedes usar antes de la impresión los cuadros de diálogo tPrinterSetupDialog, o tPrintDialog para seleccionar el dispositivo y tFontDialog para seleccionar las fuentes, este último debe tener su propiedad Device = fdprinter para que muestre fuentes del dispositivo seleccionado.

Yo personalmente prefiero incluir las dos formas de impresión, usando True Type y con dispositivo genérico.

  Respuesta:  Ricardo Scheel
Otra posibilidad es que utilices la impresora como un archivo.Ejemplo
var
f:TextFile;
begin
AssignFile(f´,´LPT1´);
Rewrite(f);
WriteLn(f,´Texto a Imprimir´);
CloseFile(f);
end;
Espero que esto ayude

    Pregunta:  141 - BASE DE DATOS PORTABLES
Autor:  Ricardo
Como puedo hacer un programa para que mi Base de Datos sea portable (Alias), sin tener que declarar luego de instalar mi programa, la Base de Datos en el Data Destok
gracias
  Respuesta:  Erwin Perez
Una solucion mas elegante sin cambiar tanto de componentes de acceso a datos es que uses un componente TSession, o bien, el que se usa por default para los componentes BDE que uses en tu aplicacion, que es Session:

if not Session.IsAlias(MiAlias) then
Session.AddStandardAlias(MiAlias, Directorio, 'PARADOX');
o bien puedes poner 'DBASE' en vez de paradox si usas esa base de datos.

Luego puedes guardar si asi lo deseas el alias:

Session.SaveconfigFile;

esto hace que cada vez que ejecutes tu programa se registre el alias si no existe.

if not Session.IsAlias(MiAlias) then begin
Session.AddStandardAlias(MiAlias, Directorio, 'PARADOX');
Session.SaveConfigFile;
end;
  Respuesta:  Mauricio Jomiak
tambien puedes usar la funcion getdir que devuelve el directorio actual de una unidad, la unidad 0 (cero) es la activa por lo tanto te devolvera el path de tu ejecutable, pon tus tablas en una carpeta dentro de la del ejecutale o juntas y ya tienes el path para le dababaseneme
Supon la tabla productos.db que esta en el mismo directorio del ejecutable

//dir_prod variable tipo string;
getdir(0, dir_prod);
dir_prod:= dir_prod+'\productos.db';
tabla_prod.TableName:= dir_prod;

o en el directorio dbs dentro de la carpeta del programa

getdir(0, dir_prod);
dir_prod:= dir_prod+'\dbs\productos.db';
tabla_prod.TableName:= dir_prod;

getdir(0,variable_tipo_string) siempre te dara el directorio de instalacion del programa, con lo q puedes armar paths relativos a ella
  Respuesta:  HSL Santana
Te recomiendo que utilices los componentes ADO de delphi ya que no necesitan del bde.

Saludos...
  Respuesta:  Edgar Fernando Rodriguez
Inserta un componente Database, luego en parameters inserta esto:
PATH=C:\TU_DIRECTORIO_DE_TABLAS\
luego asignale al Database un alias cualquiera, y luego apunta todas tus tablas dentro del formulario con el nuevo alias.
  Respuesta:  Jair A. Linares
Hay varias formas de hacerlo

1. Utiliza el InstallShield, no lo tienes, viene en el CD del DELPHI, el te genera un instalador y crea el Alias automaticamente.

2. Otra, es que en tu aplicacion, preguntes por el path donde se deben leer las Tablas la primera vez que lo ejecuten o un sitio para configurar, y ese valor lo guardes en el registry de windows, .INI o donde desees y lo tomes de alli, en el momento de abrir las Tablas.

Nota : Recuerda que debes copiar el DBE (Data base engine) porque si no no te funciona.

  Respuesta:  Roberto
La solución más fácil es la de usar InstallShield pero si quieres puede crear ALIAS en tiempo de ejecución con las ordenes AddAlias o AddStandardAlias ( mira la ayuda porque no recuerdo los parámetros ).
Tendrás que pasarle un directorio y como normalmente la base de datos estará en el directorio de tu aplicación o en un subdirectorio, puedes usar el comando ExtractFilePath(Application.EXEName) para tener el directorio de ejecución.
  Respuesta:  Daniel del Castillo
Te recomiendo que crees un archivo con extensión INI en donde pondrás toda la información que necesitará tu programa, si quieres un ejemplo completo te recomiendo que me mandes un mail con el detalle de tu problema y con gusto te daré una respuesta mucho más clara.

    Pregunta:  142 - COMUNICACIÓN SERIE BAJO WINDOWS
Autor:  Ricardo
Mi pregunta va referida a comunicación serial con sus caracteristicas bajo windows que hay que establecerse, cuales son la condiciones para el chip UART.
Y como puedo trabajar con el componente RS232 y sin este componente osea crear mi programa de comunicación
Gracias y adelante muchachos... espero la respuesta pronto :)
  Respuesta:  anonimo anonimo
Intenta utilizar el control MSCOMM, es un activex bastante sencillo de usar y te permite configurar las características de la transimisión, (incluir bit de paridad o no, velocidad en bauds, etc). De ese modo puedes configurar tu UART como mejor te convenga.
  Respuesta:  pedro morcillo
Si quieres saber más sobre comunicaciones serie sobre C++ Builder /Delphi consulta el libro
\\\"Comunicaciones Industriales\\\" de la editoria paraninfo, puedes encontrar información
en http://pb.uv.es/pedrom
  Respuesta:  Edgar Rodríguez
bueno, deberás ir a Delphi Super Page, donde encontrarás la mayor cantidad de utilidades freeware y shareware para las distintas versiones de Delphi (1,2,3), en ellas he encontrado que exite una utilidad buenísima para comunicaciones por el puerto RS-232 y por módem...
así que explotalo. La dirección es http://sunsuite.icm.edu.pl/delphi/
Espero que te sirva mucho
Cordialmente...

    Pregunta:  148 - BUSQUEDA RECURSIVA CON TQUERY O TTABLE
Autor:  Carlos
Delphi 3
Tengo creada una tabla la cual tiene unos subtipos relacionados con si misma ejemplo:

Familia (x) tiene (n) productos asociados y estos asu vez (m) partes. Las familias están realcionados con los productos por medio de otra tabla que hace el puente entre los registros. Esto genera niveles indeterminados de anidamiento.

Cómo hago una búsqueda recursiva con Tquery o Ttable, de tal manera que al encontrar el código relacionado lo envié como parámetro de búsqueda en la misma tabla, y de esta manera pueda encontrar las relaciones anidadas?

  Respuesta:  Edgar Fernando Rodriguez
Mira, lo que tienes que hacer para agrupar datos, es averiguar más sobre la cláusula GROUP BY de SQL y con eso se soluciona todito... Busca el archivo SQLREF.HLP, desde D1 hasta D7 encuentras información sobre SQL.
Ejemplo:
SELECT COUNT(*) FROM CLIENTES
GROUP BY CIUDAD
En este caso se cuenta todos los clientes agrupados por Ciudad suponiendo que CIUDAD exista.
  Respuesta:  jorge
para hacer lo que quieres la forma más rápida de hacerlo es mediante SQL con parámetros, para eso no podrás enlazar los querys entre ellos. te envio un trozo de código, si no te aclaras envia un e-mail:

Q1.Close;
Q1.SQL.Clear;
Q1.Params.ParamByName('<Nombre del parámetro').AsInteger:=
Q2.FieldByName('Campo con el código del otro query').ASInteger;
Q1.SQL.Add('Select * From <Nombre de la Tabla>);
Q1.SQL.Add('Where <Nombre del Campo>= :
<Nombre del Parámetro> ');
Q1.Prepare;
Q1.ExecSQL;
Q1.Open;

Antés de esto tendrás que haber definido el parámetro, y tener la propiedad RequestLive a True, ParamCheck a False y Filter a True del Query;
Si quieres crear los parámetros en tiempo de ejecución hzmelo saber, o crear una consulta en tiempo de ejecución

  Respuesta:  Jair A. Linares
Una manera de hacerlo es con el Database desktop abre las Tablas y creales "Referential Integrity"

Otra es que en el TTable, usa la propiedad MasterSource, ahi le das la tabla que de la que debe buscar, y en MasterFields. Recuerda que esta es una relacion de Hijo a Padre, no al reves. No es como Clipper, si lo conoces, en pocas palabras es algo como asi :

En el TTable de familia no hagas nada
en TProductos pon en MasterSource TFamilia
en TPartes pon TProductos

no olvides llenar MasterFields, ahi se selecciona el indice a usar, y los campos que se deben conectar o por los cuales se debe hacer la relacion.

Espero te haya servido de algo !

  Respuesta:  Kenneth Ureña Valverde
Bueno con el TQuery es un poco mas facil, esto lo haces con la prop[iedad SQL, de hecho si quires (imagino que tienesz unmodelo de la base de datos), si quieres me la mandas y yo te hago el texto que tienes que introducir a la propiedad SQL.

    Pregunta:  151 - BASE DE DATOS MDB
Autor:  Rubén
Necesito utilizar una Base de Datos creada con Access para realizar una Aplicación en Delphi 3.
Si alguien me puede ayudar a resolver esta cuestión, por favor que me envie una respuesta.
Gracias.
  Respuesta:  Tes_Cadiz
Estimado amigo:
En delphi 4 para poder accecer a una base de datos hecha en access, debes configurar el controlador odbc, concretamente los controladores de access, diciendole la ruta donde se encuentra tu .mdb. Luego, ya en delphi, eliges la propiedad database y seleccionas MSAcess. en delphi 3 creo que sera igual. Ya una vez que has terminado la aplicacion, con el install shield (asistente de creaccion de instalaciones), puedes configurarlo para que cuando el usuario instale tu aplicacion, el odbc se configure automaticamente. Ventaja: No tienes la necesidad de contemplar en tu codigo en path de la base de datos. Espero que te sirva.
  Respuesta:  JARR
Puedes crear un alias para una base de datos de Access, para hacerlo dirígete al panel de control y entra en el ODBC de 32 bit y vete a la pestaña System DSN, haz click en Add y selecciona Microsoft Access Driver (*.mdb) y haz click en finalizar. En la siguiente pantalla te piden un nombre para tu alias y la base de datos a la cual se refiere. Regresa a las pestañas principales y escoge la pestaña File DSN y realiza un proceso similar al anterior. Ahora crea en Delphi una aplicación, agrega un componente de TTable o TQuery e indicales el alias que ababas de crear.
  Respuesta:  Gonzalo
Para abrir un archivo MDB (Access) con Delphi 3.0 lo unico que debes hacer es abrir el Database Desktop 7.0 una aplicacion que sirve de enlace entre Delphi y el mundo de las Bases de Datos. Una vez hecho esto y si la aplicacion fue instalada con la opcion de combinar bases de datos en el menu archivo abrir solo debes introducir el nombre de la base de datos y yo te recomendaria que cambiases el formatato a .DB porque Delphi trabaja mejor con este formato.
  Respuesta:  German
Puedes tambien exportar la base de datos de Access a paradox para utilizarla con Delphi. Esto se puede hacer desde el mismo Access. Seleccionas la tabla, y escoges ARCHIVO / GUARDAR COMO O EXPORTAR.
  Respuesta:  Alberto
Lo ideal es pasar a un formato dbase, teniendo cuidado en la asignacion de los nombres de los campos ya que estos se adecuan al formato dbase. Es mejor dbase porque de esta forma no tendras problemas con las diferencias que existen entre las versiones de las otras bases de datos (paradox, acces, etc.). ademas dbase puede ser consultado hasta con una aplicacion tan simple como NC.
Con un pequeño programa en delphi podrás pasarlo al mode de base que quieras
  Respuesta:  Jeg
Puedes conectar directamente con la base de datos utilizando controladores ODBC

    Pregunta:  198 - ALGUIEN CONOCE EL MOTOR DE DATOS LLAMADO APOLO 4.0
Autor:  Juan
Hola amigos, estoy utilizando Delphi con Borland Database Engine y encontré un motor de datos llamado Aplo 4.0 de ttp://www.luxent.com que es tipo SixDriver de DOS pero para Windows, las preguntas son :
- Alguien ha utilizado Apolo?
- Es realmente mejor que el BDE?
- Por ello, vale la pena comprarlo?

Me gustaría que alguien me contase su experiencia.
Muchas Gracias
http://members.xoom.com/jonysoft
http://www.come.to/manuales

  Respuesta:  Paco Reina Martinez
Yo debo trabajar con Apollo. Me es necesario para usar tablas Dbase con indices. Si no tienes mas remedio que usarlas, el Apollo va francamente bien, pero siempre que puedas evita ese tipo de base de datos, los indices se corrompen con demasiada frecuencia y hay que reindexar.
  Respuesta:  David Martínez
Yo he usado la interface de Apollo desde que tenia el nombre de Rocket y la empresa se llamaba Successware. Despues utilice Apollo 4.0

Mi problema con Apollo fue el siguiente:
- Primero, viene en un DLL y no un PAS con un ejecutable.
- Segundo, su soporte consiste en gente que no es muy confiable. Explico:

Mi equipo en mi anterior trabajo constaba de gente muy eficiente en Delphi. En una ocasion, encontramos un error que solo ocurria cuando la plataforma era NT. Nos dijeron que no era cierto y que ellos lo probaron y funciono perfecto. En el siguiente release, el error habia desaparecido.

Cosas similares nos ocurrieron como tres o cuatro veces antes de decidir que Successware nunca iba a admitir que tenian un bug en su "motor". Corroboramos este hecho con otras compañias que tenian problemas similares y fueron tratados de la misma manera.

Tal vez hoy dia sea el caso sea diferente, pero hasta donde yo se, solo el nombre de la compañia cambio, no el management.

Obviamente es tu decision, pero considera a su competencia: Halcyon (antes "ssFiles"). Halcyon esta totalmente escrito en Pascal y lo puedes comprar con fuentes; sirve con Turbo Pascal Y Delphi tambien. El producto no es perfecto, pero los programadores una y otra vez nos trataron con respeto, dandonos respuestas rapidas e incluso diciendonos donde cambiar codigo en sus fuentes para corregir errores en particular "en lo que lo componen".

Ademas, como halcyon no es un DLL, tu puedes hacer aplicaciones con DBF en un solo ejecutable. El unico problema que encontre (que a lo mejor ya lo compusieron) es que como era una implementacion por separado del engine, utilizaba sus propios DBedits,etc., y no era compatible con los dbEdit que vienen con Borland.
Pero revisalo. Su site es http://www.grifsolu.com

- David Martinez
http://members.home.net/dmartinez/bienvenido.html

    Pregunta:  210 - RECUPERAR EL NUMERO DE LA PLACA BASE
Autor:  Toni
Hola que tal: Necesitaria saber como se puede recuperar el numero de la placa base mediante un programa en Delphi, creo que son con interrupciones de la BIOS pero no llego a hacerlo. Si alguien sabe como recuperar esta informacion me gustaria que me escribierais.
GRACIAS
  Respuesta:  Ernesto D'Spirito
La posición del número de serie del BIOS depende del fabricante. Una alternativa que tal vez te interese la podrás encontrar en mi artículo "Obteniendo el número de serie del BIOS":

http://www.latiumsoftware.com/es/delphi/00050.php3
  Respuesta:  Jose Guinart
No soy experto en Delphi, pues estoy comenzando.
¿Te refieres al numero que contiene el BIOS?
Si es así yo lo hacía desde Clipper con una librería.
  Respuesta:  EberSys
...pides una tarea casi imposible...
la verdad no creo que hay ningun software en el mercado que pueda realizar tal cosa :-(
  Respuesta:  Jorge
Hola, yo no conozco las funciones a usar en la bios, pero te puedo indicar que para hacer uso del ensamblador solo tienes que poner ASm{ y empezar con el ensamblador.Si buscas BASM en la ayuda del Delphi encontrarás más información.
De todos modos su buscas información sobre Interrupciones, prueba por alguna web de ensamblador.
Saludos

    Pregunta:  291 - BDE DE DELPHI
Autor:  Ribén
¿ Como puedo instalar el BDE de Delphi, junto con mi programa sin necesidad de utilizar el InstallShield ?
Si tengo que copiar algunos archivos, ¿Cuales son y donde los debo copiar)
Gracias.
  Respuesta:  Jalisco
Tienes las instrucciones para eso en el archivo Deploy.txt que viene con el paquete de Delphi. Hay un Deploy.txt para cada versión de Delphi.

    Pregunta:  307 - MANEJO DE TREEVIEW/TREENODE EN DELPHI 3
Autor:  Gonzalo
Necesito saber como anexar un Item a un nodo ya construido por programación y en tiempo de ejecución del programa.
  Respuesta:  Ariel Principi
Algo asi:

Crear el arbol con un nodo inicial llamado: 'NODO_INICIAL'

Añadir de la paleta de componentes un treeview.

Escribir en el codigo de un boton:

TreeView1.Items.AddChild(nil,'NODO_INICIAL')

Crear un Hijo (Nodo_Hijo) asi: por ej:

TreeView1.Items.AddChild(TreeView1.Items.AddChild(nil,'NODO_INICIAL'),'NODO_INICIAL')

Le añade al nodo inicial el Nodo_Hijo
  Respuesta:  Adolfo
Te puedo prestar ayuda usando el SDK de Windows. Escribeme y te mandare código.
  Respuesta:  Jorge
Hola, pues debes usar el metodo Items.AddChild. Mira este código coge los items de un Dbcombox (se puede usar otro componente que tenga las propiedad tStrings) y crea una estructura.
{Este procedimiento Lee Los datos del dbComboBox1, que es el que tiene todos temas disponibles y crea la estructrua del arbol.}
Procedure TForm1.Estructura;
Var
x : integer;
Raiz : TTreeNode;
Begin
With DbComboBox1 Do
Begin
Raiz := TreeView1.Items.Add (TreeView1.Selected,´Todos´);
For x := 0 To Items.Count-1 Do
Begin
TreeView1.Items.AddChild (Raiz,Items[x]);
end;
TreeView1.FullExpand;
End;
TreeView1.Selected := Raiz;
StatusBar1.Panels[0].Text := ´Tema:Todos´;
End;

    Pregunta:  328 - LOS ARROWS NO ME CREAN EL EVENTO KEYDOWN
Autor:  Iñigo
En Delphi cuando estoy jugando con ventanas hijas, hay veces que al pulsar las ´flechas´ ->,<-,.., es decir los arrows no me crean el evento de KeyDown.

Cuando creo una ventana y pulso los arrows me crean el evento, luego si creo otra tambien, pero luego si vuelvo al primero creado al pulsar un arrow ya no crea el evento.
Sin embargo si pulso teclas centrales del teclado nunca tengo problemas. El problema es que con los arrows siempre no crea el evento pero con las teclas centrales sí.
Bueno amigos si podeis ayudarme os lo agradeceria
Un saludo

  Respuesta:  Rodrigo Nunez
Si no te genera el evento del KeyDown, entonces busca el evento del Keypressed, este recibe una variable del tipo char, la que puedes someter a un CASE de los caracteres ascci de las flechas direccionales.
Si esto no resuelve tu problema entonces escríbeme.

|<  <<  1 2 3 4 5 6 7 8 9 10 11  >>  >|
Revisar política de publicidad