PREGUNTAS CONTESTADAS - Delphi≤nguaje=

 Hay un total de 680 Preguntas.<<  >> 

    Pregunta:  36997 - COMO RESTAR DOS FECHAS
Autor:  Jose Vicente Petro Ortega
Bueno mi pregunta es como puedo saber cuantos meses y dias hay entre dos dos fechas claro esta siendo una anterior a la otra como por ejemplo : 12/12/01 y 30/05/02 Aqui hay 5 meses y 18 dias.
grasias por la atencion prestada espero me puedan ayudar.
  Respuesta:  areds areds
no sean brutos!!!!!

Es tan simple como:

select (fec_inicio - fec_final) /30
from tabla
  Respuesta:  XANCOPINCA CANCOPINCA
yo lo hice para oracle
/**************************años**********************/
SELECT TRUNC((FEC_FIN-FEC_INICIO)/365) AÑOS FROM M4T_PERIODOS_COTIZADOS WHERE ID_EMPLEADO='1';
/*************************MESES***********************/
SELECT TRUNC((MOD((FEC_FIN-FEC_INICIO),365)/365)*12) MESES FROM M4T_PERIODOS_COTIZADOS WHERE ID_EMPLEADO='3513';
/*************************DIAS********************************/
SELECT TRUNC(MOD(((MOD((FEC_FIN-FEC_INICIO),365)/365)*12),1)*30) DIAS FROM M4T_PERIODOS_COTIZADOS WHERE ID_EMPLEADO='1';
/************SI DIAS EJEMPLO= 12.68 PONDRIA 13 OK?********************/
SELECT ROUND((MOD(((MOD(((FEC_FIN-FEC_INICIO)/365),1))*12),1)*30)) A FROM M4T_PERIODOS_COTIZADOS WHERE ID_EMPLEADO=1;
  Respuesta:  Luis Felipe García Gutiérrez
pues bien yo me vi enfrentado al mismo problema y la solución que le hallé al problema fue esta:

procedure TFrmPpal.MENaceChange(Sender: TObject);var
a,an,ah,m,mn,mh,d,dn,dh:integer;
hoy:string;
begin
hoy:=copy((DatetoStr(Now)),1,10);
if (StrtoDate(MENace.text)<(StrtoDate(hoy))) then
begin
ah:=StrtoInt(copy(hoy,7,4));
mh:=StrtoInt(copy(hoy,4,2));
dh:=StrtoInt(copy(hoy,1,2));
an:=StrtoInt(copy(MENace.text,7,4));
mn:=StrtoInt(copy(MENace.text,4,2));
dn:=StrtoInt(copy(MENace.text,1,2));
a:=ah-an;
if mh<mn then
begin
a:=a-1;
m:=12-mn+mh;
end
else
m:=mh-mn;
if dh<dn then
begin
if m>0 then
m:=m-1
else
begin
a:=a-1;
m:=11;
end;
d:=30-dn+dh;
end
else
d:=dh-dn;
messagedlg('Edad actual: '+InttoStr(a)+' años, '+InttoStr(m)+' meses y '+InttoStr(d)+' días.',mtInformation,[mbOK],0)
end;
end;

espero sea útil...
  Respuesta:  Jose Vicente Petro Ortega

Despues de haver formulado esta pregunta trate de encontrarle una solucion al problema y creo que por medio de las siguientes funciones y el procedimiento que muestro a continuacion y que diseñe yo mismo se puede resolver el interrogante :

Function NumeroDias(ParamDia : String): String;
Var
NumDiaAux1 : String;
I : Integer;
Begin
I := 1;
NumDiaAux1 := '';
While ParamDia[I] <> '/' Do
Begin
NumDiaAux1 := NumDiaAux1 + ParamDia[I];
Inc(I)
End;
NumeroDias := NumDiaAux1
End;

Function NumeroMes(ParamMes : String): String;
Var
NumMesAux1 : String;
I : Integer;
Begin
I := 1;
While ParamMes[I] <> '/' Do
Inc(I);
Inc(I);
NumMesAux1 := '';
While ParamMes[I] <> '/' Do
Begin
NumMesAux1 := NumMesAux1 + ParamMes[I];
Inc(I)
End;
NumeroMes := NumMesAux1
End;

