PREGUNTAS CONTESTADAS - Delphi≤nguaje=

 Hay un total de 680 Preguntas.<<  >> 

    Pregunta:  43427 - ERROR AL EJECUTAR APLICACION EXCEPTION EDATABASE
Autor:  Manuel Dominguez
Hola:

Tengo una palicacion que utiliza BDE para ejecutarse y la he trasladado a otro ordenador al instalar en el nuevo el Delphi 5 y la aplicacion CAU.EXE y definido el alias para la BD de las misma al ejecutarla me sale el siguiente error:

Error Exception EDatabase in module CAU.EXE at 11
an error ocurred while initialize the Borland Database Engine (Error 2108)

Gracias de antemano.
  Respuesta:  David Lozano
Hola,

Sigue este link a ver si te aclaras.

http://www.knowledgepoint.com/kpscripts/dispissue.asp?func=disp-issueid&ID=2424

Que vaya bien, compañero!

    Pregunta:  43567 - MOUSE CON SCROLL
Autor:  Veronica de los Reyes
Tengo problemas en mi aplicación Delphi (estoy usando el 7) en las grillas el scroll del mouse se comporta de forma extraña, no refrezcando los eventos de la grilla.
A alguien le paso? Saben como solucionarlo?
Gracias.
  Respuesta:  Joe Solari
Aunque mencionas que estas trabajando con Delphi7 el componente no me es conocido, a que tipo de Tcomponent te refieres con 'grilla'...?

Es un TDbgrid o TStringGrid, o algún componente parecido a estos?
que eventos omite cuando utilizas el mouse...?

Coméntame para poderte ayudar....

    Pregunta:  43613 - INSERTAR JPEG EN PAINTBOX
Autor:  David P M
Quisiera saber como puedo insertar o abrir un archivo JPEG en un Paintbox para editarla. Gracias de antemano por vuestra ayuda.
Un saludo.
  Respuesta:  Juan Carlos Cañón M
Directamente no puedes, pero si cargas primero la imagen (jpg) en un timage como bmp, luego puedes copiar del canvas del timage al canvas del Timage

para probar este ejemplo crea un proyecto con un tImage, un tPaintBox y un button y añade el siguiente codigo...

procedure TForm1.CargaJpgBmp(Fichero : String);
var
B : TBitMap;
It : TImage;
ImageRect, PaintRect: TRect;
begin
{Procedimiento para cargar una fichero .Jpg sobre una imagen, convirtiendolo al formato .Bmp para poder usar el canvas. En la clausula Uses del Interface,
debemos incluir la librería Jpeg}
Fichero := AnsiUpperCase(Fichero);
if Pos('.JPG',Fichero) > 0 then begin
try
B := TBitmap.Create;
It := TImage.Create(Self);
It.Picture.LoadFromFile(Fichero);
B.Assign(It.Picture.Graphic);
Image1.Picture.Assign(B);
except
ShowMessage('Error al cargar la imagen Jpeg');
Image1.Picture.Graphic := nil;
end;
B.Free;
It.Free;
end else begin
Image1.Picture.LoadFromFile(Fichero); // Carga directamente el Bitmap
end;

// Copiamos de Image1 como bitmap hacia el canvas...
ImageRect := Rect(0,0,Image1.Width,Image1.Height);
PaintRect := ImageRect;
PaintBox1.Canvas.CopyRect(PaintRect,Image1.Canvas,ImageRect);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
CargaJpgBmp('c:\filmoteca\graficas\fong sai yuk2.jpg')
end;

    Pregunta:  43616 - ASIGNAR NULO A UNA FECHA
Autor:  Jorge Mavrakis
Deseo asignar un valor nulo a una campo fecha.

Como lo puedo hacer?????

Le asigno '' y me reclama por el tipo de dato que no corresponde

Bye
  Respuesta:  Luis Felipe García Gutiérrez
para los casos en los que necesites guardar un nulo en un campo fecha, simplemente al enviar los datos escribre en lugar de ' ', un null o nil.

suerte!
  Respuesta:  Lic. Osvaldo Flores López
