Ver Mensaje Individual
  #1  
Antiguo 11-05-2013
yevabas yevabas is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 42
Reputación: 0
yevabas Va por buen camino
Dejar siempre visible Form2 que se llama desde Form1

Buenas tardes y disculpen si el titulo no es muy claro, ya que no sabia como hacerme entender, pero voy a tratar de explicarles y de antemano les doy las gracias por su colaboración y tiempo

tengo la siguiente aplicación que me muestra la imagen del escritorio hasta que se cumpla una condición, y no deja hacer nada mas, cuando se cumple la condición se minimiza y se puede usar el pc normal, pero después de tanto tiempo vuelve y se activa y queda toda la pantalla de nuevo bloqueada con la imagen del escritorio.

Código Delphi [-]
unit pantalla;



interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, JvExControls, JvgDigits, StdCtrls,
  JvComponentBase, JvTFManager, JvTFAlarm;

type
  TForm1 = class(TForm)
    Tm1: TTimer;
    Button1: TButton;
    Tm2: TTimer;
    JvgDigits1: TJvgDigits;
    JvgDigits2: TJvgDigits;
    JvgDigits3: TJvgDigits;
    procedure FormCreate(Sender: TObject);
    procedure Tm1Timer(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure validar();
    procedure Button1Click(Sender: TObject);
    procedure Tm2Timer(Sender: TObject);

  private

    { Private declarations }
  public
    StartX, StartY, StartW, StartH: Integer;
    { Public declarations }
  end;

var
  Form1: TForm1;
  a,h,m,s,s1,b: Integer;
  var dato1,dato3,t,t1: string;
implementation



{$R *.dfm}

uses pantalla2;

procedure TForm1.FormCreate(Sender: TObject);
begin

  a:= 0;
  b:= 0;

  Tm1.Enabled := False;
  Tm2.Enabled := False;
  SwitchDesktop(CreateDesktop('ClubDelphi', nil, nil, 0, MAXIMUM_ALLOWED, nil));
  Sleep(3000);
  Button1.Click;

end;

procedure TForm1.Tm1Timer(Sender: TObject);
var hh,mm,ss: string;
begin

  if s=60 then
    begin
       s:=0;
       Inc(m);


       if m=60 then
        begin
         Inc(h);
         m:=0;
        end;
     end;

  if a = (s1) then
     begin
       a:= 0;
      Tm1.Enabled := False;
      SwitchDesktop(CreateDesktop('ClubDelphi', nil, nil, 0, MAXIMUM_ALLOWED, nil));

     end;


   inc(a);
   inc(s);

end;


procedure TForm1.validar();
begin
  Tm2.Enabled := False;
  t:= Copy(dato3,1,1);
  if t = 'B' then
   begin
     t1:= Copy(dato3,2,3);
     s1:=StrToInt(t1);
     SwitchDesktop(OpenDesktop('Default', 0, False, DESKTOP_SWITCHDESKTOP));
  


     Tm1.Enabled := True;
   end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     dato3:= 'B100';
     validar();
     
end;

procedure TForm1.Tm2Timer(Sender: TObject);

begin
   inc(b);
   if b = 8 then
     begin
      SwitchDesktop(OpenDesktop('Default', 0, False, DESKTOP_SWITCHDESKTOP));
      Close
     end;

end;

end.

tengo otro formulario (pantalla2) y quisiera activarlo para que siempre quede visible en la pantalla, o sea si abren Word quede mi pantalla (pantalla2) por encima, cuando mi aplicación principal este minimizada, en el otro formulario (pantalla2) coloco

Código Delphi [-]
procedure TPantalla2.FormCreate(Sender: TObject);
begin
   Clock.FormStyle := fsStayOnTop;
end;

pero la verdad no se como hacer el llamado de esta pantalla yo pensaba hacerlo en validar() despues de minimizar la pantalla principal, pero en realidad no se como llamarla pense usar

Código Delphi [-]
with TPantalla2.Create(Application) do
     try
      ShowModal;
     finally
      Free;
     end;

pero me genera el siguiente error apenas se minimiza mi aplicación

Código Delphi [-]
'cannot ceate form. No MDI Forms are currently active'. Process stopped

Entonces no se como hacer el llamado de este segundo formulario, bueno les dejo la inquietud y de nuevo muchas gracias por cualquier ayuda que me puedan brindar.
Responder Con Cita