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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-09-2012
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
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.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
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
Mi aplicación muestra el "mensaje dejó funcionar" y se cierra Playwithfire OOP 12 31-07-2012 17:32:05
Seccion trucos no funciona fredo Varios 4 26-12-2007 19:15:22
error "explorador de windows dejo de funcionar" RONPABLO Windows 0 11-12-2007 01:03:50
Sección "En que se parece..." ContraVeneno Humor 14 02-08-2005 08:34:37


La franja horaria es GMT +2. Ahora son las 06:40:58.


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