Un campo fecha es de tipo DateTime, no es una cadena (string) por lo tanto no le puedes asignar "", lo que si puedes hacer es inicializar el campo, si es tiempo puedes hacer es convertir en cadena ese campo y asignarle el valor 00:00:00, o si es fecha puedes decirle que sea 01/01/00 por ejemplo, y a depende de tus necesidades.

    Pregunta:  43651 - PROBLEMAS QUICKREPORT DE DELPHI 4.0 EN WINDOWS XP
Autor:  Luis Miguel Martín
Hola.
Tengo programas de bases de datos que generan informes realizadas con Delphi 4.0, pero al hacer preview de informes superiores a un par de páginas el programa da un error y se cierra. Esto no ocurre en windows 95 ni 98 por muy grandes que sean los reports. He vuelto a compilar los programas en el xp con la misma versión de delphi, pero sigue sin funcionar.
¿Debo cambiar la versión de Delphi para el Windows xp o simplementa cambiar algo en la configuración del xp?
Gracias.
  Respuesta:  victor soto
El problema es la longitud del directorio para archivos temporales que usa windows XP (el nombre de la ruta es demasiado largo) y que no usan windows 95 y 98

crea un directorio c:\TEMP o c:\TMP y cambia la condiguración de WindoWS XP para que use éstos como temporales.
Verás como funciona
  Respuesta:  Santiago Estupiñan Diaz
Hola colega,

No se si lo as echo pero delphi 4 cuando salio al mercado tenia unos problemas con una serie de objetos entre ellos los Qrport que presentaban problemas con las bases de datos, que corrian las Qrband de datos, trata de conseguir este servipack, yo lo tengo pero no encuentro via para mandartelo por que es muy grande. trata de buscar en las paguinas de Borland ahi sacan de ves en cuando los updates de delphi.

    Pregunta:  43765 - ABRIR PAGINA WEB DESDE UNA APLICACIóN DELPHI
Autor:  Gyo Guerrero
hola , necesito saber si existe un componente en delphi que abra una pagina web desde un boton; es decir al hacer clic sobre el botón se abra la pagina web que bien puede estar alojada en mi directorio o una pagina en internet.
  Respuesta:  Javier Luna
Si existes varias formas una muy facil es insertar el componente Web Browser que esta en el tab de internet y este codigo en el boton y listo.

WebBrowser1.navigate('google.com');

o tambien agregas un edit donde tecleas el URL

WebBrowser1.navigate(edit1.text );

    Pregunta:  43801 - COMO INTERCAMBIAR INFORMACION ENTRE DOS PC\'S
Autor:  emmanuel Piedra Vazquez
Programé un juego sencillo de ajedrez en Delphi, pero quiero que se pueda jugar entre dos personas, cada una en su propia pc. La cuestion es como puedo hacer que cuando yo mueva una pieza la otra persona resiva esa informacion en su pantalla (vea que mi pieza se movió) y viseversa. ¿Se puede hacer esto en Windows XP o necesito otro windows o algun software o que necesito? por favor necesito saberlo, es para un trabajo escolar muy importante.
  Respuesta:  Miguel Lucero
Emmanuel

Lo mejor para comunicar dos programas es hacerlo mediante el protocolo TCP lo que te permite conectar dos programas en una intranet o en internet. Claro que el tema es muy extenso como para explicarlo acá, pero en la red hay varios tutoriales y ejemplos de como implementar esto en delphi. Lo ideal sería usar las librerías de Indy que son las más fáciles y potentes.

    Pregunta:  44021 - ARCHIVO *.TXT A UN GRID ??
Autor:  Gabriel Perez
como puedo mostrar el contenido de un archivo de texto separado por comas ( , ) en un grid ?? para que los usuarios puedan ver la informacion de manera de tabla ?
  Respuesta:  AS AS
Gabriel, te paso la idea y te debo el algoritmo.
Es sencillo, bajo mi punto de vista. Primero cargas los campos en variables (vos mencionas que estan delimitados por comas) mediante un bucle (mientras no llegues al EOF que lea el TXT).
En el mismo bucle podes ir agregando en un StringList (matriz) los campos y simulas un DBgrid sin problemas.
Es obvio que necesitas saber minimamente conceptos de matrices y demas (cosas basicas).
Si puedo te alcanzo el programa en otra respuesta.

    Pregunta:  44067 - CAPTURAR PANTALLA SIN PRESIONAR "PRINTSCREEN"
