Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-09-2021
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Recordando y solicitando ayuda.

Buen día/tarde/noche, según aplique.

Recientemente he retomado Delphi y ObjectPASCAL en CodeTyphon, tratando de replicar lo que ya sabía (hace MUCHO TIEMPO) me puse a hacerle a mi esposa una aplicacioncita para manejar sus listas de asistencia (ella es maestra) usando PostgreSQL y CodeTyphon. Mis problemas son dos, esencialmente:
  1. conectar el DataModule a la aplicación DESDE LA CREACIÖN, algo que sabía hacer bastante bien.
  2. Llamar las pantallas y que dentro de éstas esté correctamente conectado el DataModule para evitar reconectarlo y así.

Les paso el código que estoy haciendo, solamente las partes esenciales.

El DataModule:
Código Delphi [-]
unit uDatos;

{$mode ObjFPC}{$H+}

interface

uses
  Classes, SysUtils, PQConnection, SQLDB, DB;

type

  { TDatos }

  TDatos = class(TDataModule)
    Conexion: TPQConnection;
    FuenteDatos: TDataSource;
    SQLDatos: TSQLQuery;
    Transaccion: TSQLTransaction;
    procedure DataModuleCreate(Sender: TObject);
    procedure DataModuleDestroy(Sender: TObject);
  private

  public

  end;

var
  Datos: TDatos;

implementation

{$R *.frm}

{ TDatos }

procedure TDatos.DataModuleCreate(Sender: TObject);
begin
  Conexion.Connected := True;
end;

procedure TDatos.DataModuleDestroy(Sender: TObject);
begin
  Conexion.Connected := False;
end;

end.

La pantalla principal:
Código Delphi [-]
unit uPrincipal;

{$mode objfpc}{$H+}

interface

uses
  uDatos, Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Menus;

type

  { TfrmPrincipal }

  TfrmPrincipal = class(TForm)
    imlImagenes: TImageList;
    mmuPegar: TMenuItem;
    mmuCortar: TMenuItem;
    mmuCopiar: TMenuItem;
    mmuCerrar: TMenuItem;
    mmuRegistroAlumnos: TMenuItem;
    mmuRegistroTutores: TMenuItem;
    mmuListaAsistencia: TMenuItem;
    mmuProcesos: TMenuItem;
    mmuVentana: TMenuItem;
    mmuReportes: TMenuItem;
    mmuArchivo: TMenuItem;
    mmuEditar: TMenuItem;
    mmuMenu: TMainMenu;
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure mmuCerrarClick(Sender: TObject);
  private

  public

  end;

var
  frmPrincipal: TfrmPrincipal;
  gDatos : TDataModule;

implementation

{$R *.frm}

{ TfrmPrincipal }  

procedure TfrmPrincipal.FormCreate(Sender: TObject);
begin
  gDatos := Datos.Create(Self);

{  if gDatos.Conexion.Connected then
     MessageDlg('BBDD conectada', mtInformation,[mbOk],0);}
end;

procedure TfrmPrincipal.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
{  gDatos.Conexion.Connected := False;
  CloseAction := caFree;}
end;

procedure TfrmPrincipal.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
  Accion : TCloseAction;
begin
//  CanClose := ;
  if MessageDlg('¿Desea salir de la aplicación?', mtConfirmation,[mbYes, mbNo],0) = mrYes then
     begin
       Accion := caFree;
       FormClose(Sender, Accion);
     end;
end;

procedure TfrmPrincipal.mmuCerrarClick(Sender: TObject);
begin
  Close;
end;

end.

Y el compilador del proyecto:
Código Delphi [-]
program SEPPuebla;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  {$IFDEF HASAMIGA}
  athreads,
  {$ENDIF}
  Interfaces, // this includes the CT adLCL widgetset
  Forms, uPrincipal, uDatos
  { you can add units after this };

{$R *.res}

begin
  RequireDerivedFormResource:=True;
  Application.Scaled:=True;
  Application.Initialize;
  Application.CreateForm(TfrmPrincipal, frmPrincipal);
  Application.Run;
end.

Si tuviesen algún comentario o indicación, con todo gusto lo implememento y les comento qué sucede.

¡Saludos!
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco

Última edición por Casimiro Notevi fecha: 01-09-2021 a las 19:19:45.
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ampliando las características XML, solicitando apoyo de los que saben del tema. Al González [GH Freebrary] 1 08-08-2014 20:49:57
solicitando padrino FGarcia La Taberna 4 23-08-2007 22:40:18
Recordando Malvinas casacham La Taberna 33 09-05-2007 05:16:53
Recordando... D-MO Humor 0 17-05-2006 21:24:10
ayuda con strtofloat, ayuda punto flotante TURING Varios 5 30-04-2004 08:03:59


La franja horaria es GMT +2. Ahora son las 17:52:07.


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