PREGUNTAS CONTESTADAS - Delphi

 Hay un total de 680 Preguntas.<<  >> 

    Pregunta:  57691 - TABLAS TDBF
Autor:  Gabriela Guerrero
Hola, tengo una tabla TDbf en delphi, necesito restructurarla y lo realizo con el siguiente código:
typeField := ftFloat;
for i := 0 to NewFieldDefs.Count -1 do
begin
if NewFieldDefs.Items[i].FieldName = 'Campo' then
begin
NewFieldDefs.Items[i].FieldName := 'C4';
NewFieldDefs.Items[i].FieldType := typeField;
NewFieldDefs.Items[i].Size := 11;
if typeField = ftFloat then
NewFieldDefs.Items[i].Precision := 2
end;
end;

curiosamente cuando cambio los decimales de la línea:
NewFieldDefs.Items[i].Precision := 2
exclusivamente con los Numericos o Float visualmente desaparece la información con el desktop, aunque al activar un DBgrid o abrir la tabla en Excel si realiza los cambios.
¿Qué me hace falta para poder verlos en el DeskTop?
gracias... gaby
[email protected]
  Respuesta:  Rodrigo Rueda
Hola soy nuevo en esto de delphi en verdad nuevo!!

pero trabaje algo similar cuando me estaba capacitando

no tienes que refrescar el query??

NewFieldDefs.refresh();

    Pregunta:  57752 - INSTALAR DELPHI SIN BDE
Autor:  Jordi Vidal Cambra
Hola a todos.

Tengo un pc que debido a otra aplicación ya tiene instalado el motor BDE. Ahora quiero instalar Delphi pero me aborta la instalación. Me reporta un error : "BDE is currently running. Install wil be aborted".

Tengo claro lo que ocurre pero no quiero tocar el BDE ya instalado para que funcionen los otros programas ya instalados.

¿ Como puedo instalar Delphi y dejar el BDE tal y como está antes de la instalación ?

Gracias.
  Respuesta:  sant0 santos
ese error es debido a que alguna aplicacion o programa esta usando el BDE. para solucionar ese problema solo tienes que cerrar todas las aplicaciones que estes utilizando luego volver a ejecutar el instalador de delphi
  Respuesta:  Danilo Llerena
Una posible opcion es instalacion personalizada, desmarcar todas las opciones de manejo de ODBC de instalador y no instalar los demos (codigo fuente inlcuido) ya que al hacerlo se instalara automaticamente la BDE

    Pregunta:  57894 - DELPHI, WEBBROWSER Y FORMULARIO MDI
Autor:  Fran
Buenos dias:

Tengo un proyecto en mdi y mi problema es que cuando en el formulario principal añado un webbrowser y muestro una ventana child el webbrowser se superpone a la ventana child, y no me deja verla, ni modificarla

Alguien me puede ayudar...
  Respuesta:  Nephtali Juarez
formStyle ponle normal. y frmventana_hija.bringtofront.

    Pregunta:  57923 - ¿EXISTE ALGUNA FUNCION EN DELPHI PARA POTENCIAS?
Autor:  Antonio Peña Lamorú
Bien!! Yo imparto Delphi7 sobre windows y necesito saber si existe alguna funcion para aplicaciones de consolas que me permita determinar la potencia enesima de un numero X. Se que yo mismo puedo contruir una funcion que se encargue de hacerlo, pero todavia no le he impartido ese conocimiento a mis alumnos asi que si alguien me puediera ayudar le estaria muy agradecido. Ah!!! y si no es mucho pedir y conoce alguna funcion que me haga lo mismo que el clrscr de Turbo Pascal tambien se lo agradeceria.

Saludos y gracias anticipadas
Tony.
  Respuesta:  Luis Felipe García Gutiérrez
pues tanto como existir no conozco, pero se puede hacer de forma sencilla:

procedura Potencia(num:integer; pot:integer):integer;
var
i:integer;
begin
result:=0;
for i:=1 to pot do
result:=result+(num*i);
end;

