Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mandar llamar a otro programa desde delphi7 (https://www.clubdelphi.com/foros/showthread.php?t=54713)

mar_a 28-03-2008 02:32:36

Mandar llamar a otro programa desde delphi7
 
Hola!!:)
Estoy haciendo un sistema en delphi7 (apenas comence a utilizar delphi) dicho sistema engloba varios departamentos de una empresa, y en algunos ya cuentan con un pequeño sistema dependiendo de lo que realizan ,y me pidieron que estos se abran desde el menu que tengo en el sistema pero no se como hacerlo espero que alguien de ustedes me pueda ayudar espero haberme explicado bien.

De ante mano muchas gracias :o

Black_Ocean 28-03-2008 02:53:09

Hola amigo,

Para llamar o ejecutar aplicaciones externas en Delphi tienes 2 métodos: ShellExecute y CreateProcess.

ShellExecute lo deberías usar cuando no vas a manipular sub-hilos que genere la aplicación externa que vas a ejecutar o cuando no necesitas manipular valores/resultados de aplicaciones de inicio, términto (end threat). Para lo que necesitas yo creo que este será suficiente.

Ejemplo:

Código Delphi [-]
uses
  ShellAPI;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Handle, 'Open', 'C:\Aplicacion.exe', nil, nil, SW_SHOWNORMAL);
end;

Esta función devuelve diversos valores para controlar alguna excepción como archivo no encontrado, no hay memoria para ejecutarlo, etc,

El método CreateProcess es para poder manipular la ejecución de la aplicación externa en cuanto a memoria se refiere, a sus subhilos que genere y en otros valores de ejecución y término, etc. En este caso, debes asignarle un inicio de ejecución de memoria con ZeroMemory antes de implementar CreateProcess en concreto, y darle otras propiedades, Hay un ejemplo en ClubDelphi de este simple procedimiento. Pero, para lo que necesitas, yo creo que con ShellExecute es suficiente.

Pero, por lo que he leído, para los sistemas actuales, debería implementarse CreateProcess como un hábito.

Saludos.

mar_a 31-03-2008 21:30:09

hola
 
black_ocean gracias por tu ayuda por cierto son chica jajaja muchas gracias de nuevo hasta luego bye

raciellc 08-09-2010 00:43:06

Ejecutar una cancion con shellExecute
 
Hola Amigos de foro, la duda que yo tengo es la siguiente...

como puedo ejecutar canciones con ese comando...


el reproductor de windows ya lo abro, pero solo hace eso, ahora como le haria para que me reprodusca la cancion con la cual la mando abrir...

Tengo una lista de canciones en un listbox desde ahi le doy doble click a la cancion y me bare el reproductos de windows media pero no reproduce nada, me podrian decir como hacerle?

Gracias...
Saludos...
Raciel

Casimiro Notevi 08-09-2010 00:53:08

Hola, bienvenido al clubdelphi, te aconsejo que leas nuestra guía de estilo, gracias.

En relación a tu pregunta, sería conveniente que pusieras algún trozo de código de cómo lo haces, así podremos ayudarte mejor.

raciellc 08-09-2010 01:02:51

Codigo de mi programa...
 
Tengo un ListBox, en el cual tengo cargada una lista de canciones, al darle doble clik a la cancion me arroja el win media player, pero no puedo reproducir nada, no se si me haga falta algo en el codigo o que pase...

este es mi codigo, espero puedan ayudarme...

procedure TFrmBuscaLaCancion.lbxPlayListClick(Sender: TObject);
begin

ShellExecute(Handle, 'open', 'C:\Archivos de programa\Windows Media Player\mplayer2.exe', nil, nil, 1);

le pongo al final el numero por ke no me acepta el nombre de los comandos...

ecfisa 08-09-2010 02:23:23

Hola.

Te falta indicarle el archivo a reproducir:
Código Delphi [-]
   ShellExecute(Handle,'open',
    'C:\Program Files\Windows Media Player\wmplayer.exe',
    PChar(ComboBox1.Text), nil, 1);

Por supuesto ComboBox1.Text deberá tener la ruta completa al archivo que deseas escuchar, o si no deberás concatenar la ruta al nombre de archivo:

Ejemplo:
Código Delphi [-]
 var
  Nombre: string;
begin
  Nombre:= 'C:\Canciones\' + ComboBox1.Text';
  PChar(Nombre)
 // o también
  PChar(Ruta + ComboBox1.Text)

Saludos. :)

raciellc 09-09-2010 03:04:12

Pasar Datos de Un ListBox A un Text Box...
 
Master tu aporte fue de gran ayuda para mi, kedo excelente...

la siguiente duda, es como paso unos datos de un listbox a un textbox....

Tengo un GridView al cual le doy doble click y me pasa los datos a un ListBox, Ahora kiero hacer lo mismo pero del listBox al Text box..

este es el codigo ke utilice para pasar del grid al list...
Código Delphi [-]
 
procedure TFrmBuscaLaCancion.grdCancionesDBTableView1CellDblClick(
  Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
begin
    lbxPlayList.Items.Add(IntToStr(DataModule1.sqlConsulta['PK_Id_No']) + ' - ' +DataModule1.sqlConsulta['DS_Cancion']) ;
end;
como les dije anteriormente soy novato en esto y pues me enrredeo, kisiera saber como hacer algo similar pero del listbox al textbox
para poder pasar unicamente la cadena de conexion al textBox...

Gracias...
Saludos.

ecfisa 09-09-2010 16:08:03

Hola raciellc.

Un TextBox es un campo de ingreso de texto y Delphi tiene muchos componentes para es fín.

¿ Podrías especificar a que componente te referís ?.


Saludos.:)

raciellc 09-09-2010 16:30:23

Pasar datos de un listbox a un textbox
 
Con gusto....

Ok lo unico que kiero hacer, es pasar el dato ke tengo en un list box a un textbox....

en el listbox, tengo una lista de Articulos, los cuales kiero ir pasando uno por uno al textbox dandole un click...
e hice algo como esto, pero no me funciona.

listbox.Item.Add(textBox1.text);

Pero no me funciona, Espero haberme explicado, y me puedan ayudar...
Gracias...
Saludos...

ecfisa 09-09-2010 17:21:48

Hola raciellc.

¿ De que tipo es el componente textBox1 ?


Saludos.

Caro 09-09-2010 17:23:10

Cita:

Empezado por raciellc (Mensaje 375859)
Ok lo unico que kiero hacer, es pasar el dato ke tengo en un list box a un textbox....

Hola raciellc, supongo que tu TextBox es un memo o un edit, para capturar el item actual, lo puedes hacer con la propiedad ItemIndex y hacer algo como esto:

Código Delphi [-]
 //a un memo
 Memo1.Lines.Add(ListBox1.Items[ListBox1.ItemIndex]);
 //a un edit
 Edit1.Text := ListBox1.Items[ListBox1.ItemIndex];

Otra cosita, si las preguntas no tienen relación con la pregunta inicial por favor abre un hilo nuevo, de esa forma recibiras mas ayuda.

Saluditos


La franja horaria es GMT +2. Ahora son las 20:29:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi