Proyecto

General

Perfil

Descargar (25,5 KB) Estadísticas
| Rama: | Revisión:
54e95a47 Elisa
{
23a384b9 Elisa
Adtos 1.0 Software de gestión de Aulas Tecnológicas
Copyright (C) 2011-2012, Consejería de Educación,Junta de Extremadura
54e95a47 Elisa
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
}
23a384b9 Elisa
unit grupos;
54e95a47 Elisa
{$mode objfpc}{$H+}

interface

uses
Math,inicio,globales,globales1,textomensajes,Classes, SysUtils, LResources,
Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls, StdCtrls;
type

23a384b9 Elisa
{ TfrmGrupos }
54e95a47 Elisa
23a384b9 Elisa
TfrmGrupos = class(TForm)
54e95a47 Elisa
btnAnadirCurso: TButton;
btnAnadirGrupo: TButton;
btnEliminarCurso: TButton;
btnEliminarGrupo: TButton;
btnLimpiarCurso: TButton;
btnLimpiarGrupo: TButton;
btnVolver: TButton;
btnModificarCurso: TButton;
btnModificarGrupo: TButton;
edGrupo: TEdit;
edCurso: TEdit;
Image1: TImage;
imlIcoDis: TImageList;
Label3: TLabel;
Label4: TLabel;
Label49: TLabel;
Label50: TLabel;
Label51: TLabel;
Label52: TLabel;
Label53: TLabel;
lblCurso: TLabel;
lstCursos: TListBox;
lstGrupos: TListBox;
procedure btnAnadirCursoClick(Sender: TObject);
procedure btnAnadirGrupoClick(Sender: TObject);
procedure btnEliminarCursoClick(Sender: TObject);
procedure btnEliminarGrupoClick(Sender: TObject);
procedure btnLimpiarCursoClick(Sender: TObject);
procedure btnLimpiarGrupoClick(Sender: TObject);
procedure btnModificarCursoClick(Sender: TObject);
procedure btnModificarGrupoClick(Sender: TObject);
procedure btnVolverClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure lstCursosClick(Sender: TObject);
procedure lstGruposClick(Sender: TObject);
procedure OrdenataDragDrop(Sender, Source: TObject; X, Y: Integer);
procedure OrdenataDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure OrdenataMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
procedure AnadirCurso;
procedure AnadirGrupo(cur:integer);
procedure CargarListaCursos();
procedure CargarListaGrupos(aul: integer);
procedure CargarListaGrupos();
procedure CargarOrdenatas();
procedure chkEquipoGrupoclick(sender: Tobject);
procedure edalu1keypres(Sender: TObject; var Key: char);
procedure EliminarCurso(cur: integer);
procedure EliminarGrupo();
procedure LimpiarCamposAlumnos();
procedure LimpiarCamposGrupo();
procedure ModificarCurso;
procedure ModificarGrupo;
procedure MostrarPersonal();
23a384b9 Elisa
procedure MostrarServidoresAulas();
54e95a47 Elisa
procedure OrdenataMouseEnter(Sender: TObject);
procedure recolocaComponetesMovido(numOrd: integer);
procedure restaurarAula();
function ValidarDatosCurso(): boolean;
function ValidarDatosGrupo(cur: integer): boolean;
{ private declarations }
public
{ public declarations }
end;

var
23a384b9 Elisa
frmGrupos: TfrmGrupos;
54e95a47 Elisa
Ordenata:Array of TImage;
edAlu1:Array of TLabel;
chkEquipoGrupo:Array of TCheckBox;
PuntoO,fPuntoD:TPoint;
numOrdO,numOrdD:integer;

implementation

23a384b9 Elisa
{ TfrmGrupos }
54e95a47 Elisa
const
W_ORDENADOR:integer=63;H_ORDENADOR:integer=58;

