desarrollosconsejeria/adtos-server/1.7-0/adtos/aulas.pas @ 23a384b9
23a384b9 | Elisa | {
|
|
Adtos 1.0 Software de gestión de Aulas Tecnológicas
|
|||
Programación: Manuel Narváez Martínez <mnarvaez007@gmail.com>
|
|||
Diseño gráfico: Ana María Zamora Moreno
|
|||
Desarrollado con Lazarus 0.9.26
|
|||
This program is free software; you can redistribute it and/or modify
|
|||
it under the terms of the GNU General Public License as published by
|
|||
the Free Software Foundation; either version 2 of the License, or
|
|||
(at your option) any later version.
|
|||
This program is distributed in the hope that it will be useful,
|
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|||
GNU General Public License for more details.
|
|||
You should have received a copy of the GNU General Public License
|
|||
along with this program; if not, write to the Free Software
|
|||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|||
}
|
|||
unit aulas;
|
|||
{$mode objfpc}{$H+}
|
|||
interface
|
|||
uses
|
|||
globales,globales1,textomensajes,Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
|||
StdCtrls, Buttons, Process,cldetectarequposalumnos, Grids,HTTPDefs;
|
|||
type
|
|||
{ TfrmEquiposAulas }
|
|||
TfrmEquiposAulas = class(TForm)
|
|||
btnSalir: TButton;
|
|||
imgIco: TImage;
|
|||
imlEncender: TImageList;
|
|||
imgF: TImage;
|
|||
Label1: TLabel;
|
|||
Label2: TLabel;
|
|||
sgEquiposAlu: TStringGrid;
|
|||
procedure btnSalirClick(Sender: TObject);
|
|||
procedure FormActivate(Sender: TObject);
|
|||
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
|||
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
|||
procedure FormCreate(Sender: TObject);
|
|||
private
|
|||
procedure AsignarImagen(numero:integer;viendopro:boolean);
|
|||
procedure cambiarImagenBoton(numequ:integer;viendopro:Boolean);
|
|||
procedure CrearEtiquetasOr();
|
|||
procedure CrearOrdenadores();
|
|||
procedure MostrarPortatiles();
|
|||
procedure muestraEquiposAula(equipos:String);
|
|||
procedure OrdConclic(Sender: TObject);
|
|||
{ private declarations }
|
|||
public
|
|||
{ public declarations }
|
|||
end;
|
|||
var
|
|||
frmEquiposAulas: TfrmEquiposAulas;
|
|||
BotonPulsado: Array [0..69] of Boolean;
|
|||
OrdCon:array[0..69] of TImage;
|
|||
lblOrd:array[0..69] of Tlabel;
|
|||
mihilo:ThrDetectarEquiposAlumnos;
|
|||
implementation
|
|||
uses inicio;
|
|||
var
|
|||
f_numord:integer;
|
|||
procedure TfrmEquiposAulas.OrdConclic(Sender: TObject);
|
|||
Const
|
|||
EQUIPOS_ACTIVOS:String='equipos_aula';
|
|||
var
|
|||
orden:string;
|
|||
estado:Boolean;
|
|||
begin
|
|||
f_numord:=(sender as Timage).Tag;
|
|||
if (not (equipoServidorAula[f_numord].EstadoActivadEquipo in [eUsuario,eEncendido])) then
|
|||
begin
|
|||
mensaje(MEN_NO_USUARIO,aceptar);
|
|||
exit;
|
|||
end;
|
|||
try
|
|||
estado:= BotonPulsado[f_numord];
|
|||
cambiarImagenBoton(f_numord, BotonPulsado[f_numord]);
|
|||
if estado then exit;
|
|||
enabled:=false;
|
|||
orden:=HTTPEncode(EQUIPOS_ACTIVOS);
|
|||
orden:= 'hallarProcesosActivos ' + orden + ' X' ;
|
|||
with ThrDetectarEquiposAlumnos.Create(equipoServidorAula[f_numord].IP,orden) do
|
|||
begin
|
|||
OnDetectarEquipos:=@muestraEquiposAula;
|
|||
resume;
|
|||
end;
|
|||
except
|
|||
////writeln('Error al realizar consulta');
|
|||
enabled:=true;
|
|||
end
|
|||
end;
|
|||
procedure TfrmEquiposAulas.cambiarImagenBoton(numequ:integer;viendopro:Boolean);
|
|||
var
|
|||
i :integer;
|
|||
miproceso:boolean;
|
|||
begin
|
|||
miproceso:= not viendopro;
|
|||
for i:=0 to g_num_servidores_aula -1 do
|
|||
begin
|
|||
BotonPulsado[i]:=false;
|
|||
AsignarImagen(i,BotonPulsado[i])
|
|||
end;
|
|||
BotonPulsado[numequ]:=miproceso;
|
|||
AsignarImagen(numequ,BotonPulsado[numequ])
|
|||
end;
|
|||
procedure TfrmEquiposAulas.CrearOrdenadores();
|
|||
var
|
|||
i:integer;
|
|||
begin
|
|||
for i:= low(ordcon) to high(ordcon) do
|
|||
begin
|
|||
ordcon[i]:=Timage.Create(self);
|
|||
with ordcon[i] do
|
|||
begin
|
|||
tag:=i;
|
|||
Visible:=false;
|
|||
Stretch:=true;
|
|||
if i<g_num_servidores_aula then
|
|||
AsignarImagen(i,false);
|
|||
onclick:=@ordconclic;
|
|||
Cursor:=crhandpoint;
|
|||
Parent:=self;
|
|||
end;
|
|||
BotonPulsado[i]:=false;
|
|||
end;
|
|||
end;
|
|||
procedure TfrmEquiposAulas.AsignarImagen(numero:integer;viendopro:boolean);
|
|||
var
|
|||
imgNum:integer;
|
|||
begin
|
|||
imgNum:=0;
|
|||
OrdCon[numero].enabled:=false;
|
|||
ordCon[numero].Cursor:=crArrow;
|
|||
if (equipoServidorAula[numero].EstadoActivadEquipo = eAveriado) then
|
|||
imgNum:=0
|
|||
else if (equipoServidorAula[numero].EstadoActivadEquipo in[ eApagado, eEncendiendo, eApagando]) then
|
|||
imgNum:=1
|
|||
else
|
|||
begin
|
|||
if viendopro then imgNum:=3 else imgNum:=2;
|
|||
OrdCon[numero].enabled:=true;
|
|||
ordCon[numero].Cursor:=crHandPoint;
|
|||
end;
|
|||
imlEncender.getBitmap(imgNum,ordCon[numero].picture.Bitmap);
|
|||
end;
|
|||
procedure TfrmEquiposAulas.CrearEtiquetasOr();
|
|||
var
|
|||
i:integer;
|
|||
begin
|
|||
for i:= low(lblOrd) to high(lblOrd) do
|
|||
begin
|
|||
lblOrd[i]:=Tlabel.Create(self);
|
|||
with lblOrd[i] do
|
|||
begin
|
|||
tag:=i;
|
|||
Color:=clwhite;
|
|||
transparent:=true;
|
|||
autosize:=false;
|
|||
alignment:=tacenter;
|
|||
font.Name:='Sans';
|
|||
font.Size:=6;
|
|||
layout:=tlcenter;
|
|||
Visible:=false;
|
|||
if i< g_num_servidores_aula then
|
|||
begin
|
|||
Enabled:=equipoServidorAula[i].EstadoActivadEquipo <>eAveriado;
|
|||
caption:=equipoServidorAula[i].mihost;
|
|||
end;
|
|||
Cursor:=crarrow;
|
|||
Parent:=self;
|
|||
end;
|
|||
end
|
|||
end;
|
|||
procedure TfrmEquiposAulas.btnSalirClick(Sender: TObject);
|
|||
begin
|
|||
close;
|
|||
end;
|
|||
procedure TfrmEquiposAulas.FormActivate(Sender: TObject);
|
|||
begin
|
|||
if frmMain.Visible then frmMain.hide;
|
|||
end;
|
|||
procedure TfrmEquiposAulas.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
|||
begin
|
|||
CloseAction:=cafree;
|
|||
end;
|
|||
procedure TfrmEquiposAulas.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
|||
begin
|
|||
if mensaje('¿Deseas salir de esta zona?',sino)=2 then
|
|||
canclose:=false
|
|||
else
|
|||
begin
|
|||
frmMain.show;
|
|||
hide;
|
|||
end;
|
|||
end;
|
|||
procedure TfrmEquiposAulas.FormCreate(Sender: TObject);
|
|||
begin
|
|||
top:=13;left:=(screen.Width-width)div 2;
|
|||
CrearOrdenadores;
|
|||
CrearEtiquetasOr;
|
|||
MostrarPortatiles()
|
|||
end;
|
|||
procedure TfrmEquiposAulas.MostrarPortatiles();
|
|||
var
|
|||
tor,wo,ho,lb,tb :integer;
|
|||
spt,i,numsep,numfilas:integer;
|
|||
begin
|
|||
wo:=g_Distribuciones[g_TipoAula].ancho;
|
|||
ho:=g_Distribuciones[g_TipoAula].alto;
|
|||
tor:=g_Distribuciones[g_TipoAula].altura;
|
|||
numfilas:=(g_num_ord_pantalla div g_Distribuciones[g_TipoAula].numColumnas);
|
|||
numsep:=numfilas -1;
|
|||
spt:=(tor-(numfilas*ho)) div numsep;
|
|||
for i:=g_num_ord_pantalla-1 downto 0 do
|
|||
begin
|
|||
tb:= i div g_Distribuciones[g_TipoAula].numColumnas;
|
|||
tb:= g_Distribuciones[g_TipoAula].altura-tb*(g_Distribuciones[g_TipoAula].alto+spt);
|
|||
lb:= i mod g_Distribuciones[g_TipoAula].numColumnas;
|
|||
lb:= g_Distribuciones[g_TipoAula].izquierda+ g_Distribuciones[g_TipoAula].sepH[lb];
|
|||
ordcon[i].SetBounds(lb,tb,wo,ho);
|
|||
ordcon[i].visible:=true;
|
|||
with lblOrd[i]do
|
|||
begin
|
|||
SetBounds(ordcon[i].Left-23,ordcon[i].top+ordcon[i].height+1,ordcon[i].Width+47,15);
|
|||
visible:=true;
|
|||
end
|
|||
end;
|
|||
for i:=g_num_servidores_aula to g_num_ord_pantalla-1 do
|
|||
begin
|
|||
ordcon[i].visible:=false;
|
|||
lblOrd[i].visible:=false;
|
|||
end
|
|||
end;
|
|||
procedure TfrmEquiposAulas.muestraEquiposAula(equipos:String);
|
|||
var
|
|||
sl,seips:TStringList;
|
|||
i:integer;
|
|||
equipo,ip,mac,usuario,estado:String;
|
|||
miestado:String;
|
|||
begin
|
|||
if trim(equipos)='' then mensaje('No hay ningún equipo encendido en este aula.',aceptar);
|
|||
enabled:=true;
|
|||
try
|
|||
try
|
|||
sl:=TStringList.create;
|
|||
seips:=TStringList.create;
|
|||
sl.text:=equipos;
|
|||
//writeln('equipos ',equipos);
|
|||
seips.Delimiter:='&';
|
|||
sgEquiposAlu.Clean;
|
|||
for i:=0 to sl.Count -1 do
|
|||
begin
|
|||
seips.DelimitedText:=sl[i];
|
|||
seips.Delimiter:='&';
|
|||
//////writeln(seips[0],seips[1]);
|
|||
usuario:=seips[3];
|
|||
estado:=seips[4];
|
|||
mac:=seips[2];
|
|||
ip:=seips[1];
|
|||
equipo:=seips[0];
|
|||
miestado:='Apagado';
|
|||
if estado='1' then
|
|||
begin
|
|||
miestado:='Encendido';
|
|||
if (trim(usuario)<>'') then
|
|||
begin
|
|||
miestado:=usuario;
|
|||
end;
|
|||
end;
|
|||
sgEquiposAlu.Cells[0,i+1]:=inttostr(i+1);
|
|||
sgEquiposAlu.Cells[1,i+1]:=miestado;
|
|||
sgEquiposAlu.Cells[2,i+1]:=equipo;
|
|||
sgEquiposAlu.Cells[3,i+1]:=ip;
|
|||
sgEquiposAlu.Cells[4,i+1]:=mac;
|
|||
end;
|
|||
except
|
|||
// mensaje('error al ller lista',aceptar);
|
|||
end;
|
|||
finally
|
|||
sl.Free;
|
|||
seips.free;
|
|||
end;
|
|||
//meProceso.Lines.add(procesos);
|
|||
end;
|
|||
initialization
|
|||
{$I aulas.lrs}
|
|||
end.
|