Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-08-2005
Antuan Antuan is offline
Miembro
 
Registrado: jul 2005
Ubicación: Madrid
Posts: 73
Poder: 19
Antuan Va por buen camino
Como se puede programar directamente???

Hola como sigo siendo novato me gustaria me dijerais la forma de programar Delphi directamente.
Ejemplo:
Si creo un formulario principal y otro con una base de datos de mis amigos
Desde el formulario principal llamo al formulario de amigos.
En el formulario amigos tengo una conexion a una base de datos, un table y todo lo necesario para que este formulario funcione.
Bien todo esto esta puesto en las propiedades y en los eventos.
Pero lo que me gustaria saber es lo siguiente:
No hacerlo de esa manera sino al presentar el formulario amigos abrir la base de datos y unir la table por programacion en vez de hacerlo atraves de las propiedades.
En que parte del formulario tengo que hacer esto o en que evento.
Y lo mismo al salir del formulario que se cierre la base de datos.
O si sabeis de algun ejemplo que trabaje una base de datos en un formulario, pero que lo haga todo por programacion.
Muchas gracia por la ayuda que me dais poco a poco, a ver si en algun momento dejo de ser novato. Aunque de momento no lo veo facil.
Responder Con Cita
  #2  
Antiguo 02-08-2005
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
Puedes usar el evento OnShow del formulario para hacer inicializaciones y el evento OnClose para terminar:

Código Delphi [-]
procedure TForm1.FormShow(Sender: TObject);}
begin
  Table1.Active := true;
  ...
end;

procedure TForm1.FormClose(Sender: TObject;  var Action: TCloseAction);
begin
  Table1.Active := false;
  ...
end;

// Saludos
Responder Con Cita
  #3  
Antiguo 02-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
El inspector de objetos es una ayuda en la programación, pero te lo puedes saltar, Es decir, todo lo que haces con el Inspector de objetos, traducelo a instrucciones y listo.

Mediante el Inspector de objetos enlazas el Datasource a una tabla, por código sería exactamente lo mismo:
Código Delphi [-]
  Grid.Datasource := DTSTable1;
Siendo DTSTAble1 un Datasource asociado a la tabla1.

Normalmente querrás hacerlo en el evento OnCreate del formulario y cerrar la base de datos en el OnClose de la ventana.

Advertencia: cuando le das a la X de la ventana, ésta no se cierra, se oculta o bien se minimiza. Para hacer que se cierre deberás poner en el evento OnClose la instrucción Action := cafree;

Para cerrar la base de datos, supongo que tienes un TDatabase en tu ventana, pues simplemente llama al método correcto : Database1.Close; que cerrará todas las tablas que esten asociados a él.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 02-08-2005
Antuan Antuan is offline
Miembro
 
Registrado: jul 2005
Ubicación: Madrid
Posts: 73
Poder: 19
Antuan Va por buen camino
Unhappy Algun Ejemplo para gestionar una base de datos

Muchas gracias.
Sabes de algun ejemplo que gestione una base de datos por programacion directa.
Por si alguien lo tiene y me lo quieres enviar al correo
enrialva@terra.es
Responder Con Cita
  #5  
Antiguo 02-08-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Siempre usaras la propiedades solo que depende de cuando las. Como dices al principio la sasignas en diseño y com ote gustaria es asignarlas en ejecucion.

Si las propiedades no va a cambiar nunca su valor entonces asignalas en diseño. De lo contrario asignalas en ejecucion. Pero siempre te va a referir a las mismas propiedades y procedimientos.

Ha puedes hacerlo en le evento o create onshow. O onactivate Depende que queiras hacer o que pase durante la ejecucion.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #6  
Antiguo 03-08-2005
Antuan Antuan is offline
Miembro
 
Registrado: jul 2005
Ubicación: Madrid
Posts: 73
Poder: 19
Antuan Va por buen camino
Mi idea

