PREGUNTAS CONTESTADAS - Delphi

 Hay un total de 680 Preguntas.<<  >> 

    Pregunta:  56321 - PROBLEMA CON LAS CONSULTAS EN UN DBGRID
Autor:  beto soulfly
Hola, resulta que estoy realizando un pequeño sistema en la que muestro los resultados de una consulta SQL en un dbgrid pero al realizar me muestra todos los datos de una de las tablas a las que estoy consultando(tabla alumno) cuando yo solo necesito 2 datos de esta tabla y 1 mas de la tabla(ER). Trate de realizar una consulta SQl mas simple, pero me sigue arrojando todos los campos de la tabla alumno: //sql :='SELECT Matricula,Nombre FROM alumno';
Este es mi codigo:

procedure TFconsulAlumno.Button1Click(Sender: TObject);
var
sql:string;
begin
ModuloDatos.ADOconnection1.connected:=true;
ModuloDatos.Tabla1.Active:=true;
ModuloDatos.TrabajoRecepcional.Active:=true;
Consultas.DataSource:=ModuloDatos.DataSource1;
if CheckBox1.Checked then
Begin

ModuloDatos.Query1.sql.Clear;
//sql :='SELECT Matricula,Nombre FROM alumno';
sql :='select Matricula,Nombre,Tema from alumno,trabajorecepcional where alumno.ID_T=trabajorecepcional.ID_T';
ModuloDatos.Query1.sql.add(sql);
ModuloDatos.Query1.Open;
end;
end;
  Respuesta:  nelson
ModuloDatos.Query1.sql.Clear;
//sql :='SELECT Matricula,Nombre FROM alumno where alumno.maticula=:matricula and alumno.nombre=:nombre';
sql :='select Matricula,Nombre,Tema from alumno,trabajorecepcional where alumno.ID_T=trabajorecepcional.ID_T';
ModuloDatos.Query1.sql.add(sql);
ModuloDatos.Query1.Open;
end;
esto es suponiendo
me supongo que lo haces mediante un edit de texto
lo que hice con la clausa where es comparar los valores que tu query a buscar con el valor del edit
  Respuesta:  Luis Felipe García Gutiérrez
Según alcanzo a apreciar faltan los join entre las tablas que se cruzan para ejecutar la consulta; es necesario que en la sentencia SQL se hagan las relaciones entre los campos comunes que permiten las asociaciones.

Mucha suerte y espero haber sido de ayuda con el aporte.

    Pregunta:  56443 - COMO INTRODUCIR DATOS A TRAVES DEL PUERTO PARALELO
Autor:  snaider
hola a todos, estoy haciendo un sistema en delphi, en el cual debo de registrar en una caja de texto un dato que es enviado a traves del puerto paralelo por un indicador de peso para basculas. Para ello necesito saber como recibir pulsaciones electricas (0,1) en delphi a traves del puerto paralelo y no se como hacerlo. le agradeceria mucho que me puedieran ayudar
  Respuesta:  Luis Felipe García Gutiérrez
pues navegando en la red me encotnré éste hilo que puede ser útil...

http://www.todopic.com.ar/foros/index.php?topic=12984.0

suerte y pulso!!

    Pregunta:  56507 - WINDOWS VISTA Y BDE
Autor:  Cesar Ruiz Gro.
Realice una aplicacion con Delphi 7, la cual accesa tablas Paradox. Creé un instalador para mi aplicación con la version 6 del InstallShiel para llevarme BDE. Lo he instalado en varias pc's con diferntes windows y no he tenido mayor problema. Sin embargo, a una persona que tiene un equipo con Windows Vista, se lo intentamos instalar, y nada, no marca error durante la instalación, crea bien mis carpetas, deja el ejecutable y todo en su lugar! Pero el BDE nunca lo instala? A alguien le ha pasado? a que se debe? cuál es la posible causa? Probe con otra aplicacion hecha en InstallShiel 4, y tampoco, sucede lo mismo! Gracias
  Respuesta:  Juan Fernández
A mi me pasó con otra aplicación en paradox y desactive una opción que trae el usuario del vista, es tema de configuración del usuario. en el panel de control usuarios, desactiva el control de usuarios.

saludos

    Pregunta:  56701 - SUPERPOSICIÓN DE IMÁGENES.
Autor:  Felip Cavall
Para empezar le pido que me disculpen porquè no se si tengo derecho a dirigirme a ustedes
Tengo dos cuestiones que le presento por si tienen alguna solución.
Estoy trabajando con Delphi VI.

1/Superpongo paulatinamente más de 10 bitmaps de 1000x700 que están en una matriz de imágenes, todas són transparentes y del mismo tamaño. Pretendo conseguir presentar un paisaje esquemático (tipo atlas) y los cambios que va sufriendo a lo largo de los milenios, allí donde hay un rio, ahora hay un lago y después se deseca y se llena de aluviones, por ejemplo.