y para llamarla sería +- así:
Potencia(2,4);

espero sea útil!

    Pregunta:  58334 - APOLLOQUERYERROR! AYUDA POR FAVOR.
Autor:  ivan palencia
buenas, Actualmente trabajo para una empresa que usa delphi 5 y apolloVSL6.0, apolloSQL 6.0
al compilar y ejecutar una aplicacion me da un error: apolloQueryError.
y dice que la palabra "AND" de mi select es incorrecta. lo cual es falso. igual me pasa al usar alias con el "AS" para las tablas en el join.
Quisiera saber si debo activar algo para que funcione correctamente.
o que me falta en mi delphi.
(es una aplicacion creada por el trabajador anterior y funciona pero al compilarla y correrla con el delphi que yo instale da error "apolloQueryError")
les muestro el codigo que estoy usando.
error :
proyect prueba.exe raised exception class EApolloqueryError with syntax error [AND] -line 1 col 849

codigo:
ApolloQuery.SQL.Add('SELECT 0 AS UNIQUE_PAG, PCPEDPRO.CODIGO_ZON AS ZONA,5 AS GRUPO, PCPEDPRO.Z_CENCOS AS CENCOS,PCPEDPRO.FECHA_INGR AS FECHA,PCPEDPRO.NUMERO AS NUMERO,'+' FROM PCPEDPRO JOIN PCDETPED ON PCPEDPRO.UNIQUE_ID=PCDETPED.UNIQUE_ID JOIN PCPROVEE ON PCPROVEE.CODIGO=PCPEDPRO.CODIGO_PRO'+
' WHERE '+xx+' PCPEDPRO.Z_APROBADO=FALSE AND PCPEDPRO.FECHA_PROM<=CTOD("'+FechaI.Text+'")') ;
  Respuesta:  Nephtali Juarez
yo veo un error de sintaxis entre tu alias NUMERO y el FROM una coma de mas eso a simple vista aunque si las bd esta en inux si hay que ser muy especificos con las mayusculas y minusculas.

tambien no se que pones en la cadena despues del where XX

    Pregunta:  58576 - TABLA PARADOX FILTRADA PARA MOSTRAR EN UN QUICKREPORT
Autor:  Guillermo Müller
Hola, me gustaría saber como se hace para mostrar una tabla paradox filtrada en un quickreport y que solo muestre los datos filtrados y no toda la tabla. Estoy trabajando con Delphi 5. Muchas gracias
  Respuesta:  Leandro Ferrara
Todos los objetos TTable tienen una propiedad Filter, donde especificas una condición de filtrado. Y una propiedad Filtered:= True, para que se aplique el filtrado.

otra opción es usar un TQuery, y filtrar directamente desde la sql.

Por ejemplo. supongamos que usas un TTable con una tabla Clientes.

Table1.Close;
table1.Filter:= 'Edad > 30';
Table1.Filtered:= True;
Table1.open;

Ahora supongamos que usas un TQuery.

Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select * From Clientes Where Edad > 30');
Query1.open;

Espero te sirva,

saludos,

Leandro.
www.datadevelops.com.ar

    Pregunta:  58608 - NUMEROS A LETRAS
Autor:  said jovanny
tengo un pequeño problema.
Estoy relizando un sistema y necesito comvertir sierta cantidad de numeros a letras Ejemplo:

11 -----> Once
5 -------> Cinco
2000 --> Dos Mil
etc.
  Respuesta:  Luis Felipe García Gutiérrez
pues bien... dicen que no debes dar el pescado, sino enseñar a pescar; no obstante haré una pequeña ecepción y pondré el código de la función tal y como opera.
Function NumALetras(Valor:Variant):String;