Mi idea es de coger los elementos visuales realmente necesario en una form.
Como por ejemplo los que el usuario final ve. (un boton), etc.
Y los no visuales definirlos en forma de programacion directa.
He visto varios cursos para aprender Delphi y todos te enseñan a crear un ejemplo, es como enseñar al que sabe.
Al final aprende a hacer el ejemplo pero no sabes nada de Delphi.
Por lo que me habeis comentado donde tengo que definir mis componente es en el Show.Form y en el Create.Form
Asi lo ire haciendo poco a poco y supongo que con los fallos ire aprendiendo.
Si que me gustaria que me dierais un consejo.
Donde puedo encontrar algun ejemplo simple de esta forma de programacion directa.
Mas que nada para saber en que parte de la form puedo defini un componente o abrir un fichero etc.
En mi modo de ver esta seria la forma mejor de aprender a programar Delphi.
Muchas gracias por vuestra ayuda.
Responder Con Cita
  #7  
Antiguo 03-08-2005
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 21
Descendents Va por buen camino
No se si lo que te estas refiriendo es esto por ejemplo
Código:
  Procedure CreateButton;
  var NewButton : TButton;
  begin
    NewButton := TButton.create(self);

    with NewButton do
      begin
        Name := 'Button1';

        Top := 30;
        Width := 100;
        Left := 5;

        Parent := self;

        Caption := 'Run-time button!';
      end;
  end;
__________________
La victoria tiene cien padres. La derrota es huérfana (Napoleón).
Responder Con Cita
  #8  
Antiguo 03-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
La lógica impera en todo asunto, Si tienes una caja de texto, no sería buena idea abrir un fichero, recorrerlo y despues cerrarlo en el evento OnKeyPress de esa caja de texto (Tedit). En este caso, abriríamos el fichero en el OnCreate del Form, lo guardamos en una variable temporal y cerramos el archivo; en el evento Onkeypress del TEdit, simplemente recorremos la variable temporal buscando lo que necesitemos.

Este ejemplo es obvio, en otros casos no se ve tan claramente, y menos cuando tenemos ordenadores de 3 o 4 Ghz, discos duros de 7.200 rpm y DMA que son capaces de abrir el fichero y recorrecorlo en un plis plas. De aquí sale la famosa frase "En el ordenador donde programo funciona bien, pero en el ordenador del cliente funciona muy lento".

El que mejor enseña es la experiencia, así que codifica, haz pruebas y pregunta cosas concretas, te iremos respondiendo.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 03-08-2005
Antuan Antuan is offline
Miembro
 
Registrado: jul 2005
Ubicación: Madrid
Posts: 73
Poder: 19
Antuan Va por buen camino
No es esto exactamente

No es eso exactamente lo que me he referido.
Es lo siguiente.
Los componentes esenciales del formulario como son las cajas de texto los botones los grid y mas componentes visibles esos por disemño.
y la apertura de una base de datos la union con el Grid o una table, las consultas SQL y demas esta por progamacion directa sin poner el componente en el formulario.
Esto es a lo que me referia.
Creo que esta seria la forma mas facil de aprender Delphi.
Lo que si queria es saber es en que parte del formulario he de poner esto.
---------------------------------
Recuerdo hace mucho tiempo que hice mis pinitos en Visual Basic y me cree una aplicacion que no acabe por no saber como seguir.
Fue una aplicacion en plan de prueba y apredizaje.
Y trataba de una base de datos con dos tablas una de clientes y otra de probeedores con un formulario principal y unos botones.
Con el boton Clientes llamaba al formulario clientes y este formulario tenia unas cajas de texto y un grid.
Y en el codigo de ese formulario tenia la apertura de la base de datos la asociacion de las cajas de texto a los campos de la base de datos y la consulta SQL.
Al pinchar en el formulario el boton clientes se abria el formulario cliente y me presentaba los datos de la tabla clientes.
----------------------------
Y mas o menos esto era lo que queria hacer con Delphi.
Lo que creo es que Delphi hay que poner todo esto en los eventos.
Y lo que no se es en que eventos hay que hacer eso.
Bueno ya me han explicado anteriormente en que eventos hay que ponerlo.
De todas formas he buscado ejemplos de esta forma de programacion y la verdad que no he visto nada.
Asi que lo que veo es que estoy muy equivocado en la forma de trabajar con Delphi.
Responder Con Cita
  #10  