Hasta aquí todo bién, se superponen correctamente y el paisaje va cambiando cada x segundos, pero...cada vez que se superpone una imagen a las otras se produce un pequeño salto, como un flash que hace visible, por un instante, la imagen base y que no queda demasiado bién.

No he sabido encontrar ningún componente que me permita hacer un fundido o un barrido que harian que el cambio/superposición de imagenes quedase más presentable

Tampoco he sabido crear el código que me permita mejorar cada presentación para que no sea brusca.

2/Como los cambios (de rio a lago) son procesos largos, quisiera tener un control del Floodfill (que me parece imposible) o a través de código poder llenar la parte correspondiente, de tal manera que pudiera determinar desde que punto se empieza a llenar el lago y hacer que lentamente se vaya haciendo más grande hasta unos límites ya marcados.

Muchas gracias
  Respuesta:  Felip Cavall
La primera pregunta ya está resuelta, solamente se tiene que poner

DoubleBuffered := True;

al formulario..

Era un problema de capacidad, no de programación.

Pero la segunda cuestión, la de disponer de un código parecido al Floodfill, aún no.

    Pregunta:  57318 - COMO IMPRIMIR EN UN PUERTO USB VIRTUAL
Autor:  Carlos Esteban Rebolledo Ulloa
Hola compañero, estoy realizadon un pequeño programita que tengo que imprimir un documento, lo estoy haciendo en Delphi 2007 y en LPT1 no tengo problemas, pero me en otra impresora de matriz de punto y es usb tengo e problema que no imprime.
que puedo hacer, necesito de tu ayuda.
saludos
Carlos Rebolledo
  Respuesta:  Pablo Rivas
Carlos. la forma mas facil y efectiva que encontre es la sig.

entra a las propiedades de la impresora usb, compartila (ej. "hplaser")
crear un archivo .bat con el block de notas y ponelo en el inicio
adentro de ese archivo escribi lo siguiente

net use lpt1: \NombredeTuPChplaser persistent:yes

y listo al iniciar la maquina ejecutara ese archivo y lo que hace es que todo lo que envies al puerto lpt1 se redireccione a tu impresora usb. tene en cuenta que si lo que queres imprimir es un archivo del tipo txt puede que tengas que predeterminar el procesador de impresion de tu impresora a text.

    Pregunta:  57356 - CARACTERES GRIEGOS (DELPHI-ACCESS 2000)
Autor:  Facundo Morosawa
Hola gente:

Tengo el siguiente problema...
No puedo ver correctamente los caracteres griegos de un campo memo de una tabla de Access 2000, pero si los caracteres griegos de un campo Text.
Que puedo hacer para verlos correctamente.
Aclaro que tengo caracteres griegos y texto en español en el campo memo.

Ejemplo:
En la db de access
CampoMemo = 'las proteinas α son...'
CampoText = 'Proteinas α'
Lo que me devuelve delphi:
CMemo = 'las proteinas a son...' //en lugar del α aparece una 'a'
CText = 'Proteinas α' //aparece OK!

Bueno aclaro que tengo los componentes TNT y demas...
Mi codigo es:

ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('SELECT Texto, Titulo FROM Manual WHERE Pagina = '+ IntToStr(aPage));
ADOQuery.Open;
ADOQuery.First;
{if Win32PlatformIsUnicode then
SetThreadLocale($00000408);} //si descomento esto veo los caracteres grigos pero chau acentos... osea es inutil!

delphi1:= ADOQuery.FieldByName('Texto').AsString; // .FieldValues['Texto'];
delphi2:= ADOQuery.FieldValues['Titulo'];
auxiliar.Caption:= delphi1 + ' -> ' + delphi2;


Espero me puedan ayudar...

Saludos.
  Respuesta:  Erwin Alejandro Perez Escobedo
Una sugerencia: codifica el texto que vas a colocar en el memo en como si fuera para un correo electronico, esto es, puedes codificarlo con UU, de esta manera nunca tienes caracteres especiales para almacenar en la BD, y al leer la informacion decodificas el texto.

En la biblioteca JEDI viene un codificador y un decodificador UU, asi como funciones para hacerlo sin colocar un componente.

Espero te sirva.

    Pregunta:  57385 - SIMULAR EL REFRESH DE QREPORT DE DELHI6 EN DELPHI4
Autor:  fede
Buen dia.

Necesito Simular el "refresh" de qreport de delhi6 en delphi4.
Les comento en detalle mi problema, estamos queriendo migrar la impresion de comprobantes que realizamos en crystal a qreport, el problema es que qreport utiliza la lista de impresoras existentes en la pc para saber dnd imprimir, pero en mi caso la aplicacion esta en un win 2003 server (cuando los usuario entran y salen se van moviendo los index de las impresoras),y necesito hacer un refresh constante de la lista de impresoras,en mis programas q estan sobre delphi6 ya lo tengo solucionado, pero para mi sorpresa en delphi 4 no contempla el dichoso refresh.. una ayudita..????

