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
public
StartX, StartY, StartW, StartH: Integer;
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.