Procedure RestaMeses(Mes1,Mes2 : TDateTime; Var Mes : Integer);
Var
MesAux1,MesAux2,
Fecha1,Fecha2 : String;
NMes1,NMes2,
NDia1,NDia2,
Meses,Dias : Integer;
Begin
MesAux1 := DateToStr(Mes1);
MesAux2 := DateToStr(Mes2);
Fecha1 := MesAux1[Length(MesAux1)-1]+ MesAux1[Length(MesAux1)];
Fecha2 := MesAux2[Length(MesAux2)-1]+ MesAux2[Length(MesAux2)];
NMes1 := StrToInt(NumeroMes(MesAux1));
NMes2 := StrToInt(NumeroMes(MesAux2));
NDia1 := StrToInt(NumeroDias(MesAux1));
NDia2 := StrToInt(NumeroDias(MesAux2));
If Fecha1 = Fecha2 Then
Begin
Dias := NDia2 - NDia1;
Meses := NMes2 - Nmes1;
If Dias <= 0 Then
Begin
Mes := Meses
End
Else
Begin
Mes := Meses + 1
End
End
Else
Begin
Meses := (12 - Nmes1) + NMes2;
If NDia2 > NDia1 Then
Begin
Mes := Meses + 1
End
Else
Begin
Mes := Meses
End
End
End;

Si alguien tiene alguna duda o no cree que esto funcione por favor escribanme.
  Respuesta:  Armando Montoya
hola, saludos desde irapuato, gto. mexico
puedes solucionar tu problema haciendo unas cuantas operaciones de suma y resta con variables obtenidas con la función DecodeDate, que te descompone una fecha en 3 variables: Año Mes y Dia, puedes descomponer ambas fechas y restar esas variables

DecodeDate(Fecha_A_Descomponer, vAno, vMes, vDia);

ej. 1

var
Ano1,Mes1,Dia1,Ano2,Mes2,Dia2:Word;
Begin
DecodeDate(DateTimePicker1.DateTime,Ano1,Mes1,Dia1);
DecodeDate(DateTimePicker2.DateTime,Ano2,Mes2,Dia2);
....

ej. 2
var
Ano,Mes,Dia:Word;
Begin
DecodeDate(Date(),Ano,Mes,Dia);
....

Si tienes dudas comentamelo, suerte...

    Pregunta:  37097 - DETENER APLICACION DURANTE UNOS SEGUNDOS
Autor:  nicolas paez
Necesito pausar mi aplicacion durante x segundos.
En otros lenguajes utilizaba la funcion delay (x), pero en Delphi no tengo idea. Probé con el delay, pero no funciona y en la ayudal de Delphi no existe.
Gracias.
  Respuesta:  Daniel Serrano
Hola te recomiendo que utilizes la función

Sleep(1000)

eso equivale a un segundo si quieres mas pues multiplicalo por la cantidad de segundos que quieras. Suerte!
  Respuesta:  Javier Navarro
Puedes usar el componente TTimer que se encuentra en la pestaña de System, en las propiedades lo dejas en Enabled := False y cuando quieras que empiece a contar el tiempo de espera lo pones enabled := True y en Interval = 1000 que es el equivalente a 1 segundo. Necesitas declarar una variable de tipo Integer (Sec) para que cuente 1 por cada segundo que transcurra:

procedure TForm1.Timer1Timer(Sender: TObject);
var
Sec : Integer;
begin
Sec := Sec + 1;
Label1.Caption := IntToStr(Sec);
end;

Este código está en el evento OnTimer y por cada segundo que transcurra lo va a desplegar en el Label1. Ya validaras en tu programa como manipulas la variable Sec. Espero te sirva

    Pregunta:  37302 - EJECUTAR *.PDF EN DELPHI
Autor:  ricardo soler
Necesito saber como ejecutar un documento en pdf desde mi aplicacion realizada en delphi 5
gracias por todo.
  Respuesta:  Luis Felipe García Gutiérrez
yo utilicé la solución propuesta y se me presentaba el problema que no podía cargar un segundo archivo, porque la memoria no soltaba el primero y nunca pude encotnrar la forma de salirme del dío...

