PDA

Ver la Versión Completa : Main Menu y Botones


feliz-58
14-09-2012, 02:35:20
Tengo 2 Botones en un formulario. Digamos que cada uno abre un txt, El caption del 1 se llama Informacion y el caption del 2 se llama Ayuda, ejemplo:

Boton 1 (Informacion):


procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ShellExecute (Handle, 'open', 'C:/prueba1.txt', nil, nil, SW_SHOWNORMAL);
end;


Boton 2(Ayuda):


procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ShellExecute (Handle, 'open', 'C:/prueba2.txt', nil, nil, SW_SHOWNORMAL);
end;


Agrege un MainMenu, en la primera opcion, Tengo Cambiar Ruta De informacion y En la seguna Tengo Cambiar ruta De Ayuda.

Lo que quiero hacer es que despues de haber complilado el ejecutable, por el MainMenu, poder cambiar la ruta de donde se encuentran los archivos, si antes se encontraban en ''C:/" Cambiarlo por ejemplo a ''D:/'' sin tener que volver a modificar el proyecto.


Seria un alivio Si me pudieran ayudar... :D

//Gracias

cancun
14-09-2012, 02:39:28
Hola


Y de que manera lo quieres cambiar? Se me ocurre que podrias usar un archivo .INI y si no existe lo creas usando la clase TIniFile (me parece) y allí puedes guardar la ruta, espero haber entendido tu pregunta.


Saludos

Caral
14-09-2012, 02:40:27
Hola
Hay muchas formas de hacerlo, una de ellas es usar un opendialog.
Saludos

feliz-58
14-09-2012, 02:55:18
No tengo ni idea de como, no soy muy experto,así que expresen sus teorías.

Me serían de gran ayuda.

//gracias amigos.

Caral
14-09-2012, 03:06:13
Hola
Un ejemplo muy sencillo:
Digamos que tienes un mainmenu en este tienes dos caption.
Digamos que son: uno y dos.
Pones una variable global en donde esta el tform aqui:
var
Form1: TForm1;
dato: String;
implementation
La variable dato tendra el dato (perdona la redundancia) de lo que necesitas, ahora ponemos en cado menu esto:

procedure TForm1.unoClick(Sender: TObject);
begin
dato := 'C:/';
end;

procedure TForm1.otro1Click(Sender: TObject);
begin
dato := 'D:/';
end;

end.

Ahora presionaremos los botones con tu codigo pero con la variable:
boton 1

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ShellExecute (Handle, 'open', +dato+'prueba1.txt', nil, nil, SW_SHOWNORMAL);
end;

boton 2
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ShellExecute (Handle, 'open', +dato+'prueba2.txt', nil, nil, SW_SHOWNORMAL);
end;
Saludos

feliz-58
14-09-2012, 03:13:40
Ok amigo, voy a probar, si me funciona te lo hago saber,muchas gracias.

//Saludos

Caral
14-09-2012, 03:50:51
Hola
Perdona la variable tiene que ser Pchar, asi:


var
Form1: TForm1;
dato: PChar;
implementation

Y usarlo asi:

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ShellExecute (Handle, 'open', PChar(dato+'prueba1.txt'), ' ', ' ', SW_SHOWNORMAL);
end;


procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ShellExecute (Handle, 'open', PChar(dato+'prueba2.txt'), ' ', ' ', SW_SHOWNORMAL);
end;
Saludos

feliz-58
14-09-2012, 04:05:49
Gracias, Funciono Perfectamente...

Estaba Analizando el anterior y me daba error y ya hiba a notificarte y me llego tu correo jaja...

Fue de mucha ayuda, Gracias amigo.

//Saludos:D

Caral
14-09-2012, 04:12:36
Hola
^\||/
Saludos

Gerson12
16-09-2012, 22:21:14
hola bueno espero esto tambien te pueda ayudar
puedes poner en un edit la direcion de el archivo bueno es algo muy simple pero ahora no tengo puesto el delphi para ver si te puedo ayudar
ShellExecute (Handle, 'open', Edit1.text, nil, nil, SW_SHOWNORMAL);