Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-01-2007
fasthorse fasthorse is offline
Miembro
 
Registrado: ene 2007
Posts: 90
Poder: 18
fasthorse Va por buen camino
TopenDialogs

Cuando creo en c++builder un TopenDialogs, a la hora de ejecutar el programa no me aparece, ¿por qué? ¿qué debo de hacer para que me aparezca?
Gracias.
Responder Con Cita
  #2  
Antiguo 14-01-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

El componente que mencionas es de tipo "no visual". Ahora bien, puedes utilizar el método "Execute" con que cuenta dicho componente para mostrar al usuario el diálogo de marras. La cosa es más o menos así en Delphi, y, en C++ Builder similar, salvando las diferencias de sintaxis de los lenguajes:

Código Delphi [-]
var
  dlg: TOpenDialog;
begin
  dlg := TOpenDialog.Create(Self);
  try
    if dlg.Execute then
    begin
      ShowMessage('Elegiste el archivo: ' + dlg.FileName);
    end;
  finally
    dlg.Free;
  end;
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 15-01-2007
fasthorse fasthorse is offline
Miembro
 
Registrado: ene 2007
Posts: 90
Poder: 18
fasthorse Va por buen camino
Hola, pero...¿dónde tengo que escribir ese código? es que en un Tbutton por ej, si lo pincho se me abre como su código para escribir, pero en este caso me sale como para abrir un archivo, es decir, la función que debe de hacer, y entonces no se donde ponerlo.
Gracias
Responder Con Cita
  #4  
Antiguo 15-01-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El código debes colocarlo desde donde quieras que el usuario abra el cuadro de diálogo. Por ejemplo, colocas un Button en el formulario y en su evento OnClick (doble clic sobre el botón) escribes el código de dec.

// Saludos
Responder Con Cita
  #5  
Antiguo 15-01-2007
fasthorse fasthorse is offline
Miembro
 
Registrado: ene 2007
Posts: 90
Poder: 18
fasthorse Va por buen camino
Hola, siento si soy pesada, pero es que no me aclaro,a ver yo quiero crear un TopenDialogs y se que es no visible para el usuario y quiero que lo sea. Para ello debo de escribir el código que me habéis puesto( bueno pero en c++builder) mi duda es que donde lo escribía... porque es que creo o al menos no se cómo, que el TopenDialogs no tiene la opción de escribir código cuando el usuario teclee el botón, como en un Tbottom, no?
Y digo bueno, pues creo un boton normal con Tbottom en vez de un TopenDialogs y escribo el código, pero ese código hace referencia al TopenDialogs...¿Qué haría entonces?? Creo que estoy un poco liada... y no con certeza si está bien todo lo que he dicho, si no es así aclararme y decidme como es por favor.
Gracias.
Saludos...
Responder Con Cita
  #6  
Antiguo 15-01-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

El componente "TOpenDialog" es los llamados "no visuales" porque no aparece en el formulario donde lo sitúas, así como aparecen otros componentes como "TEdit", "TButton", etc. Estos últimos los sitúas en un formulario y puedes verlos tanto en tiempo de diseño como en tiempo de ejecución de tu programa. Los componentes "no visuales" aparecen como una especie de "icono" en el formulario en tiempo de diseño y no aparecen en tiempo de ejecución.

Bien. Los componentes "no visuales", con todo y no aparecer en el formulario en tiempo de ejecución tienen su utilidad y un ejemplo puede ser el componente "TOpenDialog" del que venimos hablando. Este componente en concreto se utiliza para dar la posibilidad al usuario de seleccionar un archivo (o varios) utilizando el diálogo estándar de Windows para estos menesteres.

¿Cómo se utiliza este componente? Básicamente tienes que ajustar ciertas propiedades relativas a sus opciones y posibilidades antes de utilizarlo. A continuación ejecutar el método "Execute", que se encarga de todo: mostrando al usuario el diálogo estándar de que hablamos permitiéndole seleccionar uno o más archivos.

El método "Execute" es un una función que devolverá "True" o "False". En el primer caso significará que el usuario ha elegido un archivo, y en el segundo caso significará que el usuario ha "cancelado" el diálogo para elegir archivos, es decir, ha preferido no elegir ningún archivo, dejarlo para más tarde,... como lo quieras ver. El caso es que en caso de que el método "Execute" del componente "TOpenDialog" retorne "True" significa que puedes recurrir a la propiedad "FileName" del componente, que contendrá la ruta del archivo seleccionado por el usuario.

Ahora bien. ¿Dónde tienes que utilizar el método "Execute" del componente "TOpenDialog"? ¡Pues donde lo necesites! Puedes tener en el formulario una casilla, un componente "TEdit" en el que quieres que el usuario escriba la ruta de un archivo que luego utilizarás para lo que sea menester. Para ayudar al usuario puedes situar al lado de la casilla un botón ("TButton") y en el evento "OnClick" de este botón codificar las instrucciones para mostrar el componente "TOpenDialog" en acción.

Es decir:

Código Delphi [-]
procedure TForm1.Button1OnClick(Sender: TObject);
var
  dlg: TOpenDialog;
begin
  // Instanciamos el componente "TOpenDialog"
  dlg := TOpenDialog.Create(Self);
  try
    // E invocamos a su método "Execute", es decir, mostramos el
    // cuadro de diálogo para que el usuario pueda elegir un archivo
    if dlg.Execute then
    begin
      // Llegados aquí ("Execute" retornó "True) contamos con la ruta
      // del archivo seleccionado por el usuario: en la variable "FileName"
      ShowMessage('Elegiste el archivo: ' + dlg.FileName);
    end;
  finally
    // Liberamos la instancia del "TOpenDialog"
    dlg.Free;
  end;
end;

Como ves utilizamos el evento "OnClick" para crear una instancia del componente "TOpenDialog" que utilizamos a continuación. Se entiende que en nuestro formulario "Form1" no situamos ningún componente "TOpenDialog", puesto que estamos declarando una variable, instanciando la clase, etc., en el propio evento "OnClick" del botón de marras.

También podías haber situado en el formulario el componente "TOpenDialog", de manera que pudieras aprovecharte del Inspector de Objetos de Delphi para configurarlo, esto es, para asignar los valores que te interesen a las propiedades del componente. En este caso el código anterior podría reducirse a lo siguiente, puesto que usaríamos directamente la instancia del componente situado en tiempo de diseño en el formulario:

Código Delphi [-]
procedure TForm1.Button1OnClick(Sender: TObject);
begin
  // Invocamos a su método "Execute", es decir, mostramos el
  // cuadro de diálogo para que el usuario pueda elegir un archivo
  if openDialog1.Execute then
  begin
    // Llegados aquí ("Execute" retornó "True) contamos con la ruta
    // del archivo seleccionado por el usuario: en la variable "FileName"
    ShowMessage('Elegiste el archivo: ' + dlg.FileName);
  end;
end;

No se me ocurren más que decirte ahora mismo, porque tampoco quiero darle a esto demasiadas vueltas: verás que no las tiene en cuanto te hagas con "el truco" y no tardarás mucho, estoy seguro.

Aún así si quieres hacer algún comentario ya sabes dónde estamos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 16-01-2007
fasthorse fasthorse is offline
Miembro
 
Registrado: ene 2007
Posts: 90
Poder: 18
fasthorse Va por buen camino
ok, muchas gracias, ya tengo las cosas claras, lo entiendo, me voy a poner a hacerlo a ver si me sale algo.
Muchas gracias...
Un saludo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:38:42.


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
Copyright 1996-2007 Club Delphi