Hay un total de 680 Preguntas. | << >> |
Pregunta: | 30077 - COMO CERRAR LA VENTANA DE MSDOS DESPUES DE EJECUTADA UNA APL |
Autor: | Odalys Montout Camero |
Hola:
Mi problema es que ejecuto una aplicacion DOS (de FoxPro) desde Delphi, todo me funciona bien; pero cuando la aplicacion termina se queda abierta y activa la ventana de MSDOS y tengo que cerrarla manualmente. Mi pregunta es: como puedo cerrar esa ventana por programa, de forma que cuando la aplicacion termine regrese al menu de la aplicacion delphi. Para ejecutar la aplicacion Dos utilizo CreateProcess y cuando el proceso termina CloseHandle. Les agradezco ya cualquier ayuda. Gracias adelantadas. |
Respuesta: | PACO Govea |
La aplicacion de Fox, hazala ejecutable, despues utiliza la funcion de Delphi EXECUTEFILE, y asi se cierra y regresa al programa |
Pregunta: | 30244 - CONEXION DE SAP -DELPHI |
Autor: | Monika Rodríguez Reyes |
Voy a desarrollar una aplicacion con Delphi y tendrá interaacion con SAP pero no se como hacerlo y me super urge. Como puedo hacerlo?????
Gracias Atte.: Monika R. |
Respuesta: | Julio César Plascencia Hernández |
Buenas tardes:
Acerca de tu duda, para la versión de Delphi 4 se desarrollaron componentes de interacción con sap llamados SAPConnect, pero fue la única versión en que se realizó este desarrollo. Tengo entendido que SAP trae consigo librerías OLE y controles ActiveX, para las librerías OLE te recomiendo que las busques y leas detenidamente los método y propiedades que contiene, de forma que puedas desarrollar la conexión a SAP desde Delphi, además de las funcionalidades que requieras. Con los controles ActiveX, podrías ahorrarte cierto trabajo, instálalos en Delphi y realiza aplicaciones de prueba. Y recuerda que al tener hechas tus aplicaciones utilizando controles ActiveX debes distribuir con tu aplicación los archivos OCX. Si cualquiera de estos métodos de trabajo te resulta muy consumidor de tiempo, mi última sugerencia sería que buscaras exhaustivamente vía internet a algún fabricante de componentes VCL (o CLX) que realice lo que necesites con SAP. Espero te resulte de ayuda mi respuesta. Saludos |
Pregunta: | 30262 - CONTAR PAGS IMPRESAS DESDE X APLICACIóN USANDO DELPHI5 |
Autor: | Efraín Serna Gracia |
Cómo puedo hacer para saber, usando Delphi 5, cuántas páginas mandó a imprimir el usuario desde cualquier aplicación, ydistinguir entre una impresora y otra. |
Respuesta: | PEDRO MORALES URZUA |
con que estas imprimiendo? con QReport? si es asi, chequea el
siendo Reporte el TQuickRep Reporte.Prepare ; lblTotPag.Caption := IntToStr( Reporte.QRPrinter.PageCount ) ; el tema de la impresora... http://www.clubdelphi.com/vertruco.php?id=282 saludos |
Pregunta: | 30299 - CONTROLAR VOLUMEN EN DELPHI |
Autor: | Enrique Ortiz Herrera |
Hola Amigos de LWP
Quisiera saber si existe alguna forma de controlar el volumen de la tarjeta de sonido desde una aplicacion en Delphi 3, resulta que estoy desarrollando una aplicacion que me permite escuchar archivos Wav y/o MP3, pero no se como puedo controlar el volumen en la reproduccion. Mucho les agradeceria si me pudieran ayudar Saludos y de Antemano muchas Gracias. |
Respuesta: | Miguel Lucero |
Espero que esto te sirva
uses MMSystem; procedure SetVolume(const volL, volR: Word); var hWO: HWAVEOUT; waveF: TWAVEFORMATEX; vol: DWORD; begin // init TWAVEFORMATEX FillChar(waveF, SizeOf(waveF), 0); // open WaveMapper = std output of playsound waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0); vol := volL + volR shl 16; // set volume waveOutSetVolume(hWO, vol); waveOutClose(hWO); end; procedure TForm1.Button1Click(Sender: TObject); begin SetVolume(14000, 14000); end; {************************************************} {2.} {by Serhiy Perevoznyk} uses MMSystem; function GetVolumeControl(aMixer: HMixer; componentType, ctrlType: Longint; var mxc: TMixerControl): Boolean; var mxl: TMixerLine; mxlc: TMixerLineControls; rc: Longint; begin Result := False; FillChar(mxl, SizeOf(TMixerLine), 0); mxl.cbStruct := SizeOf(TMixerLine); mxl.dwComponentType := componentType; {Obtain a line corresponding to the component type} rc := mixerGetLineInfo(aMixer, @mxl, MIXER_GETLINEINFOF_COMPONENTTYPE); if rc = MMSYSERR_NOERROR then begin with mxlc do begin cbStruct := SizeOf(TMixerLineControls); dwLineID := mxl.dwLineID; dwControlType := ctrlType; cControls := 1; cbmxctrl := SizeOf(TMixerLine); pamxctrl := @mxc; pamxctrl^.cbStruct := SizeOf(TMixerControl); end; mixerGetLineControls(aMixer, @mxlc, MIXER_GETLINECONTROLSF_ONEBYTYPE); rc := mixerGetLineControls(aMixer, @mxlc, MIXER_GETLINECONTROLSF_ONEBYTYPE); Result := rc = MMSYSERR_NOERROR; end; end; function SetVolumeControl(aMixer: HMixer; mxc: TMixerControl; volume: Longint): Boolean; var mxcd: TMixerControlDetails; vol: TMixerControlDetails_Unsigned; rc: MMRESULT; begin FillChar(mxcd, SizeOf(mxcd), 0); with mxcd do begin cbStruct := SizeOf(TMixerControlDetails); dwControlID := mxc.dwControlID; cbDetails := SizeOf(TMixerControlDetails_Unsigned); paDetails := @vol; cMultipleItems := 0; cChannels := 1; end; vol.dwValue := volume; rc := mixerSetControlDetails(aMixer, @mxcd, MIXER_SETCONTROLDETAILSF_VALUE); Result := rc = MMSYSERR_NOERROR; end; function InitMixer: HMixer; var Err: MMRESULT; begin Err := mixerOpen(@Result, 0, 0, 0, 0); if Err <> MMSYSERR_NOERROR then Result := 0; end; // Example: procedure SetMasterVolumeToZero; var MyMixerHandle: HMixer; MyVolCtrl: TMixerControl; begin MyMixerHandle := InitMixer; if MyMixerHandle <> 0 then try FillChar(MyVolCtrl, SizeOf(MyVolCtrl), 0); if GetVolumeControl(MyMixerHandle, MIXERLINE_COMPONENTTYPE_DST_SPEAKERS, MIXERCONTROL_CONTROLTYPE_VOLUME, MyVolCtrl) then begin {The last parameter (0) here is the volume level} if SetVolumeControl(MyMixerHandle, MyVolCtrl, 0) then ShowMessage('Volume should now be set to zero'); end; finally mixerClose(MyMixerHandle); end; end; procedure TForm1.Button2Click(Sender: TObject); begin SetMasterVolumeToZero end; |
Pregunta: | 30475 - ANIMACIóN FLASH EN DELPHI |
Autor: | Ronal Valdivia Torrico |
saludos atentamente:
el problema que tengo es que estoy intentando insertar animación en mi proyecto (Delphi), para ello manejo la herramienta OleContainer pero al final cuando creo mi imagen (flash 5.0) no pasa nada no me recupera la imagen, existe otra herramienta que me permita reallizar ?? espero que puedan ayudarme despido atentamente |
Respuesta: | Armando Montoya |
Saludos desde irapuato, Gto. mexico, primero que nada felicidades por usar delphi veras que en esta ocacion no te decepcionara, lo que tienes que hacer es usar un archivo ocx del flash, el cual por lo general se encuentra en c:\windows\system\macromed\flash\swflash.ocx, este componente activex te permite visualizar animaciones flash en tus proyectos delphi. sigue los siguientes pasos:
1.-Click en el menu Component 2.-Despues click en el menu Import Activex Control 3.-Te aparece la ventana "Import Activex" con una lista de todos los componentes Activex que existen en tu pc. busca el que se llama "Shockwave Flash" y lo seleccionas. 4.-Despues click en "Install" 5.-Parece que te abre una ventana para compilar el paquete de componentes del usuario (dclusr.dpk) le das click en "Compile" 6.-Reinicia Delphi, si te pregunta si deseas grabar el dclusr.dpk le dices que si. 7.-Checa la paleta de la VCL "Activex" y ahi debe de estar, agrega este componente al form y listo, solo cambia sus propiedades a tu gusto esto es con delphi 5, si no puedes contactame por mail y con gusto te ayudo |
Pregunta: | 30538 - MATRIZ DE CONTROLES |
Autor: | Francisco Carabaño Salazar |
Saludos amigos de la lista. Soy un programador de Visual Basic que tiene deseos de cambiarse a Delphi por las limitaciones que encuentro en el primero. Sin embargo, hay algoi que he extrañado de Visual Basic en mis primeras incursiones al mundo de Delphi. En Visual Basic cuando se copia un control (una caja de texto, por ejemplo) y se trata de pegar el IDE pregunta si se desea crear una matriz de controles. Esto es un arreglo de controles de la misma naturaleza distinguidos, por supuesto, por un índice. Bueno, esta característica me ha permitido siempre escribir código centralizado para manejo de eventos. De hecho, el prototipo de llamada a los procedimientos que manejan los eventos incluye el índice del control como parámetro. De esta manera es fácil crear una estructura de selección múltiple que permite manejar cada control por separado, de acuerdo a su índice. Mi pregunta es: ¿es posible crear matrices de controles, o algo parecido, en Delphi, de manera de poder manejar los eventos también en forma centralizada?
Gracias de antemano. |
Respuesta: | Miguel Lucero |
Francisco
Tu problema es común a todos los que pasamos de vb a delphi pero con el tiempo vas a ver que la solución en delphi es más elegante y más avanzada (oop) En delphi podés compartir un mismo evento (por ejemplo onClick) entre varios controles y haciendo uso del objeto SENDER podés determinar que control causo el evento Para poder hacer uso de SENDER tenés que hacer un cast (transformación) al tipo de objeto que querés estudiar por ejemplo: if SENDER is TButton then if TButton(SENDER).Caption='&Algo' then ... Podés crear array de controles pero eso lo tenés que hacer en tiempo de ejecución creando un array de un tipo de objeto y luego asignando los eventos etc. pero no es aconsejable Espero haberte ayudado un poco. |
Pregunta: | 30664 - CREAR UN ALIAS PARA SQL SERVER DESDE DELPHI!!! |
Autor: | Carlos Avendaño Perez |
Saludos ... Estoy tratando de crear una base de datos de sql server 7 desde delphi y generar un alias para esta, todo en tiempo de ejecucion, si alguien puede ayudarme lo agradeceria mucho, gracias... |
Respuesta: | Ana Gabriela Covarrubias |
Carlos, los metodos del TSession te ayudaran a hacer esto, te doy una breve explicacion de ellos:
AddAlias, agrega el alias, ej: var parametros : TStringList; begin parametros := TStringList.Create; try parametros.add('Server name=' + miservidor); parametros.add('User name=sa'); ... //Agrega todos los parametros de conexion que necesites Session.AddAlias(NombreDeMiAlias, 'SQL', parametros); finally parametros.free; end; Si antes quisieras preguntar si existe el alias puedes utilizar el metodo isAlias(nombre del alias) el cual te regresa true o false de acuerdo a si existe o no el alias con el nombre especificado Suerte Ana Gabriela Covarrubias Sanchez http://www.smartware.com.mx |
Pregunta: | 30812 - EJECUCIóN DE APLICACIONES EXTERNAS |
Autor: | Rubén Malonda |
Hola amigos:
Me gustaría saber como controlar la sucesión de varias apliaciones externas con Delphi. Es decir, me gustaría poder detectar el estado de una aplicación que haya iniciado desde Delphi para que no comience la próxima hasta que haya finalizado la anterior. Gracias. Rubén |
Respuesta: | Lucas Colombo |
Te paso el codigo para ejecutar una aplicación externa y esperar a que esta termine. Espero que te sea util.
function Ejecutar(const AppName,Params: string): THandle; var ProcInfo: TProcessInformation; Info : TStartupInfo; begin FillChar(Info,SizeOf(Info),0); Info.cb := SizeOf(Info); Info.dwFlags := STARTF_USESHOWWINDOWS; Info.wShowWindows := SW_SHOWNORMAL; if not CreateProcess(nil,PChar(AppName + ' ' + Params) ,nil,nil,False,0,nil,nil,Info,ProcInfo) then raise Exception.Create('No se puede iniciar la aplicacion'); Result := ProcInfo.hProcess; end; procedure TwndMain.Esperar(H;THandle); begin while WaitForSingleObject(H,100) = WAIT_TIMEOUT do begin Application.ProcessMessages; if Application.Terminated then Break; end; end; Y para usarla: Esperar(Ejecutar(Nombre_de_la_aplicacion,parametros)); Suerte !!! |
Pregunta: | 31361 - AGRUPAR DATOS POR FECHAS |
Autor: | Ray Muñoz |
Un saludo a todos.
Soy un novato en Delphi. Mi pregunta es la siguiente: - Tengo una tabla en Paradox con los campos NumCliente (Numeric), FechaCompra (Date), CodArticulo (Numeric), CostoUnitario (Money), Importe (Money). En esta tabla manejo información de todo el año y quisiera una especie de filtro en un DBGrid que me pudiera mostrar los movimientos exclusivos de Enero, Febrero, etc. y de un número de cliente en particular. Es decir, deseo saber los movimientos del Cliente No. 01 (por ejemplo) durante el mes de enero, febrero, etc. A su vez, deseo un concentrado general de todos los movimientos de cada mes y en forma anual. Posteriormente, en un QuickReport, deseo poder imprimir los movimientos de un cliente en un mes en particular, el concentrado mensual y el concentrado anual. Ojalá pudieran ayudarme. Gracias por su atención. |
Respuesta: | Hugo O.H. |
hola ray,
voy a suponer que sabes algo de sql y que has manejado el componente TQuery (si no es asi, te recomiendo que lo hagas, porque son la base para aplicaciones de escritorio eficientes)... entonces, lo que necesitas es un TQuery asociado al dbgrid (tal como lo asocias con una tabla), y pasarla una consulta pareceida a: SELECT * FROM tutabla WHERE EXTRACT(MONTH FROM FechaCompra )=1 AND NumCliente = 123 lo que obtendrias aqui sería las compras del mes de enero del cliente 123... lo unico que necesitarias es activar la consulta y el dbgrid se encarga de actualizarse... puedes hacerlo mas elegante utilizando consultas parametrizadas: SELECT * FROM tutabla WHERE EXTRACT(MONTH FROM FechaCompra )=:mes AND NumCliente = :numcliente y utilizar el metodo paramByName del TQuery para asignarle valores en tiempo de ejecucion a los parametros :mes y :numcliente... y para generar el reporte pues simplemente utilizas el TQuery como data source del mismo y realizas el mismo procedimiento que con cualquier tabla... saludos... EOF |
Pregunta: | 31564 - COMPRIMIR UN FICHERO CON WINZIP |
Autor: | Fernando PM |
Hola, necesito comprimir un fichero con wipZip u otro programa
pero no se como hacer que mi programa ejecute el WinZip para comprimir un fichero que yo le doy Conozco la funcion esta : WinExec(PChar(\'C:\\Archivos de programa\\WinZip\\WINZIP32.EXE\'),SW_SHOWNORMAL); Pero solo me abre el WinZip y no me comprime el fichero o al menos no se como se hace. Por favor si teneis alguna solucion decirmelo, gracias Un saludo |
Respuesta: | Luis Felipe García Gutiérrez |
Pues te cuento huho ho que tu procedimiento no me funcionó, pasa por la sentencia e inclusive me gemera el mensaje de éxito de la operación pero por ninguna parte encuentro en la ruta que direccioné el archivo comprimido.
winexec(PChar('"C:\Archivos de programa\WinZip\WINZIP32.exe -min -a -ex -hs C:\BackUp\bd'+hoy+'.zip C:\BackUp\bd.mdb"'),SW_SHOWNORMAL); me vi en la necesidad de poner al final de la línea ,SW_SHOWNORMAL, proque no quería compilar por la falta del parámetro. Gracias!!! |
Respuesta: | hugo oh |
hola,
puedes utilizar lo siguiente: sComando := winzipdir+ ' -min -a -ex -hs ' + destino + ' "' + carpeta + '*.*"'; donde: winzipdir = nombre y path del winzip32.exe... destino = nombre del archivo que se va a generar... carpeta = nombre de la carpeta donde se encuentran los archivos que se quieren comprimir. o puede ser el archivo a comprimir, claro se tendria que omitir *.* algo asi como: "...winzip32.exe -min -a -ex -hs archivodestino.zip archivofuente.xxx" para un archivo... o "...winzip32.exe -min -a -ex -hs archivodestino.zip .\carpeta\*.*" para todos los archivos de la carpeta deseada... ojala y te sirva... ah!, por supuesto lo ejecutas con winexec(PChar(sComando)); aunque lo correcto es utilizar CreateProcess(...) saludos... EOF |
|< << 42 43 44 45 46 47 48 49 50 51 52 >> >| |