var
fcurso,fgrupo:integer;
23a384b9 Elisa
procedure TfrmGrupos.EliminarGrupo();
54e95a47 Elisa
var
grupo:string;
i:integer;
grups:array of string;
begin
if (lstgrupos.Items.count=0) or (lstgrupos.ItemIndex=-1) then
begin
mensaje(MEN_SELECCIONE_GRUPO, aceptar);
exit;
end;
g_Cursos[fcurso].numerogrupos:=g_Cursos[fcurso].numerogrupos-1;
SetLength(grups, g_Cursos[fcurso].numerogrupos);
lstgrupos.Items.Delete(fgrupo);
grupo:=lstgrupos.Items[lstgrupos.ItemIndex];
for i:=0 to g_Cursos[fcurso].numerogrupos-1 do
g_Cursos[fcurso].nombregrupos[i]:=lstGrupos.items[i];
for i:=0 to g_num_ord_aula do
if g_Cursos[fcurso].cgrupos[i] = fgrupo then
g_Cursos[fcurso].cgrupos[i]:=-2;
fgrupo:=-1;
mensaje('el grupo '+ grupo +' ha sido eliminado',aceptar);
btneliminarGrupo.Enabled:=false;
btnModificarGrupo.Enabled:=false;
LimpiarCamposGrupo();
end;

23a384b9 Elisa
procedure TfrmGrupos.ModificarGrupo;
54e95a47 Elisa
var
i:integer;
begin
if (lstgrupos.Items.count=0) or (lstgrupos.ItemIndex=-1) then
begin
mensaje(MEN_GRUPO_MODIFICAR, aceptar);
exit;
end;
g_Cursos[fcurso].nombregrupos[lstGrupos.ItemIndex]:=edGrupo.text;
lstGrupos.Items[lstGrupos.ItemIndex]:=edGrupo.text;
for i:=0 to g_num_ord_aula-1 do
begin
if g_Cursos[fcurso].cgrupos[i] =fgrupo then
g_Cursos[fcurso].cgrupos[i]:=-2;
if chkEquipoGrupo[i].Checked then
g_Cursos[fcurso].cgrupos[i]:=fgrupo;
end;
mensaje(MEN_GRUPO_MODIFICADO, aceptar);
end;

23a384b9 Elisa
procedure TfrmGrupos.LimpiarCamposGrupo();
54e95a47 Elisa
var
i:integer;
begin
lstgrupos.itemindex:=-1;
edgrupo.Text:='';
for i:=0 to g_num_ord_aula-1 do
chkEquipoGrupo[i].Checked:=false;
end;

23a384b9 Elisa
Function TfrmGrupos.ValidarDatosGrupo(cur:integer):boolean;
54e95a47 Elisa
var
j,i:integer;
TextoMensaje:string;
begin
TextoMensaje:='';
if length(edgrupo.Text)<1 then
TextoMensaje:=MEN_INDICA_NOMBRE
else if length(lblcurso.Caption)<1 then
TextoMensaje:=MEN_INDICA_AULA
else
begin
j:=0;
for i:= 0 to g_num_ord_aula-1 do
if chkEquipoGrupo[i].Checked then inc(j);
if j=0 then
textomensaje:=MEN_SELECCIONA_EQUIPO;
for i:=0 to g_Cursos[cur].numerogrupos -1 do
begin
if g_Cursos[cur].nombregrupos[i]= edGrupo.Text then
textomensaje:=MEN_GRUPO_EXISTE;
end;
end;
result:=TextoMensaje='';
if not result then
mensaje(TextoMensaje,aceptar);
end;