Antiguo 03-08-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Existen muchas maneras de hacerlo. Fundamentalmente, requiere sentarse un rato, repirar hondo y calmarse .

Primero que todo: Separa acceso a datos de Interfaz grafica. Es la forma sana y organizada de trabajar.

Supongamos tienes un Form y alli pones un TDataSource, para hacer la conexion a los controles que se hace visualmente, a lo RAD.

Entonces, ya sea que sobreescribes el contructor o agregas un funcion de creacion o implementas un conector dentro del form, invocas al datamodule o la unit que tiene el acceso a datos y enlazas... Basicamente:

Código Delphi [-]
 
 //EL DM o unit de acceso a datos
 
 function CargarClientes:TDataSet
 begin
     //Creas el dataset de forma manual , enlazas la conexion, ejecutas el SQL o procedimiento almacenado, retornos el dataset abierto...
     result := Clientes;
 end;
 
 //El formulario que invoca
 
 procedure AbrirClientes
 var
   oForm : TForm1;
   Datos: TDataSet;
 begin
   Datos := CargarClientes();
 
   oForm := TForm1.Create(Application, Datos);
    try
       //Mostrar
    finally
       //Liberar
    end;
 end;
 //El formulario
 TForm1
    public 
        constructor Create(AOwner:TComponente;Datos:TDataSet)
        begin
             inherited Create(AOwner);
             Ds.dataset := Datos;
        end;

Al separar el acceso a datos 1)Centralizas el codigo (ie: Un solo unit tiene todo lo que toca la conexion de la BD, facilitando la migracion) 2) Simplificas el enlaces 3)Aislas la parte visual de la no visual
__________________
El malabarista.
Responder Con Cita
  #11  
Antiguo 04-08-2005
Antuan Antuan is offline
Miembro
 
Registrado: jul 2005
Ubicación: Madrid
Posts: 73
Poder: 19
Antuan Va por buen camino
Esto era a lo que me referia Mamcx

Esto era a lo que me queria referir y como bien dices Mamcx veo que no voy mal encaminado en el ejemplo que he puesto sobre lo que hice en Visual Basic. hace mucho tiempo.
He visto el ejemplo y como gran novato todavia lo maximo que he llegado es a crear una base de datos y ver todos los datos de la tabla.
Pero todo a base de diseño y usando las propiedades.
Nada de programacion.
Aun me queda mucho que aprender y de momento no llego a vuestra altura
He visto la estructura de codigo que me pones en el ejemplo y he cogido la idea.
Que es lo que yo pretendia.
Si no te rrobo demasiado tiempo, quizas con un ejemplo simple y completo del ejemplo que me pones de la base de datos de clientes o una base de datos de amigos me vendria muy bien.
Pues los ejemplos que es visto son todos a base de diseño y asi no se aprende.
De mi modo de ver son ejemplos hechos para las personas que saben y no para las que no saben como yo.
Entiendo que la casa no se hace por el tejado pero si se tienen unos buenos cimientos como los que tu me has comentado es lo mejor.
No quiero olvidar a los otros amigos que me ha dado sus consejos
Muchas gracias a todos
Asi que si teneis o tienes Mamcx un ejemplo y me lo quieres enviar a enrialva@terra.es
Atentamente
Antuan


He visitado la pagina que me recomiendas.
Responder Con Cita
Respuesta



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 10:46:09.


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