PREGUNTAS CONTESTADAS - Delphi≤nguaje=

 Hay un total de 680 Preguntas.<<  >> 

    Pregunta:  61917 - SACAR EN UN FORMULARIO LA DIFERENCIA ENTRE DOS FECHAS
Autor:  MATIAS ALVAREZ
hola tengo un formulario con tres edits los dos primeros tienen dos fechas diferentes megustaria saber como puedo hacer para que me salga la diferencia en dias por el tercero.

muchas gracias por adelantado.
  Respuesta:  Luis Felipe García Gutiérrez
Probá con ésto:

DaysBetween
Function Gives the whole number of days between 2 dates DateUtils unit

function DaysBetween ( const ToDate, FromDate : TDateTime ) : Integer;


Description
The DaysBetween function subtracts the FromDate from the ToDate, returning the number whole days difference.

The time value of each date is taken account of - only whole 24 hour chunks are counted as whole days.

Notes
A whole day does not have to start at 00:00:00.


Related commands
DaysInAMonth Gives the number of days in a month
DaysInAYear Gives the number of days in a year
DaySpan Gives the fractional number of days between 2 dates


Example code : Find the days difference between two date+time values.
var
fromdate, toDate : TDateTime;

begin
// Set up our date variables
fromDate := EncodeDateTime(2000, 02, 26, 10, 0, 0, 0);
toDate := EncodeDateTime(2000, 02, 29, 9, 0, 0, 0);

// Display these dates and the days between them
ShowMessage('From date = '+DateTimeToStr(fromDate));
ShowMessage('To date = '+DateTimeToStr(toDate));
ShowMessage('Whole days difference = '+
IntToStr(DaysBetween(toDate, fromDate))+' days');
end;

Show full unit code
From date = 26/02/2000 10:00:00
To date = 29/02/2000 09:00:00
Whole days difference = 2 days

    Pregunta:  61921 - INSERCIÓN DE REGISTROS EN UN DBGRID
Autor:  Oscar Marín
Hola a todos!
Soy nuevo en estos foros y quisiera que alguién muy amable y capacitado en Delphi 7 me pueda colaborar.
Tengo un inconveniente cuando intento realizar una inserción a una DBGrid a partir de otras dos que son como mis filtros. Exactamente intento que cuando yo seleccione un registro dando clic en una fila de mi DBGrid1 (son talleres) y de otra en un DBGrid2 (usuarios) que actúan como parámetros, en la DBGrid3 se realice una inserción del taller que yo he seleccionado en el DBGrid1 asignar el "taller" del DBGrid2 al "usuario" en el DBGrid3, cuando yo de clic en un Button; y a su vez pueda deshacer un registro ingresado, es decir, hacer un DELETE a la tabla donde he ingresado el registro.

Estoy trabajando con BD en MySQl a través de los componentes de Zeos. Para ello uso: ZConnection, ZTable, TDataSource y ZQuery.

Muchas gracias de antemano.
  Respuesta:  Luis Felipe García Gutiérrez
lo que debes hacer en las opciones del DBGrid cambiar a True la propiedad dgRowSelect, y por cógigo verificar que se hagan las selecciones en los 2 BDGrid (talleres y usuarios); ésto se hace por código con la propiedad BDGrid.SelectedField.AsString es importante tener en cuenta que éste devuelve el primer dato del registro seleccionado y el String se debe cambiar por el tipo de dato que corresponda. Una vez verificadas la selecciones en ambos BDGrid, se efectúa el Insert en la tabla donde se almacenan las asignaciones y se ejecuta los Delete de las tablas Taller y Usuario; por último se actualizan las consultas que actualizan los BDGrid a los datos resultantes de la operación.

Suerte!!
  Respuesta:  Luis Felipe García Gutiérrez
La verdad mi experiencia en programación la tengo sobre Delphi 5, pero la lógica es la misma; además, los componentes trabajan básicamente de igual forma.

Lo que debes hacer es usar una propiedad del DBGrid que permite seleccionar un el primer dato del registro (.SelectedField.AsInteger), dependiendo del tipo del dato cambias el Integer por String o lo que aplique para el caso; previamente entre las opciones del DBGrid se debe cambiar la propiedad drRowSelected a true; y debes tener la precaución que el dato que toma el .SelectedField. es el PRIMERO del registro.