23a384b9 Elisa
procedure TfrmGrupos.AnadirGrupo(cur:integer);
54e95a47 Elisa
var
i:integer;
grup:integer;
begin
grup:=g_Cursos[cur].numerogrupos;
g_Cursos[cur].numerogrupos:=g_Cursos[cur].numerogrupos+1;
setlength(g_Cursos[cur].nombregrupos,g_Cursos[cur].numerogrupos);
g_Cursos[cur].nombregrupos[grup]:=edGrupo.text;
for i:=0 to g_num_ord_aula-1 do
if chkEquipoGrupo[i].Checked then
g_Cursos[cur].cgrupos[i]:=grup;
CargarListaGrupos(cur);
LimpiarCamposGrupo();
end;
23a384b9 Elisa
procedure TfrmGrupos.EliminarCurso(cur:integer);
54e95a47 Elisa
var
curso:string;
miscursos:array of Tcursos;
i,j,z:integer;
begin
setlength(miscursos, g_NumCursos-1);
j:=0;
for i:=0 to g_NumCursos-1 do
begin
if i<>cur then
begin
miscursos[j].nombre:= g_Cursos[i].nombre;
miscursos[j].numeroalumnos:=g_Cursos[i].numeroalumnos;
miscursos[j].numerogrupos:= g_Cursos[i].numerogrupos;
setlength(miscursos[j].nombrealumnos,miscursos[j].numeroalumnos);
SetLength(miscursos[j].posicionequipo,miscursos[j].numeroalumnos);
setlength(miscursos[j].nombregrupos,miscursos[j].numerogrupos);
setlength(miscursos[j].cgrupos,miscursos[j].numeroalumnos);
for z:=0 to miscursos[j].numeroalumnos -1 do
begin
miscursos[j].nombrealumnos[z]:=g_Cursos[i].nombrealumnos[z];
miscursos[j].posicionequipo[z].x:=g_Cursos[i].posicionequipo[z].x;
miscursos[j].posicionequipo[z].y:=g_Cursos[i].posicionequipo[z].y;
miscursos[j].cgrupos[z]:=g_Cursos[i].cgrupos[z]
end;
for z:=0 to miscursos[j].numerogrupos -1 do
begin
miscursos[j].nombregrupos[z]:=g_Cursos[i].nombregrupos[z];
end;
j:=j+1;
end;
end;
fcurso:=-1;
g_NumCursos:=g_NumCursos-1;
SetLength(g_Cursos,g_NumCursos);
g_Cursos:=miscursos;
curso:=lstCursos.Items[lstCursos.itemindex];
lstCursos.Items.Delete(lstCursos.itemindex);
mensaje('el curso '+ curso +' ha sido eliminado',aceptar);
btneliminarCurso.Enabled:=false;
btnModificarCurso.Enabled:=false;
cargarlistaCursos();
LimpiarCamposAlumnos();
end;

23a384b9 Elisa
procedure TfrmGrupos.ModificarCurso;
54e95a47 Elisa
var
curso:string;
i:integer;
begin
if (lstCursos.Items.count=0) or (lstCursos.ItemIndex=-1) then exit;
curso:=edCurso.text;
if mensaje('¿Desea modificar el curso ' +curso+'?',sino)=2 then exit;
lstCursos.Items[fcurso]:=curso;
g_Cursos[fcurso].nombre:=curso;
for i:=0 to g_num_ord_aula-1 do
begin
g_Cursos[fcurso].nombrealumnos[i]:=edAlu1[i].Caption;
g_Cursos[fcurso].posicionequipo[i].X:=Ordenata[i].Left;
g_Cursos[fcurso].posicionequipo[i].y:=Ordenata[i].top;
end;
mensaje('El curso ' + edcurso.Caption + ' ha sido modificado correctamente',aceptar);
end;

23a384b9 Elisa
Function TfrmGrupos.ValidarDatosCurso():boolean;
54e95a47 Elisa
var
TextoMensaje:string;
begin
if length(trim(edCurso.text)) <1 then
TextoMensaje:=MEN_ELIGE_NOMBRE
else
TextoMensaje:='';
result:=TextoMensaje='';
if not result then
mensaje(TextoMensaje,aceptar);
end;

23a384b9 Elisa
procedure TfrmGrupos.LimpiarCamposAlumnos();
54e95a47 Elisa
var
i:integer;
begin
lstcursos.itemindex:=-1;
lstgrupos.Clear;
edgrupo.Text:='';
edCurso.text:='';
lblcurso.caption:='';
for i:=0 to g_num_ord_aula-1 do
begin
chkEquipoGrupo[i].Checked:=false;
//edalu1[i].Caption:='';
end;
btnEliminarCurso.Enabled:=false;
btnEliminargrupo.Enabled:=false;
btnModificargrupo.Enabled:=false;
btnModificarcurso.Enabled:=false;
restaurarAula();
end;

