Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   No funciona la sección "Inserta trucos" (dejo aportación=) (https://www.clubdelphi.com/foros/showthread.php?t=80302)

AzidRain 17-09-2012 23:15:54

No funciona la sección "Inserta trucos" (dejo aportación=)
 
Quise agregar el siguiente snippet o trozo de código, para los puristas del leungaje, con el fin de que le sirva a alguién pero en la sección de trucos, al presionar el enlace correspondiente no aparece nada, por lo que lo dejo aquí a ver si algún mod puede echarnos la mano para que salga bien.

El código que pongo es harto simple y hasta trivial pero bastante útil. Sirve para crear o abrir una ventana hija centrada correctamente en el área de escritorio de la ventana padre.


Código Delphi [-]
Procedure CreateMDIChildNormal(Owner:TForm; BaseClass:TFormClass;  FormVar:TForm);
 var
 found:Boolean;
 i:integer;
 r:TRect;
 Placement: TWindowPlacement;
 ClWidth, ClHeight: Integer;


begin
  found := FAlse;
  GetWindowPlacement(Owner.ClientHandle, @Placement);
  ClWidth := Placement.rcNormalPosition.Right - Placement.rcNormalPosition.Left;
  ClHeight := Placement.rcNormalPosition.Bottom - Placement.rcNormalPosition.Top;
  // recorremos el array de ventanas hijas
  For i:= 0 To Owner.MDIChildCount-1 Do
    If Owner.MDIChildren[i] is BaseClass Then
    Begin
      Owner.MDIChildren[i].Show;
      found := True;
    End;
  if not found then
  Begin
     FormVar := BaseClass.Create(Owner);
     FormVar.Left := (ClWidth - FormVar.Width) div 2;
     FormVar.Top := (ClHeight - FormVar.Height) div 2;
    End;
 end;
 
end.

Ejemplo de llamada desde el form principal:
Código Delphi [-]
  CreateMDIChildNormal(Self, TMiForm,  FMiForm);

Se aprovecha el hecho de que por default Delphi crea una variable para instanaciar la clase que corresponda a nuestra form, pero nada impide que se use cualquier otra variable del mismo tipo. La función busca si ya esta instanciada la ventana hija y de ser así simplemente la muestra en primer plano en caso contrario la crea y la muestra. Partes del código son aportaciones de Román para que la ventana se centre en el área cliente de nuestra ventana padre.

Casimiro Notevi 17-09-2012 23:20:03

Gracias por el aporte :)

La sección de trucos necesita un repaso, a ver si sacamos tiempo :o

Jal9000 19-09-2012 01:18:35

La Sección Wiki no se carga
 
Hola de nuevo, Casimiro:

Te comunico que las secciones wiki y Ftp Club Delphi fallan. Utilizo Firefox 15.

En wiki me salta OpenDNS en su lugar.

En Ftp Club Delphi aparece una web con un anuncio de "Terawiki" y publicidad.

Saludos

Casimiro Notevi 19-09-2012 01:30:55

Hola, creo que te refieres al menú de inicio, el que está a la izquierda, arriba. Sí, hay que revisarlo, mientras puedes usar el menú que hay arriba, a la derecha, cuando entras en los foros.
Desde ahí puedes entrar en el 'FTP' (que realmente no es un ftp, sino un "repositorio").
El wiki hace tiempo que lo eliminamos, no aportaba algo demasiado importante, y creo que se repetía y diversificaba demasiado la información.

Gracias por el aviso :)

ecfisa 19-09-2012 07:08:49

Hola AzidRain.

Gracias por el aporte :)

Saludos.


La franja horaria es GMT +2. Ahora son las 14:21:50.

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