Luego de hacer ésto pensaríamos que debe haber un botón de asignación el cual antes de ejecutar los Query de Insert y Delete, debe verificar que se hayan hecho las respectivas selecciones en los DBGrid de Talleres y Usuarios, si éstas son satisfactorias, entonces hacer el Insert en una tabla adicional donde reposan todos los datos de las asignaciones a partir de la selección, eliminar los datos de las selecciones de los dos primeros DBGrid y por último refresacar todos los DBGrid, afin de mostrar la información actualizada.

Espero haber aclarado la duda, suerte!!!

    Pregunta:  62040 - LISTAR CONEXIONES DE INTERNET CONFIGURADAS Y MARCAR ALGUNA
Autor:  Alberto ..
Saludos,

Ya encontre como saber si estoy conectado a internet, tanto en XP,VIista,Win7, pero necesito saber el nombre de todas las conexiones que tengo configuradas en mi ordenador, y poder conectarme a internet mediante una.

Grax
  Respuesta:  Sebas
Seguramente en la libreria wininet tenés funciones para eso.

Sebas

    Pregunta:  62144 - CERRAR APLICACION SI NO ESTA EN USO
Autor:  Roberto Ortiz
Hola, lo k intento es cerrar la aplicacion si el usuario la dejo abierta y no ha trabajado en ella durante 30 minutos, no importa en k modulo se haya kedado.

gracias x la ayuda
  Respuesta:  Luis Felipe García Gutiérrez
Lo que podés intentar es insertar un Timer en el formulario principal y reiniciarlo cada vez que se ejecute alguna acción reiniciar el Timer; en el caso que no se ejecute ninguna acción cuando el timer alcance un tiempo determinado; se ejecutaría la siguiente línea de comando:

Application.Terminate;

y listo... suerte!!!

    Pregunta:  62999 - PROBLEMAS CON RUTA A BASE DE DATOS EN DELPHI
Autor:  Miguel Gutierrez
Hola, soy principiante en el trabajo con delphi 7y bases de datos en access. Quisiera saber como obtener la ruta a la base de datos de access en la pc donde en la que trabajo. En el AdoConection especifico la ruta de la BD y trabaja pero al llevar el proyecto a casa y abrir me da error de conexion.¿Como hacer para que detecte donde está la BD y asuma la nueva ruta para poder trabajar en cualquier pc?
  Respuesta:  Luis Felipe García Gutiérrez
Para que busque la ruta sistemáticamente la aplicación se debería implementar un algoritmo de busqueda de archivos, pero ésto generaría 2 inconvenientes. El primero: si el disco es muy grande, y/o el procesador muy lento la aplicación se tardará demasiado en buscar el archivo y el segundo que si tiene una copia de la BD en alguna parte del disco duro, la aplicación con qué creiterio la ignorará y continuará la búsqueda de la real, cómo hará para diferenciarlas?

Entonces la sugerencia es que en un archivo plano se cargue la ruta de la BD y éste se aloje en la misma parte desde donde se ejecute la aplicación, de forma tal que si cambia la ubicación de la BD cambia sólo sea necesario actualizar el archivo y no el código fuente.

Suerte!!
  Respuesta:  Luis Felipe García Gutiérrez
Lo que se podría hacer en éstos casos es utilizar algorítmos de búsqueda de archivos, pero esto deja dos inconvenientes; el primero es que demora demasiado la ejecución de la aplicación la primera vez que se ejecute, con el agrabante que si se tiene una copia de la BD en otro lugar del equipo la aplicación no tendrá forma de diferenciar cúal debe tomas.

Lo mas recomendable es tener la ruta de la BD en un archivo plano el cual debes apuntar siempre al mismo lugar, éste archivo se debería actualizar cada vez la BD cambie de ubicación, así la aplicación es incensible a éstos cambios y al momento de sufrir alguno no se requiere tocar código fuente.

Suerte y saludos.

    Pregunta:  63036 - PASAR DATOS DE UN DBGRID A OTRO BASE DE DATOS FIREBIRD
Autor:  jose perez
buenas tardes mi problema es que quiero hacer uno modulo de ventas en donde tengo dos dbgrid, en el primero ya hice la consulta y me esta funcionando bien es decir coloco en un edit el producto a vender y en el primer dbgrid me salen en articulo el hecho es que no se como hacer para que cuando yo seleccione el producto en esta dbgrid pase al segungo. utilizo delphi 6 + firebird 1.5 tengo el siguiente codigo en el edit1 para que me bustre la busqueda en el dbgird