23a384b9 Elisa
procedure TfrmGrupos.AnadirCurso;
54e95a47 Elisa
var
nc,i:integer;
begin
g_NumCursos:=g_NumCursos+1;
SetLength(g_Cursos,g_NumCursos);
nc:=g_NumCursos-1;
g_Cursos[nc].nombre:=edCurso.text;
g_Cursos[nc].numeroalumnos:=g_num_ord_aula;
g_Cursos[nc].numerogrupos:=0;
SetLength(g_Cursos[nc].nombrealumnos,g_num_ord_aula);
SetLength(g_Cursos[nc].posicionequipo, g_num_ord_aula);
SetLength(g_Cursos[nc].cgrupos,g_num_ord_aula);
for i:=0 to g_num_ord_aula-1 do
begin
g_Cursos[nc].nombrealumnos[i]:=edAlu1[i].Caption;
g_Cursos[nc].posicionequipo[i].X:=Ordenata[i].Left;
g_Cursos[nc].posicionequipo[i].y:=Ordenata[i].top;
g_Cursos[nc].cgrupos[i]:=-2;
end;
cargarlistaCursos();
LimpiarCamposAlumnos();
end;

23a384b9 Elisa
procedure TfrmGrupos.CargarListaCursos();
54e95a47 Elisa
var i:integer;
begin
if g_NumCursos=0 then exit;;
lstCursos.Clear;
for i:=0 to g_NumCursos-1 do
lstcursos.Items.Add(g_Cursos[i].nombre);
end;

23a384b9 Elisa
procedure TfrmGrupos.CargarListaGrupos();
54e95a47 Elisa
var
i:integer;
begin
lstgrupos.Clear;
if g_Cursos[fcurso].numerogrupos=0 then exit;
for i:=0 to g_Cursos[fcurso].numerogrupos-1 do
lstgrupos.Items.Add(g_Cursos[fcurso].nombregrupos[i]);
end;

23a384b9 Elisa
procedure TfrmGrupos.chkEquipoGrupoclick(sender:Tobject);
54e95a47 Elisa
var
inumima,inumord:integer;
begin
inumord:=(sender as TCheckBox).tag;
inumima:=ifthen((sender as TCheckBox).Checked,1,0);
imlIcoDis.GetBitmap(inumima,Ordenata[inumord].Picture.Bitmap)
end;
23a384b9 Elisa
procedure TfrmGrupos.MostrarServidoresAulas();
54e95a47 Elisa
var
tor,wo,ho,lb,tb :integer;
23a384b9 Elisa
lor,sepl,spt,i,numsep,numfilas:integer;
posi3,posi2,cambioi:integer;
54e95a47 Elisa
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;
if g_tipoAula>= 7 then spt:=spt-10;
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];
Ordenata[i].SetBounds(lb,tb,wo,ho);
Ordenata[i].visible:=true;
end;
for i:=g_num_ord_aula to g_num_ord_pantalla-1 do
begin
Ordenata[i].visible:=false;
end
end;


23a384b9 Elisa
Procedure TfrmGrupos.MostrarPersonal();
54e95a47 Elisa
var
i:integer;
begin
tamanoMonitorPersonal(g_ColumnasPersonal);
for i:=0 to high(Ordenata) do
Ordenata[i].visible:=false;
for i:=0 to g_num_ord_aula-1 do
begin
Ordenata[i].SetBounds(equipoalumno[i].L,equipoalumno[i].T+10,g_anchoMonitorPersonal,g_altoMonitorPersonal);
Ordenata[i].Visible:=true;
end;
end;
23a384b9 Elisa
procedure TfrmGrupos.OrdenataMouseEnter(Sender: TObject);
54e95a47 Elisa
var
numeord:integer;
begin
numeord:=(sender as Timage).tag;
(sender as Timage).ShowHint:=(Trim(equipoAlumno[numeord].mihost)<>'');
if (g_mostrarNombreUsuario) then
begin
if (equipoAlumno[numeord].EstadoActivadEquipo=eUsuario) then
(sender as Timage).Hint:='Usuario: ' +equipoAlumno[numeord].UsuarioActivo
else
(sender as Timage).Hint:='Equipo: '+equipoAlumno[numeord].mihost;