const
vUni:array[1..15] of string=('UN','DOS','TRES','CUATRO','CINCO','SEIS','SIETE','OCHO','NUEVE','DIEZ','ONCE','DOCE','TRECE','CATORCE','QUINCE');
vDec:array[1..9] of string=('DIECI','VEINTI','TREINTA','CUARENTA','CINCUENTA','SESENTA','SETENTA','OCHENTA','NOVENTA');
vCen:array[1..9] of string=('CIENTO','DOSCIENTOS','TRESCIENTOS','CUATROCIENTOS','QUINIENTOS','SEISCIENTOS','SETECIENTOS','OCHOCIENTOS','NOVECIENTOS');
var
nume,unid,dece,cent,mil,millo,cien:integer;
Linea:string;
begin
if valor=100 then
Linea:=' CIEN '
else
begin
Linea:='';
millo:=0;
mil:=0;
cien:=0;
dece:=0;
nume:=valor;
if nume>999999 then
begin
millo:=valor div 1000000;
nume:=nume-(millo*1000000);
if millo>0 then
begin
if millo>99 then
begin
cien:=millo div 100;
linea:=linea+vCen[cien]+' ';
nume:=millo-(cien*100);
if nume>15 then
begin
dece:=nume div 10;
nume:=nume-(dece*10);
linea:=linea+vDec[dece];
if nume>0 then
begin
if dece>2 then
linea:=linea+' Y '+vUni[nume]
else
linea:=linea+vUni[nume];
end;
end
else
linea:=linea+' Y '+vUni[nume];
end
else
begin
if millo>15 then
begin
dece:=millo div 10;
nume:=millo-(dece*10);
linea:=linea+vDec[dece];
if nume>0 then
begin
if dece>2 then
linea:=linea+' Y '+vUni[nume]
else
linea:=linea+vUni[nume];
end;
end
else
begin
if dece>0 then
linea:=linea+' Y '+vUni[millo]
else
linea:=linea+vUni[millo];
end;
end;
linea:=linea+' MILLONES ';
nume:=(valor-(millo*1000000))div 1000;
end;
end;
if ((millo=0) and (valor>999)) then
nume:=nume div 1000;
if ((nume>99)and(valor>999)) then
begin
cien:=nume div 100;
nume:=nume-(cien*100);
linea:=linea+vCen[cien]+' ';
end;
if ((nume>15)and(valor>999))then
begin
dece:=nume div 10;
nume:=nume-(dece*10);
linea:=linea+vDec[dece];
if nume>0 then
begin
if dece>2 then
linea:=linea+' Y '+vUni[nume]
else
linea:=linea+vUni[nume];
end;
end
else
begin
if ((valor>999) and (nume>0)) then
begin
if dece>0 then
linea:=linea+' Y '+vUni[nume]
else
linea:=linea+vUni[nume];
end;
end;
if valor>999 then
linea:=linea+' MIL ';
dece:=0;
nume:=StrtoInt(copy(InttoStr(valor),length(InttoStr(valor))-2,3));
if nume>99 then
begin
cien:=nume div 100;
nume:=nume-(cien*100);
linea:=linea+vCen[cien]+' ';
end;
if nume>15 then
begin
dece:=nume div 10;
nume:=nume-(dece*10);
linea:=linea+vDec[dece];
if nume>0 then
begin
if dece>2 then
linea:=linea+' Y '+vUni[nume]
else
linea:=linea+vUni[nume];
end;
end
else
begin
if nume>0 then
begin
if dece>0 then
linea:=linea+' Y '+vUni[nume]
else
linea:=linea+vUni[nume];
end;
end;
end;
Result:=Linea;
end;

suerte y que le saquen gusto!

    Pregunta:  58768 - TTABLE BLOQUEADA ADO DELPHI 7
Autor:  Leandro Ferrara
Hola.

Tengo una aplicación con Delphi 7 que se conecta a SQL Server 2000.
Utilizo el modo ltOptimistic en las tablas, y isolationLevel = ilCursorStability.

Es una aplicación de base de datos, que está en red. Todos los usuarios pueden acceder y modificar los datos de cualquier tabla de forma normal.
El problema es que cuando un usuario abre una tabla para modificar datos, y utiliza BeginTrans, la tabla se bloquea y los demas usuarios no pueden ni siquiera leer los datos, hasta que no se haga un commit.