procedure TVenta.Edit1Change(Sender: TObject);
VAR A: string;
begin
A := '%'+edit1.text+'%';
Tablas.adicionar2.Database:=Tablas.BaseDatos;
Tablas.adicionar2.Transaction:=Tablas.Transaccion;
DataS1.DataSet:= Tablas.adicionar2;
dbgrid1.DataSource:=DataS1;
tablas.adicionar2.sql.text:='select * from productos where nombre LIKE '''+A+'''';
Tablas.adicionar2.Active:= true;
edit1.SetFocus;
end;
  Respuesta:  Luis Felipe garcía Gutiérrez
En casos en los que los desarrollos apuntan a efectuar ventas se debe utilizar el concepto de Cesto (carrito de supermercado), es un estado del artículo vendido o una tabla en la que se agrupan los artículos a vender, mientras que el cliente termina de seleccionar los artículos que componen su compra; una vez se confirma la venta el estado debe cambiar a vendido o vaciar nuevamente la cesta y afectar los inventarios correspondientes; entonces, es con éstos estados o tablas (cesto) que se deben efectuar las consultas que llenan los BDGrid.

    Pregunta:  63374 - PROGRAMR UN TEMPORIZADOR EN UN PROGRAMA DE DELPHI
Autor:  michael jacome
mi pregunta va relacionada a como puedo programar un temporizador en delphi con el proposito de que al momento de que este temporizador se le termine el tiempo, el programa se cierre en automatico.
  Respuesta:  Luis Felipe García Gutiérrez
De la solapa System toma un objeto Timer y por programación se hace el resto... se programa para que decremente una variable la cual al llegar a cero se ejecute la sentencia "Application.Terminate;" y listo se cerró la aplicación.

Suerte!

    Pregunta:  64981 - UTILIZAR '/ ' EN UNA SQL
Autor:  Rolando Luis Martín
¿Cómo puedo utilizar el símbolo especial para Delphi ' / ' como parte de una consulta SQL?
Trato de hacer lo siguiente:

with SQL do begin
Clear;
Add('UPDATE Orden_Produccion');
Add('SET Destino = LTRIM(RTRIM(Id_OProduccion))'+ '/'+ 'LTRIM(RTRIM(Id_Almacen))'+ '/'+ 'LTRIM(RTRIM(RIGHT(Ano_OProduccion, 2)))');
Add('WHERE (OProduccion_Transf = 0)');
end;

pero el compilador me dice que utilizo división en caracteres

Gracias de antemano
  Respuesta:  danilo llerena
Hola, hay una solucion para eso, en la lines:

Add('SET Destino = LTRIM(RTRIM(Id_OProduccion))'+ '/'+ 'LTRIM(RTRIM(Id_Almacen))'+ '/'+ 'LTRIM(RTRIM(RIGHT(Ano_OProduccion, 2)))');

puedes reemplazar +"/"+ por + chr(47)+

    Pregunta:  66595 - CONSULTA SQL CON DELPHI (SUM)
Autor:  Patrick ET
Tengo dudas para resolver un problema, necesito sumar los valores de la columna de una tabla y siendo seleccionado por un valor capturado de un objeto dbtext. Me da error, este es el código que tengo, alguien me puede decir que falla aquí ?

C:= DBText3.Caption;
with ADOQuery4 do begin
with sql do begin
clear ;
Add('SELECT SUM(cantidad) AS SumaDecantidad, IdClientes FROM dbo.ventasfactura GROUP BY IdClientes');
Add('where dbo.ventasfactura.IdClientes ='+ QuotedStr(C));
  Respuesta:  Jorge Coyt
ya probaste de la siguiente manera?

'SELECT SUM(cantidad) AS SumaDecantidad, IdClientes FROM dbo.ventasfactura where dbo.ventasfactura.IdClientes ='+ QuotedStr(C) GROUP BY IdClientes

    Pregunta:  66716 - EL MISMO BOTON CIERRE EL FORM1 Y ABRA EL FORM2
Autor:  Manuel Alonso
Hola, alguien me puede decir como puedo hacer que el mismo boton cierre el form1 al mismo tiempo que abre el form2 en programacion delphi?
En concreto, es una tarea de un tutorial para la universidad y se trata de que al dar click en el boton previamente llamado "Siguiente" haga que se cierre el form1 y abra el form2, la idea es hacer una cadena de lo mismo hasta terminar el tutorial, cuando se le de click en "Siguiente" en el form2, cierre el form2 y abra el form3 y asi sucesivamente.

Saludos y Gracias
  Respuesta:  Felipe Eduardo Ortiz López
Simple:

procedure TTuForma.TuBotonClick(Sender: TObject);
begin
TuForma1.Close;
TuForma2.Create(Application.Mainform);
TuForma2.ShowModal;
end;

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