end;
end;
23a384b9 Elisa
Procedure TfrmGrupos.CargarOrdenatas();
54e95a47 Elisa
var
fuente,altoe,i:integer;
begin
setlength(Ordenata,g_num_ord_pantalla);
setlength(edalu1,g_num_ord_pantalla);
setlength(chkEquipoGrupo,g_num_ord_pantalla);
for i:=g_num_ord_pantalla-1 downto 0 do
begin
Ordenata[i]:= TImage.Create(self);
with Ordenata[i] do
begin
width:=W_ORDENADOR;
Height:=H_ORDENADOR;
stretch:=true;
Cursor:=crarrow;
imlicodis.GetBitmap(0,Picture.Bitmap);
OnMouseDown:=@OrdenataMouseDown;
//OnMouseUp:=@OrdenataMouseUp;
//OnMouseMove:=@OrdenataMouseMove;
OnMouseEnter:=@OrdenataMouseEnter;
OnDragOver:=@OrdenataDragOver;
OnDragDrop:=@OrdenataDragDrop;
Parent:=self;
tag:=i;
visible:=false;
end;
end;
if g_DisenoClase=0 then
23a384b9 Elisa
MostrarServidoresAulas()
54e95a47 Elisa
else
MostrarPersonal();
if g_num_ord_aula>18 then
begin
fuente:=6;altoe:=14
end
else
begin
fuente:=7;altoe:=14;
end;

for i:= 0 to g_num_ord_pantalla-1 do
begin
edalu1[i]:= TLabel.Create(self);
with edalu1[i] do
begin
AutoSize:=false;
Transparent:=true;
SetBounds(Ordenata[i].Left, (Ordenata[i].top+Ordenata[i].height),(Ordenata[i].Width),altoe);
Font.Name:='Sans';
Font.Size :=fuente;

//maxlength:=22;
//BorderStyle:=bsSingle;
Alignment:=taCenter;
Parent:=self;
visible:=false;
//OnKeyPress:=@edalu1keypres;
// OnMouseDown:=@edualuMouseDown;
// OnMouseUp:=@edualu1MouseUp;
// OnMouseMove:=@edualu1MouseMove;

if (i<g_num_ord_aula) then
begin
if Trim(equipoAlumno[i].UsuarioActivo) <> '' then
Caption:=equipoAlumno[i].UsuarioActivo
else
Caption:=equipoAlumno[i].mihost;
end;
end;
end;
for i:=g_num_ord_aula to g_num_ord_pantalla-1 do
begin
edalu1[i].visible:=false;
ordenata[i].Visible:=false;
end;
for i:= 0 to g_num_ord_aula-1 do
begin
chkEquipoGrupo[i]:= TCheckBox.Create(self);
with chkEquipoGrupo[i] do
begin
Checked:=false;
Visible:=true;
SetBounds(Ordenata[i].Left-4+Ordenata[i].Width,Ordenata[i].Top-5,10,10);
Caption:='';
Parent:=self;
tag:=i;
Cursor:=crHandPoint;
OnClick:=@chkEquipoGrupoclick;
Enabled:=true;
visible:=false;;
end;
end;
for i:=0 to g_num_ord_aula-1 do
begin
chkEquipoGrupo[i].Visible:=true;
Ordenata[i].Visible:=true;
edAlu1[i].Visible:=true;
end;
end;

23a384b9 Elisa
procedure TfrmGrupos.edalu1keypres(Sender: TObject; var Key: char);
54e95a47 Elisa
begin
if key=',' then key:=#0;
end;

23a384b9 Elisa
procedure TfrmGrupos.FormCreate(Sender: TObject);
54e95a47 Elisa
begin
top:=13;
left:=(screen.Width-width) div 2;
CargarOrdenatas();
end;

23a384b9 Elisa
procedure TfrmGrupos.FormShow(Sender: TObject);
54e95a47 Elisa
begin
CargarListaCursos();
end;