Luego de mucho buscar logré buscar logré encontrar la siguiente solución que lo que hace es que abre el documento directamente sobre el pdf; para ello debe estar instalado el acrobar en la máquina, pero como es free no hay problema

ShowFicheroApp('ruta\archivo.pdf');

espero que sea de utilidad.

suerte!!!
  Respuesta:  alex
La manera mas sencilla de hacerlo, a mi juicio, es instalarte el acrobat reader 5.0, que sale gratis descargarlo desde adobe o te lo regalan con las galletas, e instalr el componente activex asociado. Esto lo ves en el menu Component/Import ActiveX y seleccionando el componente de acrobat. Asi podrá crear un objeto de acrobat para poder visualizar ficheros PDF.

Pdf1.LoadFile(FileListBox1.FileName);

    Pregunta:  37315 - INTERRUPCIONES NT
Autor:  Gustavo op
Hola
Estoy aplicando Interrupciones NT en mi programa por ejemplo
begin
asm
push ax
mov ax, 17h {...linea de Error en Windows nt...}
pop ax
end;
end;
para llamar a la impresora directamente. funciona bien pero con windows NT 4 este no ejecuta justo en la llamada a la interrupcion assembler.
Gracias por tu ayuda
  Respuesta:  Julio César Plascencia Hernández
Buenas tardes:

Investiga un poco acerca de la directiva platform acerca de en qué versiones de Delphi (en 6 y 7 está incluida, pero no recuerdo su implementación en versiones anteriores) está permitida. En base a eso, te recomiendo que la utilices para que en tu código puedas realizar funciones específicas de la plataforma donde se instale tu aplicación y luego te evites el que funcione en una edición de Windows pero en otras no. Cualquier duda al respecto o más detalles a tu problemática, por favor te confianza en comunicármelas.

Saludos.

    Pregunta:  37361 - LOS SHAPESHEET DE VISIO
Autor:  percy fernandez aparicio
Hola espero que alguien pueda ayudarme con mi problema y es que necesito un componente que dibuje una linea pero no en un canvas rectangular como lo hacen los shapes sino que el canvas del componente se debe ajustar a la linea que se dibujara con el fin acceder a un componente cuando otro este superpuesto al mismo a no ser por la linea dibujada tal como lo hacen las lineas de visio o de word cuando dos lineas se cruzan con el puntero podemos acceder a cualquiera lo cual no es el caso de los shapes de delphi.
Espero que alguien tenga conocimientos de este tipo de controles o tal vez tenga un componente que realize esto les agradezco mucho.
  Respuesta:  Horacio Daniel Iglesias
Creo que la solución a u problema está en el ejemplo de esta url:

http://www.efg2.com/Lab/Graphics/LineStretch.htm

Si no es así, debieras tratar con las API de windows (ej. CreateRoundRectRgn, CreatePolygonRgn, etc.) para poder crear ventanas no rectangulares.

Saludos

    Pregunta:  37377 - GRAFICAR CURVAS 3D EN DELPHI
Autor:  Nancy Bastidas
Hola.

Estoy realizando un trabajo para simular la producción de leche y necesito graficar los resultados de la simulación que son datos estadisticos con proyecciones en 3D, para lo cual e utilizando un algoritmo el B-spline e programado los modulos para graficari en Delphi, pero al algoritmo no dibuja la curva si alguien puede ayudarme gracias.
  Respuesta:  Julio César Plascencia Hernández
Buenas tardes:

Investiga acerca de OpenGL y DirectX para este tipo de graficación. Conoce un poco acerca de las API de estas tecnologías y luego intégralas a funciones en Delphi. Si tienes presupuesto en tu proyecto entonces puedes comprar controles VCL que pueden realizar tales tareas.

Saludos.

    Pregunta:  37497 - COMO INICIALIZAR UN ATRIBUTO DE AUTOINCREMENTO DE UNA TABLA