Autor:  Camilo Chamorro
Necesito capturar un pantallazo y procesarlo, como lo hace la tecla "printscreen", pero sin utilizar el teclado. Gracias.
  Respuesta:  Dr Juzam
Quizás este truco te resulte útil:

http://www.q3.nu/trucomania/truco.cgi?185&esp

    Pregunta:  44094 - COMPACTAR BASE DE DATOS ACCESS CON DELPHI
Autor:  Cristóbal
Hola a todos
Soy principiante en programación en delphi y se me presento un problema.
Tengo una base de datos Access 97, hay tablas de esta BD que tiene campos autonumericos por lo que siempre se van incrementando cuando se insertan nuevos registros, el problema es que necesito compactar mi base de datos de manera que el indice vuelva a su orden inicial, esto es si hay un registro que el indice diga 1 y no diga el numero de indice que tenia antes. Por ejemplo. si tenia 100 registros (entonces el ultimo indice es 100) si los elimino necesito que el indice vuelva a uno.

He leido varios articulos pero todos eran enfocados a paradox y dbase.

Me despido Atte y dando gracias de antemano
  Respuesta:  Octavio Herrera Flores
// Compilado en Delphi 7 com Access 2000
// agrega en USES comobj,variants

function GetEngine(var DbEngine: Variant): Boolean;
begin
Result := False;
try
DbEngine := CreateOleObject('Dao.DbEngine.35'); // Para Access'97
except
try
DbEngine := CreateOleObject('Dao.DbEngine.36'); // Para Access 2000
except
ShowMessage('No es posible inicializar el DAO.'#13 +
'Microsoft DAO debe de estar instalado en este equipo.'#13 +
'Para instalarlo, debes saber que forma parte de '+
'MS Access, Visual Basic, MS Office, etc.');
Exit;
end;
end;
Result := VarType(DbEngine) = VarDispatch;
end;

function CompactDataBaseDao(DbAccessName: String): Boolean;
var
DbEngine: Variant;
TmpFile: String;
begin
Result := False;
if Dir = '' then Exit;

TmpFile := Dir + 'TmpAccess.Mdb';
if Pos( '.MDB', UpperCase(DbAccessName)) = 0 then
DbAccessName := DbAccessName + '.MDB';

if not FileExists(DbAccessName) then Exit;

try
if not GetEngine(DbEngine) then Exit;
if FileExists(TmpFile) then
DeleteFile(TmpFile);
// Antes de compactar la Base de Datos, ésta se repara.

DbEngine.CompactDataBase(DbAccessName, TmpFile);
DeleteFile(DbAccessName);
RenameFile(TmpFile, DbAccessName);
// En caso de caida del sistema aquí, tendremos la base compactada en TmpFile.
Result := True;
except
Exit;
end;
end;

// llama esta funcion asi: CompactDataBaseDao('datos.mdb');
  Respuesta:  Octavio Herrera
Si te sirvio?
  Respuesta:  Javier Navarro
Que tal Cristobal, mira, en SQL Server primero debes eliminar todos los registros, después en diseño de la tabla le debes especificar que el valor de inicio sea 1 y ahora si cuando ingreses un registro va a empezar nuevamente en 1, como te digo esto si se puede en SQL, necesitarías checar en Access, la otra opción sería que crearas una tabla pero ya no especifiques el campo como autonumerico, solo como entero, y tu ve incrementando el índice con un valor que lo tienes guardado en otra tabla donde tomas ese valor y le incrementas 1 y lo guardas p.e.

TablaProductos TablaFolio
folio descrip folio
1 Plato 4
2 Cuchara
3 Lápiz

Para el próximo artículo entras a la TablaFolio, tomas el no. 4 y lo agregas a la TablaProductos con el nuevo artículo y en la TablaFolio le incrementas 1. Si quieres iniciar la tabla eliminas los registros de TablaProductos e inicializas en 1 en TablaFolio. Espero te sirva.

|<  <<  50 51 52 53 54 55 56 57 58 59 60  >>  >|