desarrollosconsejeria/adtos-server/1.7-0/adtos/configuraraplicacion.pas @ 23a384b9
23a384b9 | Elisa | {
|
|
Adtos 1.0 Software de gestión de Aulas Tecnológicas
|
|||
Copyright (C) 2008-2009, Consejería de Educación,Junta de Extremadura
|
|||
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 configuraraplicacion;
|
|||
{$mode objfpc}{$H+}
|
|||
interface
|
|||
uses
|
|||
globales,globales1,textomensajes,IniFiles,Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
|||
StdCtrls, Buttons, ColorProgress, Menus, ComCtrls;
|
|||
type
|
|||
Tdatosequipos=record
|
|||
ip:string;
|
|||
valordevuelto:string;
|
|||
end;
|
|||
{ TfrmConPro }
|
|||
TfrmConPro = class(TForm)
|
|||
btnAceCon: TButton;
|
|||
btnAnadirComando: TButton;
|
|||
btnAnadirProceso: TButton;
|
|||
btnEliminarComando: TButton;
|
|||
btnEliminarProceso: TButton;
|
|||
btnLimpiarComando: TButton;
|
|||
btnLimpiarProceso: TButton;
|
|||
btnSalir: TButton;
|
|||
btnLimpiar: TButton;
|
|||
cboVelocidad: TComboBox;
|
|||
cboNumOrd: TComboBox;
|
|||
cboNMI: TComboBox;
|
|||
cboExplorador: TComboBox;
|
|||
chkPermitirCLibres: TCheckBox;
|
|||
chkDestinoLibre: TCheckBox;
|
|||
edComando: TEdit;
|
|||
edIpAdmin: TEdit;
|
|||
edProcesos: TEdit;
|
|||
Image2: TImage;
|
|||
imlEncender: TImageList;
|
|||
Label89: TLabel;
|
|||
Label90: TLabel;
|
|||
Label91: TLabel;
|
|||
lstComandos: TListBox;
|
|||
lstProcesos: TListBox;
|
|||
mnuLImpiarDatos: TMenuItem;
|
|||
pgOrdenes: TPageControl;
|
|||
poMenu: TPopupMenu;
|
|||
edContra: TEdit;
|
|||
Image1: TImage;
|
|||
Label1: TLabel;
|
|||
Label81: TLabel;
|
|||
Label83: TLabel;
|
|||
Label88: TLabel;
|
|||
tbComandos: TTabSheet;
|
|||
TbConsultas: TTabSheet;
|
|||
tmrMAC: TTimer;
|
|||
procedure btnAceConClick(Sender: TObject);
|
|||
procedure btnAnadirComandoClick(Sender: TObject);
|
|||
procedure btnAnadirProcesoClick(Sender: TObject);
|
|||
procedure btnEliminarComandoClick(Sender: TObject);
|
|||
procedure btnEliminarProcesoClick(Sender: TObject);
|
|||
procedure btnLimpiarComandoClick(Sender: TObject);
|
|||
procedure btnLimpiarProcesoClick(Sender: TObject);
|
|||
procedure btnSalirClick(Sender: TObject);
|
|||
procedure btnLimpiarClick(Sender: TObject);
|
|||
procedure cboNMIChange(Sender: TObject);
|
|||
procedure cboNMIClick(Sender: TObject);
|
|||
procedure cboNumOrdChange(Sender: TObject);
|
|||
procedure cboNumOrdKeyPress(Sender: TObject; var Key: char);
|
|||
procedure edContraKeyPress(Sender: TObject; var Key: char);
|
|||
procedure FormActivate(Sender: TObject);
|
|||
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
|||
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
|||
procedure FormCreate(Sender: TObject);
|
|||
procedure lstComandosClick(Sender: TObject);
|
|||
procedure lstProcesosClick(Sender: TObject);
|
|||
procedure mnuLImpiarDatosClick(Sender: TObject);
|
|||
private
|
|||
procedure cargarOrdenesProcesos();
|
|||
procedure CrearEtiquetasOr();
|
|||
procedure CrearOrdenadores();
|
|||
procedure edIPKeyPress(Sender: TObject; var Key: Char);
|
|||
procedure edMACKeyPress(Sender: TObject; var Key: Char);
|
|||
procedure edOrdKeyPress(Sender: TObject; var Key: Char);
|
|||
procedure EscribirArchivoOrdenes();
|
|||
procedure EscribirSetupIni();
|
|||
procedure GuardarCambios();
|
|||
procedure lblordclick(sender: Tobject);
|
|||
procedure LeerSetupIni;
|
|||
procedure LimpiarDatos(num: integer);
|
|||
procedure MostrarDatos(numequipo, tdatos: integer);
|
|||
procedure MostrarServidoresAulas(numaula, numpan: integer);
|
|||
procedure OcultarOrdenatas;
|
|||
procedure OrdConClick(Sender: TObject);
|
|||
procedure OrdConDbClick(Sender: TObject);
|
|||
procedure OrdConDragDrop(Sender, Source: TObject; X, Y: Integer);
|
|||
procedure OrdConDragOver(Sender, Source: TObject; X, Y: Integer;
|
|||
State: TDragState; var Accept: Boolean);
|
|||
procedure OrdConMouseDown(Sender: TObject; Button: TMouseButton;
|
|||
Shift: TShiftState; X, Y: Integer);
|
|||
procedure OrdenadoresCombo(no: integer; cboC: TCombobox);
|
|||
procedure OrdConMouseEnter(Sender: TObject);
|
|||
function ValidarDatos: boolean;
|
|||
function ValidarOrden(miorden: String): boolean;
|
|||
function ValidarProceso(miorden: String): boolean;
|
|||
{ private declarations }
|
|||
public
|
|||
{ public declarations }
|
|||
end;
|
|||
var
|
|||
frmConPro: TfrmConPro;
|
|||
OrdCon:array[0..69] of Timage;
|
|||
EquipoAveriado:array[0..69] of Boolean;
|
|||
lblOrd:array[0..69] of Tlabel;
|
|||
edOrd:array[0..69] of TEdit;
|
|||
edMAC:array[0..69] of TEdit;
|
|||
edIP:array[0..69] of TEdit;
|
|||
edCurso:array[0..69] of TEdit;
|
|||
fcontador:integer;
|
|||
ftiempo:integer=30;
|
|||
fnumemac:integer;
|
|||
implementation
|
|||
uses inicio;
|
|||
var
|
|||
f_ContraCorrecta:boolean=false;
|
|||
f_etiqueta_pulsada:integer=0;
|
|||
f_equipo_elegido:integer=0;
|
|||
f_orden:integer=-1;
|
|||
f_proceso:integer=-1;
|
|||
f_tipo_aula:integer=9;
|
|||
{ TfrmConPro }
|
|||
Procedure TfrmConPro.EscribirArchivoOrdenes();
|
|||
var
|
|||
MiFichero:TMeminiFile;
|
|||
i:integer;
|
|||
destino,clibres:Boolean;
|
|||
begin
|
|||
try
|
|||
try
|
|||
if not DirectoryExists('/var/lib/adtos') then CreateDir('/var/lib/adtos');
|
|||
Mifichero:=TMeminifile.Create(equipoAdministrador.ArcOrdenesRoot);
|
|||
with MIfichero do
|
|||
begin
|
|||
destino:=chkDestinoLibre.Checked;
|
|||
clibres:=chkPermitirCLibres.Checked;
|
|||
writeBool('Comandos libres', 'Permitidos',clibres);
|
|||
writeBool('Destinos libres','Permitidos',destino);
|
|||
for i:=0 to lstComandos.Count-1 do
|
|||
writeString('Comandos','Comando '+ NumOrdLet(i),lstComandos.Items[i]);
|
|||
for i:=0 to lstProcesos.Count-1 do
|
|||
writeString('Procesos','Proceso '+ NumOrdLet(i),lstProcesos.Items[i]);
|
|||
UpdateFile;
|
|||
end;
|
|||
Ejecutar('chmod 644 ' + equipoAdministrador.ArcOrdenesRoot)
|
|||
except
|
|||
////writeln('Error al crear carpeta');
|
|||
end;
|
|||
finally
|
|||
Mifichero.free;
|
|||
end;
|
|||
end;
|
|||
procedure TfrmConPro.cargarOrdenesProcesos();
|
|||
var i:integer;
|
|||
begin
|
|||
lstComandos.Clear;
|
|||
lstProcesos.clear;
|
|||
for i:=0 to High(g_ordenes_root) do
|
|||
lstComandos.Items.Add(g_ordenes_root[i]);
|
|||
for i:=0 to High(g_procesos_root) do
|
|||
lstProcesos.Items.Add(g_procesos_root[i]);
|
|||
chkDestinoLibre.Checked:=g_DestinosLibres;
|
|||
chkPermitirCLibres.Checked:=g_ComandosLibres;
|
|||
end;
|
|||
Function TfrmConPro.ValidarOrden(miorden:String):boolean;
|
|||
var
|
|||
TextoMensaje:string;
|
|||
i:integer;
|
|||
begin
|
|||
TextoMensaje:='';
|
|||
if length(trim(edComando.text)) <1 then
|
|||
begin
|
|||
TextoMensaje:='Escribe la orden';
|
|||
end
|
|||
else
|
|||
begin
|
|||
for i:=0 to lstComandos.Count-1 do
|
|||
begin
|
|||
if trim(miorden)= trim(lstComandos.Items[i]) then
|
|||
begin
|
|||
TextoMensaje:='La orden ya existe';
|
|||
break;
|
|||
end;
|
|||
end;
|
|||
end;
|
|||
result:=TextoMensaje='';
|
|||
if not result then
|
|||
mensaje(TextoMensaje,aceptar);
|
|||
end;
|
|||
Function TfrmConPro.ValidarProceso(miorden:String):boolean;
|
|||
var
|
|||
TextoMensaje:string;
|
|||
i:integer;
|
|||
begin
|
|||
TextoMensaje:='';
|
|||
if length(trim(edProcesos.text)) <1 then
|
|||
begin
|
|||
TextoMensaje:='Escribe la consulta.';
|
|||
end
|
|||
else
|
|||
begin
|
|||
for i:=0 to lstProcesos.Count-1 do
|
|||
begin
|
|||
if trim(miorden)= trim(lstProcesos.Items[i]) then
|
|||
begin
|
|||
TextoMensaje:='El proceso ya existe';
|
|||
break;
|
|||
end;
|
|||
end;
|
|||
end;
|
|||
result:=TextoMensaje='';
|
|||
if not result then
|
|||
mensaje(TextoMensaje,aceptar);
|
|||
end;
|
|||
procedure TfrmConPro.MostrarServidoresAulas(numaula,numpan:integer);
|
|||
var
|
|||
tor,wo,ho,lb,tb :integer;
|
|||
spt,i,numsep,numfilas:integer;
|
|||
begin
|
|||
OcultarOrdenatas() ;
|
|||
wo:=g_Distribuciones[f_tipo_aula].ancho;
|
|||
ho:=g_Distribuciones[f_tipo_aula].alto;
|
|||
tor:=g_Distribuciones[f_tipo_aula].altura;
|
|||
numfilas:=(numpan div g_Distribuciones[f_tipo_aula].numColumnas);
|
|||
numsep:=numfilas -1;
|
|||
spt:=(tor-(numfilas*ho)) div numsep;
|
|||
for i:=numaula-1 downto 0 do
|
|||
begin
|
|||
tb:= i div g_Distribuciones[f_tipo_aula].numColumnas;
|
|||
tb:= g_Distribuciones[f_tipo_aula].altura-tb*(g_Distribuciones[f_tipo_aula].alto+spt);
|
|||
lb:= i mod g_Distribuciones[f_tipo_aula].numColumnas;
|
|||
lb:= g_Distribuciones[f_tipo_aula].izquierda+ g_Distribuciones[f_tipo_aula].sepH[lb];
|
|||
with OrdCon[i] do
|
|||
begin
|
|||
SetBounds(lb,tb,wo,ho);
|
|||
visible:=true;
|
|||
end;
|
|||
with lblOrd[i]do
|
|||
begin
|
|||
SetBounds(lb-6,tb+ho-5,wo+12,14);
|
|||
visible:=true;
|
|||
end;
|
|||
with edord[i]do
|
|||
begin
|
|||
SetBounds(lb-6,tb+ho-5,wo+12,14);
|
|||
end;
|
|||
with edmac[i]do
|
|||
begin
|
|||
SetBounds(lb-6,tb+ho-5,wo+12,14);
|
|||
end;
|
|||
with edIP[i]do
|
|||
begin
|
|||
SetBounds(lb-6,tb+ho-5,wo+12,14);
|
|||
end;
|
|||
with edCurso[i]do
|
|||
begin
|
|||
SetBounds(lb-6,tb+ho-5,wo+12,14);
|
|||
end;
|
|||
end;
|
|||
end;
|
|||
procedure TfrmConPro.btnLimpiarClick(Sender: TObject);
|
|||
var
|
|||
i:integer;
|
|||
begin
|
|||
if mensaje(MEN_ORDENADORES_LIMPIAR,sino)=2 then exit;
|
|||
for i:=0 to high(OrdCon) do
|
|||
begin
|
|||
LimpiarDatos(i);
|
|||
end;
|
|||
end;
|
|||
Function TfrmConPro.ValidarDatos:boolean;
|
|||
var
|
|||
TextoMensaje:string;
|
|||
begin
|
|||
textomensaje:='';
|
|||
if length(edIPAdmin.Text)<3 then
|
|||
TextoMensaje:=MEN_INDICA_IP_Administrador
|
|||
else if g_num_diseno=0 then
|
|||
TextoMensaje:=MEN_NUMERO_ORDENADORES;
|
|||
result:=TextoMensaje='';
|
|||
if not result then
|
|||
mensaje(TextoMensaje,aceptar);
|
|||
end;
|
|||
procedure TfrmConPro.OrdenadoresCombo(no:integer;cboC:TCombobox);
|
|||
var
|
|||
num,i:integer;
|
|||
begin
|
|||
with cboC do
|
|||
begin
|
|||
Text:='';
|
|||
Clear;
|
|||
case no of
|
|||
0: num:=7;
|
|||
1,2: num:=14;
|
|||
3,6: num:=42;
|
|||
4: num:=21;
|
|||
5,9: num:=63;
|
|||
7,11: num:=53;
|
|||
8: num:=35;
|
|||
10: num:=63;
|
|||
end;
|
|||
for i:=1 to num do
|
|||
Items.Add(inttostr(i));
|
|||
Enabled:=true;
|
|||
end
|
|||
end;
|
|||
procedure TfrmConPro.OcultarOrdenatas;
|
|||
var
|
|||
i:integer;
|
|||
begin
|
|||
for i:=low(ordcon) to high(ordcon) do
|
|||
begin
|
|||
ordcon[i].visible:=false;
|
|||
lblOrd[i].visible:=false;
|
|||
edord[i].visible:=false;
|
|||
edCurso[i].visible:=false;
|
|||
end;
|
|||
end;
|
|||
Procedure TfrmConPro.LeerSetupIni;
|
|||
var
|
|||
Ordbool:boolean;
|
|||
Mifichero:TMemIniFile;
|
|||
i:integer;
|
|||
N_A:integer;
|
|||
nmord:string;
|
|||
begin
|
|||
Mifichero:= TMemIniFile.create(DIR_SETUP_ADTOS);
|
|||
with Mifichero do
|
|||
begin
|
|||
nmord:= ReadString('Centro','Numero aulas','48');
|
|||
N_A:=strtoint(nmord) ;
|
|||
////writeln('Numero de equipos leídos: ',N_A);
|
|||
g_num_diseno:=N_A;
|
|||
g_ExploradorArchivos:=ReadString('Centro','Explorador archivos','nautilus');
|
|||
cboExplorador.Text:=g_ExploradorArchivos;
|
|||
f_tipo_aula:=9;
|
|||
if N_A>54 then f_tipo_aula:=10;
|
|||
g_velocidad_red:=ReadInteger('Centro','Velocidad red',1);
|
|||
edIPAdmin.text:=ReadString('Administrador','IP','');
|
|||
cbonumord.Text:=inttostr(N_A);
|
|||
cboVelocidad.ItemIndex:=g_velocidad_red;
|
|||
for i:=0 to High(lblord) do
|
|||
begin
|
|||
ordbool:=strtobool(readstring ('Estado','Aula '+ NumOrdLet(i),'1'));
|
|||
EquipoAveriado[i]:= not ordbool;
|
|||
if EquipoAveriado[i] then
|
|||
imlEncender.GetBitmap(1,OrdCon[i].picture.bitmap)
|
|||
else
|
|||
imlEncender.GetBitmap(0,OrdCon[i].picture.bitmap);
|
|||
lblord[i].Caption:=readstring('Nombre','Aula '+ NumOrdLet(i),'');
|
|||
edord[i].Text:= lblord[i].Caption;
|
|||
edMac[i].Text:=readstring('MAC','Aula '+ NumOrdLet(i),'');
|
|||
edIP[i].Text:=readstring('IP','Aula '+ NumOrdLet(i),'');
|
|||
edCurso[i].Text:=readstring('Curso','Aula '+ NumOrdLet(i),'');
|
|||
end;
|
|||
MostrarServidoresAulas(N_A,NumeroOrdenadorePantalla(f_tipo_aula,N_A))
|
|||
end;
|
|||
end;
|
|||
procedure TfrmConPro.GuardarCambios();
|
|||
begin
|
|||
try
|
|||
try
|
|||
Ejecutar('fuser -k -n tcp 38001');
|
|||
equipoAdministrador.host:=trim(edIPAdmin.text);
|
|||
EscribirSetupIni();
|
|||
EscribirArchivoOrdenes();
|
|||
except
|
|||
////writeln('Error al almacenar datos')
|
|||
end;
|
|||
finally
|
|||
Ejecutar('/usr/sbin/serveradtosserver &');
|
|||
end;
|
|||
end;
|
|||
procedure TfrmConPro.FormCreate(Sender: TObject);
|
|||
begin
|
|||
top:=13;left:=(screen.Width-width)div 2;
|
|||
edIPAdmin.Text:=equipoAdministrador.Host;
|
|||
CrearOrdenadores();
|
|||
CrearEtiquetasOr();
|
|||
OrdenadoresCombo(10,cbonumord);
|
|||
if fileexists(DIR_SETUP_ADTOS) then
|
|||
LeerSetupIni();
|
|||
cbonumord.Enabled:=false;
|
|||
end;
|
|||
procedure TfrmConPro.lstComandosClick(Sender: TObject);
|
|||
begin
|
|||
if lstComandos.itemindex=-1 then exit;
|
|||
f_orden:=lstComandos.itemindex;
|
|||
edComando.Text:=lstComandos.Items[f_orden];
|
|||
btnEliminarComando.Enabled:=true;
|
|||
end;
|
|||
procedure TfrmConPro.lstProcesosClick(Sender: TObject);
|
|||
begin
|
|||
if lstProcesos.itemindex=-1 then exit;
|
|||
f_proceso:=lstProcesos.itemindex;
|
|||
edProcesos.Text:=lstProcesos.Items[f_proceso];
|
|||
btnEliminarProceso.Enabled:=true;
|
|||
end;
|
|||
procedure TfrmConPro.mnuLImpiarDatosClick(Sender: TObject);
|
|||
begin
|
|||
LimpiarDatos(f_equipo_elegido);
|
|||
end;
|
|||
procedure TfrmConPro.LimpiarDatos(num:integer);
|
|||
begin
|
|||
edIP[num].Caption:='';
|
|||
edOrd[num].text:='';
|
|||
edMAC[num].Text:='';
|
|||
edCurso[num].Text:='';
|
|||
lblOrd[num].Caption:='';
|
|||
end;
|
|||
procedure TfrmConPro.btnAceConClick(Sender: TObject);
|
|||
var
|
|||
i:integer;
|
|||
begin
|
|||
if edcontra.Text ='adtos2014' then
|
|||
begin
|
|||
for i:=0 to controlcount-1 do
|
|||
begin
|
|||
if not (controls[i] is Tlabel) then
|
|||
begin
|
|||
controls[i].Enabled:=true;
|
|||
controls[i].Cursor:=crhandpoint;
|
|||
end;
|
|||
end;
|
|||
btnacecon.Enabled:=false;
|
|||
btnacecon.Cursor:=crarrow;
|
|||
for i:=low(lblOrd) to high(lblOrd) do
|
|||
begin
|
|||
lblord[i].Enabled:=true;
|
|||
lblord[i].Cursor:=crhandpoint;
|
|||
end;
|
|||
Application.ProcessMessages;
|
|||
MostrarServidoresAulas(g_num_diseno,NumeroOrdenadorePantalla(f_tipo_aula,g_num_diseno));
|
|||
cargarOrdenesProcesos();
|
|||
end
|
|||
else
|
|||
begin
|
|||
mensaje(MEN_CONTRA_INCORRECTA,aceptar);
|
|||
edcontra.text:='';
|
|||
edcontra.SetFocus;
|
|||
end;
|
|||
f_ContraCorrecta:= not btnacecon.Enabled;
|
|||
end;
|
|||
procedure TfrmConPro.btnAnadirComandoClick(Sender: TObject);
|
|||
begin
|
|||
if ValidarOrden(edComando.text) then
|
|||
begin
|
|||
lstComandos.Items.Add(edComando.text);
|
|||
edComando.Text:='';
|
|||
end;
|
|||
end;
|
|||
procedure TfrmConPro.btnAnadirProcesoClick(Sender: TObject);
|
|||
begin
|
|||
if ValidarProceso(edProcesos.text) then
|
|||
begin
|
|||
lstProcesos.Items.Add(edProcesos.text);
|
|||
edProcesos.Text:='';
|
|||
end;
|
|||
end;
|
|||
procedure TfrmConPro.btnEliminarComandoClick(Sender: TObject);
|
|||
var
|
|||
orden:String;
|
|||
begin
|
|||
if (lstComandos.ItemIndex = -1) or (lstComandos.Count<1) then exit;
|
|||
orden:= lstComandos.Items[lstComandos.ItemIndex];
|
|||
if mensaje('¿Desea eliminar la orden: '+ orden +'?', SiNo) =2 then exit;
|
|||
lstComandos.Items.Delete(lstComandos.ItemIndex);
|
|||
edComando.Text:='';
|
|||
end;
|
|||
procedure TfrmConPro.btnEliminarProcesoClick(Sender: TObject);
|
|||
var
|
|||
orden:String;
|
|||
begin
|
|||
if (lstProcesos.ItemIndex = -1) or (lstProcesos.Count<1) then exit;
|
|||
orden:= lstProcesos.Items[lstProcesos.ItemIndex];
|
|||
if mensaje('¿Desea eliminar la consulta: '+ orden +'?', SiNo) =2 then exit;
|
|||
lstProcesos.Items.Delete(lstProcesos.ItemIndex);
|
|||
edProcesos.Text:='';
|
|||
end;
|
|||
procedure TfrmConPro.btnLimpiarComandoClick(Sender: TObject);
|
|||
begin
|
|||
if lstComandos.Count<1 then exit;
|
|||
if mensaje('¿Desea eliminar todas las ordenes de la lista?. Los cambios no se almacenarán hasta que guardes al salir', SiNo) =2 then exit;
|
|||
lstComandos.Items.clear;
|
|||
edComando.Text:='';
|
|||
end;
|
|||
procedure TfrmConPro.btnLimpiarProcesoClick(Sender: TObject);
|
|||
begin
|
|||
if lstProcesos.Count<1 then exit;
|
|||
if mensaje('¿Desea eliminar todas las consultas de la lista?. Los cambios no se almacenarán hasta que guardes al salir', SiNo) =2 then exit;
|
|||
lstProcesos.Items.clear;
|
|||
edProcesos.Text:='';
|
|||
end;
|
|||
procedure TfrmConPro.btnSalirClick(Sender: TObject);
|
|||
begin
|
|||
close
|
|||
end;
|
|||
procedure TfrmConPro.cboNMIChange(Sender: TObject);
|
|||
begin
|
|||
if cboNMI.ItemIndex<0 then exit;
|
|||
MostrarDatos(0,cboNMI.ItemIndex);
|
|||
end;
|
|||
procedure TfrmConPro.cboNMIClick(Sender: TObject);
|
|||
begin
|
|||
if cboNMI.ItemIndex<0 then exit;
|
|||
MostrarDatos(f_etiqueta_pulsada,cboNMI.ItemIndex);
|
|||
end;
|
|||
procedure TfrmConPro.MostrarDatos(numequipo,tdatos:integer);
|
|||
var
|
|||
i:integer;
|
|||
begin
|
|||
for i:=low(edOrd) to high(edOrd) do
|
|||
begin
|
|||
edOrd[i].Visible:=false;
|
|||
edMac[i].Visible:=false;
|
|||
edIP[I].visible:=false;
|
|||
edCurso[I].visible:=false;
|
|||
case tdatos of
|
|||
0:lblord[i].caption:=edord[i].text;
|
|||
1:lblord[i].caption:=edmac[i].text;
|
|||
2:lblord[i].caption:=edIP[i].text;
|
|||
3:lblord[i].caption:=edCurso[i].text;
|
|||
end;
|
|||
end;
|
|||
case tdatos of
|
|||
0:
|
|||
begin
|
|||
edOrd[numequipo].Visible:=true;
|
|||
edOrd[numequipo].BringToFront;
|
|||
end;
|
|||
1:
|
|||
begin
|
|||
edMAC[numequipo].Visible:=true;
|
|||
edMAC[numequipo].BringToFront;
|
|||
end;
|
|||
2:
|
|||
begin
|
|||
edIP[numequipo].Visible:=true;
|
|||
edIP[numequipo].BringToFront;
|
|||
end;
|
|||
3:
|
|||
begin
|
|||
edCurso[numequipo].Visible:=true;
|
|||
edCurso[numequipo].BringToFront;
|
|||
end
|
|||
end;
|
|||
end;
|
|||
procedure TfrmConPro.cboNumOrdChange(Sender: TObject);
|
|||
begin
|
|||
g_num_diseno:=strtoint(cbonumord.Text);
|
|||
f_tipo_aula:=9;
|
|||
if g_num_diseno>54 then f_tipo_aula:=10;
|
|||
MostrarServidoresAulas(g_num_diseno,NumeroOrdenadorePantalla(f_tipo_aula,g_num_diseno));
|
|||
end;
|
|||
procedure TfrmConPro.cboNumOrdKeyPress(Sender: TObject; var Key: char);
|
|||
begin
|
|||
key:=#0;
|
|||
end;
|
|||
procedure TfrmConPro.edContraKeyPress(Sender: TObject; var Key: char);
|
|||
begin
|
|||
if Key=#13 then btnAceConClick(btnAceCon);
|
|||
end;
|
|||
procedure TfrmConPro.FormActivate(Sender: TObject);
|
|||
begin
|
|||
if frmMain.Visible then frmMain.hide;
|
|||
end;
|
|||
procedure TfrmConPro.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
|||
begin
|
|||
closeaction:=cafree;
|
|||
end;
|
|||
procedure TfrmConPro.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
|||
begin
|
|||
if mensaje(MEN_SALIR_ADMIN,sino)=2 then
|
|||
canclose:=false
|
|||
else
|
|||
begin
|
|||
if f_ContraCorrecta then
|
|||
begin
|
|||
if mensaje(MEN_GUARDAR_CAMBIOS,sino)=1 then
|
|||
begin
|
|||
if not validardatos then
|
|||
canclose:=false
|
|||
else
|
|||
begin
|
|||
try
|
|||
Guardarcambios;
|
|||
except
|
|||
mensaje(MEN_NO_PERMISO,aceptar);
|
|||
application.Terminate;
|
|||
exit;
|
|||
end;
|
|||
hide;
|
|||
application.ProcessMessages;
|
|||
application.Terminate;
|
|||
end
|
|||
end
|
|||
else
|
|||
begin
|
|||
frmMain.show;
|
|||
hide;
|
|||
end;
|
|||
end
|
|||
else
|
|||
begin
|
|||
frmMain.show;
|
|||
hide;
|
|||
end;
|
|||
end
|
|||
end;
|
|||
Procedure TfrmConPro.EscribirSetupIni();
|
|||
var
|
|||
Ordbool:boolean;
|
|||
Mifichero:TMemIniFile;
|
|||
i:integer;
|
|||
begin
|
|||
Mifichero:= TMemIniFile.create(DIR_SETUP_ADTOS);
|
|||
try
|
|||
try
|
|||
g_ExploradorArchivos:=cboExplorador.text;
|
|||
g_velocidad_red:=1;
|
|||
if cboVelocidad.ItemIndex <> -1 then g_velocidad_red:= cboVelocidad.ItemIndex;
|
|||
g_DisenoClase:=0;
|
|||
with MIfichero do
|
|||
begin
|
|||
WriteString('Centro','Numero aulas',inttostr(g_num_diseno));
|
|||
WriteInteger('Centro','Velocidad red',g_velocidad_red);
|
|||
WriteString('Administrador','IP',equipoAdministrador.host);
|
|||
WriteString('Entorno','Explorador archivos',g_ExploradorArchivos);
|
|||
for i:=0 to g_num_diseno-1 do
|
|||
begin
|
|||
ordbool:= not EquipoAveriado[i];
|
|||
WriteString ('Nombre','Aula '+NumOrdLet(i),trim(edord[i].Text));
|
|||
WriteString ('MAC','Aula '+NumOrdLet(i),trim(edMAC[i].Text));
|
|||
WriteString ('IP','Aula '+NumOrdLet(i),trim(edIp[i].Text));
|
|||
WriteString ('Curso','Aula '+NumOrdLet(i),trim(edCurso[i].Text));
|
|||
WriteString ('Estado','Aula '+NumOrdLet(i),booltostr(ordbool));
|
|||
end;
|
|||
UpdateFile;
|
|||
end;
|
|||
Ejecutar('chmod 644 /etc/adtosadmin.conf')
|
|||
except
|
|||
begin
|
|||
Mensaje(MEN_ERROR_GUARDAR_AULA,aceptar);
|
|||
application.Terminate;
|
|||
end;
|
|||
end;
|
|||
finally
|
|||
Mifichero.free;
|
|||
end;
|
|||
end;
|
|||
procedure TfrmConPro.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;
|
|||
imlEncender.GetBitmap(0,picture.bitmap);
|
|||
Autosize:=false;
|
|||
Stretch:=true;
|
|||
Enabled:=false;
|
|||
Cursor:=crarrow;
|
|||
Parent:=self;
|
|||
OnDblClick:=@OrdConDbClick;
|
|||
OnMouseEnter:=@OrdConMouseEnter;
|
|||
PopupMenu:=poMenu;
|
|||
//onClick:=@OrdConClick;
|
|||
OnMouseDown:=@OrdConMouseDown;
|
|||
OnDragOver:=@OrdConDragOver;
|
|||
OnDragDrop:=@OrdConDragDrop;
|
|||
end;
|
|||
EquipoAveriado[i]:=false;
|
|||
end;
|
|||
end;
|
|||
procedure TfrmConPro.OrdConMouseEnter(Sender: TObject);
|
|||
var
|
|||
numeord:integer;
|
|||
begin
|
|||
numeord:=(sender as Timage).tag;
|
|||
(sender as Timage).ShowHint:=false;
|
|||
if (g_mostrarNombreUsuario) and (edOrd[numeord].Text<>'') then
|
|||
begin
|
|||
(sender as Timage).Hint:=edOrd[numeord].Text +' '+ edIP[numeord].text +' '+ edMAC[numeord].text+' '+edCurso[numeord].text;
|
|||
(sender as Timage).ShowHint:=true;
|
|||
end;
|
|||
end;
|
|||
procedure TfrmConPro.OrdConDragDrop(Sender, Source: TObject; X, Y: Integer);
|
|||
var
|
|||
curDes,nomDes,ipDes,macDes:String;
|
|||
numequipoO,numequipoD:integer;
|
|||
begin
|
|||
numequipoD:=Timage(sender).Tag;
|
|||
numequipoO:=Timage(source).Tag;
|
|||
nomDes:=edOrd[numequipoD].Text;
|
|||
macDes:=edMAC[numequipoD].Text;
|
|||
ipDes:=edIP[numequipoD].Text;
|
|||
curDes:=edCurso[numequipoD].Text;
|
|||
edOrd[numequipoD].Text:=edOrd[numequipoO].Text;
|
|||
lblOrd[numequipoD].Caption:=edOrd[numequipoO].Text;
|
|||
edMAC[numequipoD].Text:=edMAC[numequipoO].Text;
|
|||
edIP[numequipoD].Text:=edIP[numequipoO].Text;
|
|||
edCurso[numequipoD].Text:=edCurso[numequipoO].Text;
|
|||
edOrd[numequipoO].Text:=nomDes;
|
|||
lblOrd[numequipoO].Caption:=nomDes;
|
|||
edMAC[numequipoO].Text:=macDes;
|
|||
edIP[numequipoO].Text:=ipDes;
|
|||
edCurso[numequipoO].Text:=curDes;
|
|||
end;
|
|||
procedure TfrmConPro.OrdConDragOver(Sender, Source: TObject; X,
|
|||
Y: Integer; State: TDragState; var Accept: Boolean);
|
|||
begin
|
|||
Accept:= (Source is TImage);
|
|||
end;
|
|||
procedure TfrmConPro.OrdConMouseDown(Sender: TObject;
|
|||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|||
begin
|
|||
f_equipo_elegido:=(Sender as TImage).tag;
|
|||
//////writeln(inttostr(f_equipo_elegido));
|
|||
if button = mbLeft then
|
|||
begin
|
|||
TImage(Sender).BeginDrag(false,5)
|
|||
end;
|
|||
end;
|
|||
procedure TfrmConPro.OrdConClick(Sender: TObject);
|
|||
var
|
|||
numequ:integer;
|
|||
begin
|
|||
numequ:=(sender as Timage).tag;
|
|||
EquipoAveriado[numequ]:=not EquipoAveriado[numequ];
|
|||
if EquipoAveriado[numequ] then
|
|||
imlEncender.GetBitmap(1,OrdCon[numequ].picture.bitmap)
|
|||
else
|
|||
imlEncender.GetBitmap(0,OrdCon[numequ].picture.bitmap);
|
|||
end;
|
|||
procedure TfrmConPro.OrdConDbClick(Sender: TObject);
|
|||
var
|
|||
numequ:integer;
|
|||
begin
|
|||
numequ:=(sender as Timage).tag;
|
|||
EquipoAveriado[numequ]:=not EquipoAveriado[numequ];
|
|||
if EquipoAveriado[numequ] then
|
|||
imlEncender.GetBitmap(1,OrdCon[numequ].picture.bitmap)
|
|||
else
|
|||
imlEncender.GetBitmap(0,OrdCon[numequ].picture.bitmap);
|
|||
end;
|
|||
procedure TfrmConPro.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:=false;
|
|||
autosize:=false;
|
|||
alignment:=tacenter;
|
|||
font.Name:='Sans';
|
|||
font.Size:=6;
|
|||
layout:=tlcenter;
|
|||
Visible:=false;
|
|||
Enabled:=false;
|
|||
caption:='';
|
|||
onclick:=@lblordclick;
|
|||
Cursor:=crarrow;
|
|||
Parent:=self;
|
|||
end;
|
|||
end;
|
|||
for i:= low(edOrd) to high(edOrd) do
|
|||
begin
|
|||
edOrd[i]:=Tedit.Create(self);
|
|||
with edOrd[i] do
|
|||
begin
|
|||
tag:=i;
|
|||
Color:=clwhite;
|
|||
font.Name:='Sans';
|
|||
font.Size:=6;
|
|||
Visible:=false;
|
|||
Enabled:=true;
|
|||
text:='';
|
|||
Cursor:=crdefault;
|
|||
OnKeyPress:=@edOrdKeyPress;
|
|||
Parent:=self;
|
|||
end;
|
|||
end;
|
|||
for i:= low(edMAC) to high(edMAC) do
|
|||
begin
|
|||
edMAC[i]:=Tedit.Create(self);
|
|||
with edMAC[i] do
|
|||
begin
|
|||
tag:=i;
|
|||
Color:=clwhite;
|
|||
font.Name:='Sans';
|
|||
font.Size:=6;
|
|||
Visible:=false;
|
|||
Enabled:=true;
|
|||
text:='';
|
|||
Cursor:=crdefault;
|
|||
OnKeyPress:=@edMACKeyPress;
|
|||
Parent:=self;
|
|||
end;
|
|||
end;
|
|||
for i:= low(edIP) to high(edIP) do
|
|||
begin
|
|||
edIP[i]:=Tedit.Create(self);
|
|||
with edIP[i] do
|
|||
begin
|
|||
tag:=i;
|
|||
Color:=clwhite;
|
|||
font.Name:='Sans';
|
|||
font.Size:=6;
|
|||
Visible:=false;
|
|||
Enabled:=true;
|
|||
text:=lblOrd[i].Caption;
|
|||
Cursor:=crdefault;
|
|||
OnKeyPress:=@edIPKeyPress;
|
|||
Parent:=self;
|
|||
end;
|
|||
end;
|
|||
for i:= low(edCurso) to high(edCurso) do
|
|||
begin
|
|||
edCurso[i]:=Tedit.Create(self);
|
|||
with edCurso[i] do
|
|||
begin
|
|||
tag:=i;
|
|||
Color:=clwhite;
|
|||
font.Name:='Sans';
|
|||
font.Size:=6;
|
|||
Visible:=false;
|
|||
Enabled:=true;
|
|||
text:='';
|
|||
Cursor:=crdefault;
|
|||
Parent:=self;
|
|||
end;
|
|||
end;
|
|||
end;
|
|||
procedure TfrmConPro.lblordclick(sender:Tobject);
|
|||
begin
|
|||
f_etiqueta_pulsada:=(sender as Tlabel).tag;
|
|||
if cboNMI.ItemIndex<0 then exit;
|
|||
MostrarDatos(f_etiqueta_pulsada,cboNMI.ItemIndex);
|
|||
end;
|
|||
procedure TfrmConPro.edOrdKeyPress(Sender: TObject; var Key: Char);
|
|||
begin
|
|||
if not(key in['a'..'z','A'..'Z','0'..'9','.','-','_',':',#8]) then
|
|||
key:=#0;
|
|||
end;
|
|||
procedure TfrmConPro.edMACKeyPress(Sender: TObject; var Key: Char);
|
|||
begin
|
|||
if not(key in['0'..'9','a'..'f','A'..'F',':',#8]) then key:=#0;
|
|||
end;
|
|||
procedure TfrmConPro.edIPKeyPress(Sender: TObject; var Key: Char);
|
|||
begin
|
|||
if not(key in['0'..'9','.',#8]) then key:=#0;
|
|||
end;
|
|||
initialization
|
|||
{$I configuraraplicacion.lrs}
|
|||
end.
|