Autor:  Jose Vicente Petro Ortega
Bueno mi duda es la siguiente :
Yo tengo una tabla en paradox la cual tiene un atributo de tipo autoincremento(+) lo que yo quiero saber es si hay alguna manera de hacer que mi tabla inicialise ese atributo por ejemplo desde 100 y no desde el 1 como comiensa por defecto.
Gracias por la atencion prestada espero me puedan ayudar.
  Respuesta:  greg lete
lo unico quer tienes que hacer es una consulta SQL tomando en cuenta que trabajas con una DB Interbase tomando el MAX valor de tu campo correspondiente y haciendole un incremento desde codigo e insertandolo antes de dar de alta otro dato o registro.

Select * From cuentas where MAX numero

    Pregunta:  37797 - CÓMO EVALUAR ECUACIONES DIGITADAS EN UN EDIT?
Autor:  Diego Eduardo Vélez Guzmán
Hola, un saludo.

Necesito hacer un programa que me evalúe una ecuación que un usuario escribe en un componente Edit, algo así como indicar "Escriba su ecuación, el usuario la escribe y el programa devuelve el resultado de dicha operación. Las ecuaciones deben ser de una sola variable y pueden manejar funciones trigonométricas y exponenciales, algo como x^2 + cos(2*x)+ e^x.

Espero pronta respuesta, necesito hacer el mencionado programa lo más rápido posible.
  Respuesta:  luis fernando Gomez Solarte
Hay algo muy interesante en la siguiente direccion:
www.geocities.com/curvas_soft y ademas grafica la función
  Respuesta:  PEDRO MORALES URZUA
Debes bajar de la Delphi Super Page algun componentes de tipo PARSER.. con ellos podrias evaluar una sentencia literal con un resultado numerico.

si no encuentras enviame un mail y te envio uno que puedas utilizar.

saludos

    Pregunta:  38038 - COMO EJECUTAR PROCEDIMIENTOS ALMACENADOS...
Autor:  Alberto baron salgado
Cómo puedo ejecutar un procedimiento almacenado de oracle 7.0 desde Delphi 3.0; Se que hay un componente llamado storedProc pero no se utilizarlo porque hay que especificar unos parametros.....
De ante mano les agradesco la atension prestada.
  Respuesta:  [email protected]
Ya que no sé que tanto sabes de delphi haré un recuento de los pasos que debes seguir para realizar esta operación.

1. Asumo que tienes una conexión via BDE con oracle. Te recomiendo la conexión BDE y no ODBC ya que algunos drivers de odbc no soportan todas las funciones de oracle y el BDE es más robusto.

2. El procedimiento almacenado debe estar creado en la base de datos previamente, ya que desde delphi sólo lo invocamos.

Pon un componente StoredProc en la forma, llena las propiedades de Nombre de la base de datos, y busca en la lista del atributo storedProcName el nombre del procedimiento deseado.

al seleccionar el nombre del procedimiento se deben llenar automáticamente los atributos de Params, con los parametros del procedimiento, así que sería tan simple como asignar los parametros y ejecutarlo.

Si lo que deseas es asignar un valor al parametro pdrías hacer lo siguiente.

StoredProc1.ParamByName('NombreParametro1').AsString := Edit1.Text;
StoredProc1.ParamByName('NombreParametro2').AsInteger := StrToInt(Edit2.Text);

Si no te creó la lista de parametros, será necesario que la crees manualmente, dando doble click en el atributo params y adicionando los parametros correspondientes. Aunque no creo que esto ocurra.

    Pregunta:  38146 - APLICACION DE DELPHI CON BD SQL SERVER, ENVIARLA A LA WEB
Autor:  Abdias Vazquez
tengo unas aplicaciones en Delphi utilizando BD SQLserver,

EXISTE ALGUNA FORMA DE ponerla en una pagina WEB sin tener que desarrollarla ?

En caso de que exista una forma podrian indicarme como
  Respuesta:  Julio César Plascencia Hernández
Buenas tardes:

Utiliza servicios web XML para que tus aplicaciones realicen su propia funcionalidad y formateen la información que reúnan para luego publicarla en la web. Los componentes para SOAP para este tipo de tareas resultan bastante simples de utilizar. Espero te sirva la respuesta.

Saludos.

|<  <<  46 47 48 49 50 51 52 53 54 55 56  >>  >|