23a384b9 Elisa
procedure TfrmGrupos.FormActivate(Sender: TObject);
54e95a47 Elisa
begin
if frmMain.Visible then frmMain.Hide;
end;

23a384b9 Elisa
procedure TfrmGrupos.btnVolverClick(Sender: TObject);
54e95a47 Elisa
begin
close;
end;

23a384b9 Elisa
procedure TfrmGrupos.btnAnadirCursoClick(Sender: TObject);
54e95a47 Elisa
var
grupoexiste:boolean;
i:integer;
begin
grupoexiste:=false;
if ValidarDatosCurso then
begin
for i:=0 to High(g_Cursos) do
if edCurso.text = g_Cursos[i].nombre then
grupoexiste:=true;
if grupoexiste then
mensaje('El curso ' + edCurso.text + ' ya existe. Haz clic en modificar si deseas realizar algún cambio',aceptar)
else
AnadirCurso;
end;
end;

23a384b9 Elisa
procedure TfrmGrupos.btnAnadirGrupoClick(Sender: TObject);
54e95a47 Elisa
begin
if ValidarDatosGrupo(fcurso) then
AnadirGrupo(fcurso);
end;

23a384b9 Elisa
procedure TfrmGrupos.btnEliminarCursoClick(Sender: TObject);
54e95a47 Elisa
begin
EliminarCurso(fcurso)
end;

23a384b9 Elisa
procedure TfrmGrupos.btnEliminarGrupoClick(Sender: TObject);
54e95a47 Elisa
begin
EliminarGrupo
end;

23a384b9 Elisa
procedure TfrmGrupos.btnLimpiarCursoClick(Sender: TObject);
54e95a47 Elisa
begin
LimpiarCamposAlumnos;
end;

23a384b9 Elisa
procedure TfrmGrupos.btnLimpiarGrupoClick(Sender: TObject);
54e95a47 Elisa
var
i:integer;
begin
lstgrupos.ItemIndex:=-1;
edgrupo.Text:='';
for i:=0 to g_num_ord_aula-1 do
chkEquipoGrupo[i].Checked:=false;
end;

23a384b9 Elisa
procedure TfrmGrupos.btnModificarCursoClick(Sender: TObject);
54e95a47 Elisa
begin
if lstcursos.ItemIndex=-1 then
mensaje(MEN_SELECCIONE_CURSO,aceptar)
else
ModificarCurso
end;

23a384b9 Elisa
procedure TfrmGrupos.btnModificarGrupoClick(Sender: TObject);
54e95a47 Elisa
begin
ModificarGrupo;
end;

23a384b9 Elisa
procedure TfrmGrupos.FormClose(Sender: TObject;
54e95a47 Elisa
var CloseAction: TCloseAction);
begin
CloseAction:=cafree;
end;

23a384b9 Elisa
procedure TfrmGrupos.FormCloseQuery(Sender: TObject;
54e95a47 Elisa
var CanClose: boolean);
begin
if mensaje(MEN_SALIR_ZONA,sino)=2 then
canclose:=false
else
begin
EscribirficheroCursos;
application.ProcessMessages;
end;
end;

23a384b9 Elisa
procedure TfrmGrupos.lstcursosClick(Sender: TObject);
54e95a47 Elisa
var
micurso:string;
i:integer;
begin
if lstcursos.itemindex=-1 then exit;
fcurso:=lstcursos.itemindex;
micurso:=lstcursos.Items[lstcursos.itemindex];
edCurso.text:=micurso;
lblcurso.caption:=micurso;
btnEliminarCurso.Enabled:=true;
if g_Cursos[fcurso].numeroalumnos <> g_num_ord_aula then
begin
Mensaje('El curso elegido no coincide con este aula, tiene distinto números de equipos. Selecciona otro o pulsa eliminar para borrarlo', Aceptar);
exit;
end;