delphi 6
================
procedure TPrinter.Refresh;
begin
FreeFonts;
FreePrinters;
end;
================
  Respuesta:  fede
Una posible solucion que encontre para simular la funcion del refresh de
delphi 6 pero en delphi 4 es esta... y para mis propositos "sirve". Si alguien tiene alguna solucion mas elegante seria interezante.

function EligeImpresora( const Nombre_impresora : string) : integer;
var
Timpresora : Tprinter;
i: integer;
begin
result :=0;
Timpresora := TPrinter.Create;
Timpresora.Printers.SaveToFile('Impresoras_en_lista.txt');
for i:=0 to Timpresora.Printers.Count-1 do
begin
if UpperCase(trim(Timpresora.Printers.Strings[i])) =
UpperCase(trim(Nombre_impresora)) then
result:= i;
end;
Timpresora.Destroy;
Timpresora := nil;
end;

El eliminar la variable TImpresora (de tipo Tprinter) me permite refrescar
la lista de impresoras.

Muchas Gracias por la atencion.
fede.

    Pregunta:  57386 - COMO DECIDIR QUE BASE DE DATO USAR CON DELPHI
Autor:  Juan Mateluna
Llevo unos 15 años programando en Clipper, y he estado haciendo algunas cosas con Delphi, sin embargo en todos los cursos que he encontrado, no he visto uno dedicado exclusivamente a tratar solo el tema "que base de datos o tipo de archivos usar"?, "por qué"?, y lo más importante "Como se hace?". Firebird?, Advantage?, Sql?, Apollo?, Dbase?, mySql?, cuando Tablas sueltas, o cuando Base de Datos?, Archivos de Texto?, Binarios?, etc. tema base antes de comenzar a hacer el análisis de una solución
  Respuesta:  Juan Mateluna
Gracias... muchas personas bien intencionadas me recomiendan la solucion que ellos usan... pero no una comparativa de porque usarla versus la competencia.... numero de registros, tipo de servidor, forma de conectarse ( local, o internet ?) etc. porque SQL y no Oracle ?, porque Oracle y no Sybase, o tal vez Dbase, porqué si Paradox, porqué no Paradox ? etc...
  Respuesta:  Marco Luna
JUAN:

NO SE HASTA DONDE SABES DE BASES DE DATOS CON DELPHI, AL RESPECTO PUEDO DECIRTE DOS COSAS (OJALA SUPIERA MAS, PERO ES TODO LO QUE SE):
1.- PARA CONSTRUIR TU BASE DE DATOS TIENES QUE USAR EL DATABASE DESKTOP EN EL MENU FILE>NEW >TABLE, EN LA CAJA DE DIALOGO "TABLE TYPE" TE RECOMIENDO SELECCIONAR PARADOX, AL HACERLO SE ABRE OTRA CAJA DE DIALOGO EN DONDE YA DETERMINARAS, CONCRETAMENTE LOS CAMPOS QUE REQUIERES Y SUS CARACTERISTICAS.
ESTA AYUDA CONTINUARA, SOLO QUIERO SABER SI ES LO QUE NECESITAS PARA CONTINUAR CON EL PUNTO 2.

    Pregunta:  57398 - PROBLEMAS CON EL PREVIEW DEL QUIKREPORT DE DELPHI
Autor:  Juan Manuel Casillas Aranda
Hola que tal, miren soy nuevo en delphi manejo la version 5.0 y tengo problemas con el preview del quikreport 3.05 estandar, ya que quiero qu e la orientación de la hoja sea horizontal, ya le cambie la propiedad al reporte en page:orientation a poLandscape, pero a la hora de ejecutar el programa y mandar la vista previa del reporte, la muestra en vertical, si alguien sabe que me falta o como solucionarlo se los agradecereia mucho, hasta luego.
  Respuesta:  Nephtali Juarez
Prueba pasando ese parametro despues de crear el reporte pero antes del preview..
Esto es dentro de tu codigo..
No se que reportes estas usando pero prueba asi...

    Pregunta:  57424 - ORDENAR EN UN DBGRID CON DELPHI
Autor:  Jose Caceres
Como hacer para cuando haga clic en el titulo de la columna de un DBGrid se ordene por ese campo correspondiente
  Respuesta:  Elvia Pareja
Cuando haces click en el titulo de la columna tienes que ejecutar el mismo sql con el que llenas el grid pero lo ordenas por ese campo, y si llenas el grid directamente con la tabla tienes que crear indices en la tabla , con el click haces referencia a el indice que necesitas

|<  <<  58 59 60 61 62 63 64 65 66 67 68  >>  >|