¿Alguien podría decirme qque está ocurriendo?

Muchísimas gracias.
  Respuesta:  Santiago Estupiñan Diaz
Ese problema se te soluciona si usas TADOdataset como elementos de conexion, las tablas tienen el bloqueo por default

demo:=Tadodataset.create(selft);
demo.comandtext:=´select * from tabla cualquier´;
demo.active:=true;

y usas este objeto como una tabla.

    Pregunta:  59058 - INGRESAR DATOS EN HOJA DE CALCULO DESDE DELPHI
Autor:  Jesus Valles Torres
Voy a explicar el problema, tengo una aplicación echa en Delphi 7 y uso tablas de Dbase, desde mi aplicación abro un libro de excel de esta manera:

ShellExecute(Handle,'open',StrPCopy(St,'Examenes.xls' ),nil,nil,SW_SHOW)

Hasta ahí todo va bien, tengo que decir que la hoja de calculo contiene todos los valores necesarios son mas de 1000 renglones.

Lo que me hace falta es en las celdas: B1, B2 , B3 y B4 respectivamente mandar los datos de nombre del paciente, del doctor, unidad hospitalaria y fecha de expedición, que son datos que ya tengo en la base de datos y que por lógica cambian en cada examen.

Si me sugieren utilizar los componentes que ya trae Delphi, el ExcelApplication y otros, díganme como se usan por que hasta el momento me encontrado solo como añadir valores a un libro nuevo, pero no a uno ya existente.

Espero haberme dado a entender y que aya alguien que me pueda ayudar se lo agradecería mucho.
  Respuesta:  Luis Felipe García Gutiérrez
Pues bien... el código que yo utilizo para exportar a excel, la uso específicamente para consultas. Primero declaro las siguientes variables:
Excel, Libro : Variant;
i:integer;

Después de ejecutar la consulta y verificar que no está vacía, inserto el siguiente código:

Excel:=CreateOleObject ('Excel.Application');
Excel.Visible:=True;
Excel.WorkBooks.Add(-4167);
Excel.WorkBooks[1].WorkSheets[1].Name:= 'Nombre de la hoja';
Libro:=Excel.WorkBooks[1].WorkSheets''Nombre de la hoja'];

//los nombre de los campos
Libro.Cells[1,1]:='Ítem';
Libro.Cells[1,2]:='Cuenta';
Libro.Cells[1,3]:='Operador';
Libro.Cells[1,4]:='Pagado';

//inicializo el contador que me ubica en la fila dentro del ciclo que me
//envía los datos a excel; inicia en 2 porque en el primero van los
//encabezados y me ubico al principio de los resultados de la consulta.
i:=2;
Query1.first;

//entro a un ciclo while mientras que la consulta no llegue a su fin y ubico
//en cada una de las celdas los valores que arroje la consulta a medida
//que la recorro .
while not Query1.EOF do
begin
Libro.Cells [i,1] := InttoStr(i-1);
Libro.Cells [i,2] := Query1.FieldbyName('campo1').Value;
Libro.Cells [i,3] := Query1.FieldbyName('campo2').Value;
Libro.Cells [i,4] := Query1.FieldbyName('campo3').Value;
inc(i);
Query1.Next;
end;

y listo!... mucha suerte!!!

    Pregunta:  59435 - IMPRIMIR TODOS LOS REGISTROS CON QREPORT
Autor:  Adriana Duran
Hola, estoy tratando de hacer un listado con qreport, sencillo con una solo tabla, conecto el dataset del quickreport con la tabla, coloco los titutol y en detail el qrdbtext tambien lo conecto con el dataset y el datafield , y cuando hago preview solo me aparece el primer registro de cada pagina. Como puedo hacer para que me aparezcan todos los registros uno abajo del otro hasta terminar la hoja y si hay mas que los continue en la hoja siguiente. Muchas gracias... Saludos
  Respuesta:  Adriana Duran
Ya encontré la solución me faltaba colocar un qband del tipo PageFooter que marca el final de hoja.

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