for i:=0 to g_num_ord_aula-1 do
begin
chkEquipoGrupo[i].Checked:=false;
if i< g_Cursos[fcurso].numeroalumnos then
begin
//edAlu1[i].caption:= g_Cursos[fcurso].nombrealumnos[i];
Ordenata[i].SetBounds(g_Cursos[fcurso].posicionequipo[i].x,g_Cursos[fcurso].posicionequipo[i].y,Ordenata[i].Width,Ordenata[i].Height);
recolocaComponetesMovido(i);
end
end;
btnEliminarCurso.Enabled:=true;
btnModificarCurso.Enabled:=true;
CargarListaGrupos(fcurso);
end;

23a384b9 Elisa
procedure TfrmGrupos.lstGruposClick(Sender: TObject);
54e95a47 Elisa
var
migrupo:string;
i:integer;
begin
if lstgrupos.itemindex=-1 then exit;
migrupo:=lstgrupos.Items[lstgrupos.itemindex];
fgrupo:=lstgrupos.itemindex;
edgrupo.Text:=migrupo;
for i:=0 to g_num_ord_aula-1 do
begin
chkEquipoGrupo[i].Checked:=false;
if i< g_Cursos[fcurso].numeroalumnos then
if g_Cursos[fcurso].cgrupos[i]=fgrupo then
chkEquipoGrupo[i].Checked:=true;
end;
btnEliminarGrupo.Enabled:=true;
btnModificarGrupo.Enabled:=true;
end;
23a384b9 Elisa
procedure TfrmGrupos.recolocaComponetesMovido(numOrd:integer);
54e95a47 Elisa
begin
edalu1[numOrd].SetBounds(Ordenata[numOrd].Left, (Ordenata[numOrd].top+Ordenata[numOrd].height),(Ordenata[numOrd].Width),edalu1[numOrd].height);
chkEquipoGrupo[numOrd].SetBounds(Ordenata[numOrd].Left-4+Ordenata[numOrd].Width,Ordenata[numOrd].Top-5,10,10);
end;
23a384b9 Elisa
procedure TfrmGrupos.restaurarAula();
54e95a47 Elisa
var
i,lor,tor,wor,hor:integer;
begin
for i:=0 to g_num_ord_aula -1 do
begin
lor:=equipoAlumno[i].L;
tor:=equipoAlumno[i].T;
wor:=Ordenata[i].Width;
hor:=Ordenata[i].height;
Ordenata[i].SetBounds(lor,tor,wor,hor);
edalu1[i].SetBounds(lor,tor+hor,wor,edalu1[i].height);
chkEquipoGrupo[i].SetBounds(lor+wor-4,tor-5,12,12);
end;
end;
23a384b9 Elisa
procedure TfrmGrupos.OrdenataDragDrop(Sender, Source: TObject; X,
54e95a47 Elisa
Y: Integer);
begin
numOrdD:=Timage(sender).Tag;
(source as Timage).SetBounds((sender as Timage).left, (sender as Timage).top, (sender as Timage).width,(sender as Timage).height);
(Sender as Timage).SetBounds(PuntoO.x, PuntoO.y, (source as Timage).width,(source as Timage).height);
recolocaComponetesMovido(numOrdO);
recolocaComponetesMovido(numOrdD);
end;

23a384b9 Elisa
procedure TfrmGrupos.OrdenataDragOver(Sender, Source: TObject; X,
54e95a47 Elisa
Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept:= (Source is TImage);
end;

23a384b9 Elisa
procedure TfrmGrupos.OrdenataMouseDown(Sender: TObject;
54e95a47 Elisa
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if button = mbLeft then
begin
numOrdO:= TImage(sender).tag;
PuntoO:=Point(TImage(Sender).Left,TImage(Sender).top);
TImage(Sender).BeginDrag(false,5)
end;
end;

23a384b9 Elisa
procedure TfrmGrupos.CargarListaGrupos(aul:integer);
54e95a47 Elisa
var
i:integer;
begin
lstgrupos.Clear;
if g_Cursos[aul].numerogrupos = 0 then exit;
for i:=0 to g_Cursos[fcurso].numerogrupos -1 do
lstgrupos.Items.Add(g_Cursos[aul].nombregrupos[i]);
end;

initialization
23a384b9 Elisa
{$I grupos.lrs}
54e95a47 Elisa
end.