PDA

Ver la Versión Completa : No funciona la sección "Inserta trucos" (dejo aportación=)


AzidRain
17-09-2012, 23:15:54
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.



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:

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