Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-02-2018
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 513
Poder: 20
Neeruu Va por buen camino
Naftali, gracias...

Conoces alguna documentación donde se hable lo que estoy preguntando...

Ya mismo empezare a corregir el código de mi proyecto.... tengo para rato ...

Si sabes de algún material de lectura, bienvenido...

Saludos.
__________________
Saluda Atte Neeruu!!! :)
Responder Con Cita
  #2  
Antiguo 07-02-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.507
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Específicamente de esto no, pero en el FTP tienes bastantes manuales de Delphi. Algunos incunables como "La Cara Oculta de Delphi".
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 08-02-2018
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 835
Poder: 24
gatosoft Va camino a la fama
Buen día,

Personalmente estoy de acuerdo con lo expresado por Roman en el post #9 del hilo que enlazo aquí

Sin embargo hay una solucion que yo utilizo para evitar lidiar con los FreeAndNil, "releases" mal ubicados.

y es la siguiente:

1) Creo un Tform1 que es el MDIform y un tform2 que es el MDIChild
2) Elimino la variable automática que crea el Tform2 (form2), como sugiere ElKurgan
3) en el evento onclose del Tform2 agrego la linea: Action:= caFree;
4) Para efectos de la prueba agrego dos botones u opciones de menú en el form1.

a) el primer boton instancia formularios TForm2 sin asignarlos a variables (pues se liberarán con el Onclose.

Código Delphi [-]
procedure TForm1.NuevoFormulario1Click(Sender: TObject);
begin
  With Tform2.Create(Self) do
     Begin
       inc(contador);
       Caption:= IntTostr(contador);
       show;
     End;
end;

b) el segundo crea un formulario asignado a una única variable llamada MyFormX

Código Delphi [-]
procedure TForm1.formX1Click(Sender: TObject);
begin
  if not Assigned(MyFormX) then
     begin
       MyFormX:= TForm2.Create(Self);
       MyFormX.Show;
     end else
         MyFormX.BringToFront;
end;


PERO...!!! éste útlimo código solo funcionará una vez pues el Action:=caFree, libera la memoria pero la variable queda asignada por tanto Assigned(MyformX) solo será falso la primera vez...

entonces aqui utilizo un truco que me parece bastante seguro: Utilizo una variable de clase para indicar si el formulario está instanciado o no

Código Delphi [-]
unit Unit2;

type
  TForm2 = class(TForm)
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
    Class var EstoyOcupado: String;
  end;

y en el Form1 cambio el llamado al boton:
Código Delphi [-]
procedure TForm1.formX1Click(Sender: TObject);
begin
  if not Assigned(MyFormX) or (TForm2.EstoyOcupado <> 'SI') then
     begin
       MyFormX:= TForm2.Create(Self);
       TForm2.EstoyOcupado:='SI';
       MyFormX.Show;
     end else
         MyFormX.BringToFront;
end;


De ésta manera quedan asi los códigos

Form1:
Código Delphi [-]
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Nuevoform1: TMenuItem;
    NuevoFormulario1: TMenuItem;
    formX1: TMenuItem;
    procedure NuevoFormulario1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure formX1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    contador: Integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses Unit2;

Var MyFormX: TForm2;

procedure TForm1.FormCreate(Sender: TObject);
begin
  contador:=0;
end;

procedure TForm1.formX1Click(Sender: TObject);
begin
  if not Assigned(MyFormX) or (TForm2.EstoyOcupado <> 'SI') then
     begin
       MyFormX:= TForm2.Create(Self);
       TForm2.EstoyOcupado:='SI';
       MyFormX.Show;
     end else
         MyFormX.BringToFront;
end;

procedure TForm1.NuevoFormulario1Click(Sender: TObject);
begin
  With Tform2.Create(Self) do
     Begin
       inc(contador);
       Caption:= IntTostr(contador);
       show;
     End;
end;

end.

Form2:
Código Delphi [-]
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;

type
  TForm2 = class(TForm)
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
    Class var EstoyOcupado: String;
  end;

implementation

{$R *.dfm}

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  TForm2.EstoyOcupado:='';
  Action:= caFree;
end;

end.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
forma de programar no se si es la correcta ? gulder MySQL 4 05-04-2016 18:49:51
Liberar Tlist de forma correcta BDWONG Varios 3 01-11-2014 18:28:46
Forma correcta de conectar a la base.. linuxtin Conexión con bases de datos 4 19-07-2012 21:30:20
Crear formularios de forma dinamica istradlin Lazarus, FreePascal, Kylix, etc. 4 06-12-2007 16:30:40
Como destruir o liberar una forma maguib Varios 1 11-03-2005 20:39:02


La franja horaria es GMT +2. Ahora son las 18:06:57.


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