Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal do Fórum iMasters!
Mais uma vez to precisando da ajuda de vocês. To desenvolvendo um programa de controle de tempo para Lan House simples, não tem muitos recursos. Bem, o que eu to tendo dificuldade em terminar é a parte onde o balcão se comunica com os computadores clientes.
Eu estou fazendo assim, no programa Cliente do Balcão eu tenho um ClienteSocket e no programa Servidor dos computadores do clientes eu tenho o ServerSocket.
No programa do Balcão onde tem o Cliente Socket eu coloquei botões que fazem com o que o ClienteSocket envie comandos de desligamento, como Desligar, Reiniciar, Travar, etc. E preciso também que o ClienteSocket envie um texto, do MaskEdit do programa Cliente, para um Caption de um Panel no programa Servidor dos outros Computadores.
Resumindo: Preciso enviar os comandos para as maquinas dos clientes de desligamento, e enviar também o tempo que a máquina vai ficar ativa (o crédito que o cliente adicionou) para o Caption do Panel do Servidor.
Bem, eu to tendo problemas quanto a isso. Tentei de várias maneiras e não consegui, alguém pode me ajudar?
Claro mano mano! :yes:
Esse é o código fonte do programa do balcão:
>
{-----------------------------------------------------------------------------------
Controle de Computadores - Lan House Bela Vista
Versão: 2.0 Revisão: 36 Source: 2.0
Essa é a Source (código fonte) da janela principal, ou seja, a primeira janela do
programa. A sua edição é permitida, lembre-se de não omitir os créditos dos desenvolvedores
originais ou dos recursos utilizados. Você pode usar como base esse código fonte, mas
não pode altera-lo para vende-lo. A venda de todo ou parte do programa é restrita, o
seu código fonte é aberto e pode ser alterado como desejado.
Caso altere algo e queira destribuir, você pode adicionar seus créditos na janela
"Sobre" (frm_Sobre). Adicione seu nome e o que alterou no programa. Não utilize esses
códigos fontes em outros projetos sem comunicar ao desenvolvedor original.
Esse código fonte foi desenvolvido sob medida para a Lan House Bela Vista. A cópia
para uso em outra forma é restrita a não ser que seja comunicado ao desenvolvedor do
programa.
Desenvolvido por: Francisco Assis Dantas Filho Email: manefilho1@hotmail.com
------------------------------------------------------------------------------------}
unit UPrincipal;
interface
{-----------------------------------------------------------------------------------
---> Adicionado a Uses
Clipbrd - Adicionado a Uses para copiar o Email do "lbl_EmailDesenvolvedor" para
a área de transferência.
IniFiles - Adicionado a Uses para criar e manipular arquivos de informação de
configuração, ou seja, usado para manipular arquivos "Ini" ou "Inf".
------------------------------------------------------------------------------------}
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, Menus, ExtCtrls, ComCtrls, StdCtrls, Clipbrd, pngimage,
IniFiles, JvComponentBase, JvFormMagnet;
type
Tfrm_Principal = class(TForm)
mm_MenuPrincipal: TMainMenu;
il_ImagensMenus: TImageList;
Sistema1: TMenuItem;
AtualizarStatus1: TMenuItem;
N2: TMenuItem;
Configuraes1: TMenuItem;
Sair1: TMenuItem;
Comandos1: TMenuItem;
Desligarcomputador1: TMenuItem;
Reiniciarcomputador1: TMenuItem;
Bloquearcomputador1: TMenuItem;
N3: TMenuItem;
Crdito1: TMenuItem;
Iniciarcrdito1: TMenuItem;
Salvarcrdito1: TMenuItem;
N4: TMenuItem;
Fecharcrdito1: TMenuItem;
Ferramentas1: TMenuItem;
Calculadora1: TMenuItem;
MeuComputador1: TMenuItem;
Ajuda1: TMenuItem;
picosdeajuda1: TMenuItem;
Sobreosistema1: TMenuItem;
Maiscomandos1: TMenuItem;
Bloqueartela1: TMenuItem;
Bloquearmouse1: TMenuItem;
Bloquearteclado1: TMenuItem;
Desligarmonitor1: TMenuItem;
sb_BarraDeStatus: TStatusBar;
pnl_Forma: TPanel;
pc_Computadores: TPageControl;
ts_PC1: TTabSheet;
ts_PC2: TTabSheet;
ts_PC3: TTabSheet;
ts_PC4: TTabSheet;
ts_PC6: TTabSheet;
ts_PC7: TTabSheet;
ts_PC8: TTabSheet;
ts_PC5: TTabSheet;
pnl_TituloPC1: TPanel;
pnl_PC1: TPanel;
pnl_TituloPC3: TPanel;
pnl_TituloPC2: TPanel;
pnl_TituloPC4: TPanel;
pnl_TituloPC5: TPanel;
pnl_TituloPC6: TPanel;
pnl_TituloPC7: TPanel;
pnl_TituloPC8: TPanel;
t_DataHoraAtual: TTimer;
gb_HoraEntrada1: TGroupBox;
gb_HoraSaida1: TGroupBox;
gb_TempoRestante1: TGroupBox;
gb_TempoCorrido1: TGroupBox;
pnl_HoraEntrada1: TPanel;
pnl_HoraSaida1: TPanel;
pnl_TempoRestante1: TPanel;
pnl_TempoCorrido1: TPanel;
gb_StatusComputador: TGroupBox;
gb_ComandosRemotos1: TGroupBox;
btn_Desligar1: TButton;
btn_Reiniciar1: TButton;
btn_Bloquear1: TButton;
btn_BloquearTela1: TButton;
btn_BloquearMouse1: TButton;
btn_BloquearTeclado1: TButton;
btn_DesligarMonitor1: TButton;
gb_Informacoes1: TGroupBox;
lbl_NomeCliente1: TLabel;
lbl_ClienteAnterior1: TLabel;
lbl_TempoAdicionado1: TLabel;
pnl_NomeCliente1: TPanel;
pnl_ClienteAnterior1: TPanel;
pnl_TempoAdicionado1: TPanel;
lbl_ValorPagar1: TLabel;
pnl_ValorPagar1: TPanel;
lbl_StatusPagamento1: TLabel;
pnl_StatusPagamento1: TPanel;
lbl_ValorTempoAberto1: TLabel;
pnl_ValorTempoAberto1: TPanel;
btn_AdicionarCredito1: TButton;
btn_FecharCredito1: TButton;
btn_AdicionarMaisCredito1: TButton;
btn_SalvarCredito1: TButton;
Carregarcrditosalvo1: TMenuItem;
btn_CarregarCreditoSalvo1: TButton;
lbl_Sistema1: TLabel;
lbl_EmailDesenvolvedor1: TLabel;
pnl_PC2: TPanel;
lbl_Sistema2: TLabel;
lbl_EmailDesenvolvedor2: TLabel;
gb_HoraEntrada2: TGroupBox;
pnl_HoraEntrada2: TPanel;
gb_HoraSaida2: TGroupBox;
pnl_HoraSaida2: TPanel;
gb_TempoRestante2: TGroupBox;
pnl_TempoRestante2: TPanel;
gb_TempoCorrido2: TGroupBox;
pnl_TempoCorrido2: TPanel;
gb_ComandosLocais2: TGroupBox;
btn_AdicionarCredito2: TButton;
btn_FecharCredito2: TButton;
btn_AdicionarMaisCredito2: TButton;
btn_SalvarCredito2: TButton;
btn_CarregarCreditoSalvo2: TButton;
gb_ComandosRemotos2: TGroupBox;
btn_Desligar2: TButton;
btn_Reiniciar2: TButton;
btn_Bloquear2: TButton;
btn_BloquearTela2: TButton;
btn_BloquearMouse2: TButton;
btn_BloquearTeclado2: TButton;
btn_DesligarMonitor2: TButton;
gb_Informacoes2: TGroupBox;
lbl_NomeCliente2: TLabel;
lbl_ClienteAnterior2: TLabel;
lbl_TempoAdicionado2: TLabel;
lbl_ValorPagar2: TLabel;
lbl_StatusPagamento2: TLabel;
lbl_ValorTempoAberto2: TLabel;
pnl_NomeCliente2: TPanel;
pnl_ClienteAnterior2: TPanel;
pnl_TempoAdicionado2: TPanel;
pnl_ValorPagar2: TPanel;
pnl_StatusPagamento2: TPanel;
pnl_ValorTempoAberto2: TPanel;
pnl_PC3: TPanel;
lbl_Sistema3: TLabel;
lbl_EmailDesenvolvedor3: TLabel;
gb_HoraEntrada3: TGroupBox;
pnl_HoraEntrada3: TPanel;
gb_HoraSaida3: TGroupBox;
pnl_HoraSaida3: TPanel;
gb_TempoRestante3: TGroupBox;
pnl_TempoRestante3: TPanel;
gb_TempoCorrido: TGroupBox;
pnl_TempoCorrido3: TPanel;
gb_ComandosLocais3: TGroupBox;
btn_AdicionarCredito3: TButton;
btn_FecharCredito3: TButton;
btn_AdicionarMaisCredito3: TButton;
btn_SalvarCredito3: TButton;
btn_CarregarCreditoSalvo3: TButton;
gb_ComandosRemotos3: TGroupBox;
btn_Desligar3: TButton;
btn_Reiniciar3: TButton;
btn_Bloquear3: TButton;
btn_BloquearTela3: TButton;
btn_BloquearMouse3: TButton;
btn_BloquearTeclado3: TButton;
btn_DesligarMonitor3: TButton;
gb_Informacoes3: TGroupBox;
lbl_NomeCliente3: TLabel;
lbl_ClienteAnterior3: TLabel;
lbl_TempoAdicionado3: TLabel;
lbl_ValorPagar3: TLabel;
lbl_StatusPagamento3: TLabel;
lbl_ValorTempoAberto3: TLabel;
pnl_NomeCliente3: TPanel;
pnl_ClienteAnterior3: TPanel;
pnl_TempoAdicionado: TPanel;
pnl_ValorPagar3: TPanel;
pnl_StatusPagamento3: TPanel;
pnl_ValorTempoAberto3: TPanel;
pnl_PC4: TPanel;
lbl_Sistema4: TLabel;
lbl_EmailDesenvolvedor4: TLabel;
gb_HoraEntrada4: TGroupBox;
pnl_HoraEntrada4: TPanel;
gb_HoraSaida4: TGroupBox;
pnl_HoraSaida4: TPanel;
gb_TempoRestante4: TGroupBox;
pnl_TempoRestante4: TPanel;
gb_TempoCorrido4: TGroupBox;
pnl_TempoCorrido4: TPanel;
gb_ComandosLocais4: TGroupBox;
btn_AdicionarCredito4: TButton;
btn_FecharCredito4: TButton;
btn_AdicionarMaisCredito4: TButton;
btn_SalvarCredito4: TButton;
btn_CarregarCreditoSalvo4: TButton;
gb_ComandosRemotos4: TGroupBox;
btn_Desligar4: TButton;
btn_Reiniciar4: TButton;
btn_Bloquear4: TButton;
btn_BloquearTela4: TButton;
btn_BloquearMouse4: TButton;
btn_BloquearTeclado4: TButton;
btn_DesligarMonitor4: TButton;
gb_Informacoes4: TGroupBox;
lbl_NomeCliente4: TLabel;
lbl_ClienteAnterior4: TLabel;
lbl_TempoAdicionado4: TLabel;
lbl_ValorPagar4: TLabel;
lbl_StatusPagamento4: TLabel;
lbl_ValorTempoAberto4: TLabel;
pnl_NomeCliente4: TPanel;
pnl_ClienteAnterior4: TPanel;
pnl_TempoAdicionado4: TPanel;
pnl_ValorPagar4: TPanel;
pnl_StatusPagamento4: TPanel;
pnl_ValorTempoAberto4: TPanel;
pnl_PC5: TPanel;
lbl_Sistema5: TLabel;
lbl_EmailDesenvolvedor5: TLabel;
gb_HoraEntrada5: TGroupBox;
pnl_HoraEntrada5: TPanel;
gb_HoraSaida5: TGroupBox;
pnl_HoraSaida5: TPanel;
gb_TempoRestante5: TGroupBox;
pnl_TempoRestante5: TPanel;
gb_TempoCorrido5: TGroupBox;
pnl_TempoCorrido5: TPanel;
gb_ComandosLocais5: TGroupBox;
btn_AdicionarCredito5: TButton;
btn_FecharCredito5: TButton;
btn_AdicionarMaisCredito5: TButton;
btn_SalvarCredito5: TButton;
btn_CarregarCreditoSalvo5: TButton;
gb_ComandosRemotos5: TGroupBox;
btn_Desligar5: TButton;
btn_Reiniciar5: TButton;
btn_Bloquear5: TButton;
btn_BloquearTela5: TButton;
btn_BloquearMouse5: TButton;
btn_BloquearTeclado5: TButton;
btn_DesligarMonitor5: TButton;
gb_Informacoes5: TGroupBox;
lbl_NomeCliente5: TLabel;
lbl_ClienteAnterior5: TLabel;
lbl_TempoAdicionado5: TLabel;
lbl_ValorPagar5: TLabel;
lbl_StatusPagamento5: TLabel;
lbl_ValorTempoAberto5: TLabel;
pnl_NomeCliente5: TPanel;
pnl_ClienteAnterior5: TPanel;
pnl_TempoAdicionado5: TPanel;
pnl_ValorPagar5: TPanel;
pnl_StatusPagamento5: TPanel;
pnl_ValorTempoAberto5: TPanel;
pnl_PC6: TPanel;
lbl_Sistema6: TLabel;
lbl_EmailDesenvolvedor6: TLabel;
gb_HoraEntrada6: TGroupBox;
pnl_HoraEntrada6: TPanel;
gb_HoraSaida6: TGroupBox;
pnl_HoraSaida6: TPanel;
gb_TempoRestante6: TGroupBox;
pnl_TempoRestante6: TPanel;
gb_TempoCorrido6: TGroupBox;
pnl_TempoCorrido6: TPanel;
gb_ComandosLocais6: TGroupBox;
btn_AdicionarCredito6: TButton;
btn_FecharCredito6: TButton;
btn_AdicionarMaisCredito6: TButton;
btn_SalvarCredito6: TButton;
btn_CarregarCreditoSalvo6: TButton;
gb_ComandosRemotos6: TGroupBox;
btn_Desligar6: TButton;
btn_Reiniciar6: TButton;
btn_Bloquear6: TButton;
btn_BloquearTela6: TButton;
btn_BloquearMouse6: TButton;
btn_BloquearTeclado6: TButton;
btn_DesligarMonitor6: TButton;
gb_Informacoes6: TGroupBox;
lbl_NomeCliente6: TLabel;
lbl_ClienteAnterior6: TLabel;
lbl_TempoAdicionado6: TLabel;
lbl_ValorPagar6: TLabel;
lbl_SatusPagamento6: TLabel;
lbl_ValorTempoAberto6: TLabel;
pnl_NomeCliente6: TPanel;
pnl_ClienteAnterior6: TPanel;
pnl_TempoAdicionado6: TPanel;
pnl_ValorPagar6: TPanel;
pnl_StatusPagamento6: TPanel;
pnl_ValorTempoAberto6: TPanel;
pnl_PC7: TPanel;
lbl_Sistema7: TLabel;
lbl_EmailDesenvolvedor7: TLabel;
gb_HoraEntrada7: TGroupBox;
pnl_HoraEntrada7: TPanel;
gb_HoraSaida7: TGroupBox;
pnl_HoraSaida7: TPanel;
gb_TempoRestante7: TGroupBox;
pnl_TempoRestante7: TPanel;
gb_TempoCorrido7: TGroupBox;
pnl_TempoCorrido7: TPanel;
gb_ComandosLocais7: TGroupBox;
btn_AdicionarCredito7: TButton;
btn_FecharCredito7: TButton;
btn_AdicionarMaisCredito7: TButton;
btn_SalvarCredito7: TButton;
btn_CarregarCreditoSalvo7: TButton;
gb_ComandosRemotos7: TGroupBox;
btn_Desligar7: TButton;
btn_Reiniciar7: TButton;
btn_Bloquear7: TButton;
btn_BloquearTela7: TButton;
btn_BloquearMouse7: TButton;
btn_BloquearTeclado7: TButton;
btn_DesligarMonitor7: TButton;
gb_Informacoes7: TGroupBox;
lbl_NomeCliente7: TLabel;
lbl_ClienteAnterior7: TLabel;
lbl_TempoAdicionado7: TLabel;
lbl_ValorPagar7: TLabel;
lbl_ValorTempoAberto7: TLabel;
pnl_NomeCliente7: TPanel;
pnl_ClienteAnterior7: TPanel;
pnl_TempoAdicionado7: TPanel;
pnl_ValorPagar7: TPanel;
pnl_StatusPagamento7: TPanel;
pnl_ValorTempoAberto7: TPanel;
lbl_StatusPagamento7: TLabel;
pnl_PC8: TPanel;
lbl_Sistema8: TLabel;
lbl_EmailDesenvolvedor8: TLabel;
gb_HoraEntrada8: TGroupBox;
pnl_HoraEntrada8: TPanel;
gb_HoraSaida8: TGroupBox;
pnl_HoraSaida8: TPanel;
gb_TempoRestante8: TGroupBox;
pnl_TempoRestante8: TPanel;
gb_TempoCorrido8: TGroupBox;
pnl_TempoCorrido8: TPanel;
gb_ComandosLocais8: TGroupBox;
btn_AdicionarCredito8: TButton;
btn_FecharCredito8: TButton;
btn_AdicionarMaisCredito8: TButton;
btn_SalvarCredito8: TButton;
btn_CarregarCreditoSalvo8: TButton;
gb_ComandosRemotos8: TGroupBox;
btn_Desligar8: TButton;
btn_Reiniciar8: TButton;
btn_Bloquear8: TButton;
btn_BloquearTecla8: TButton;
btn_BloquearMouse8: TButton;
btn_BloquearTeclado8: TButton;
btn_DesligarMonitor8: TButton;
gb_Informacoes8: TGroupBox;
lbl_NomeCliente8: TLabel;
lbl_ClienteAnterior8: TLabel;
lbl_TempoAdicionado8: TLabel;
lbl_ValorPagar8: TLabel;
lbl_StatusPagamento8: TLabel;
lbl_ValorTempoAberto8: TLabel;
pnl_NomeCliente8: TPanel;
pnl_ClienteAnterior8: TPanel;
pnl_TempoAdicionado8: TPanel;
pnl_ValorPagar8: TPanel;
pnl_StatusPagamento8: TPanel;
pnl_ValorTempoAberto8: TPanel;
ts_Configuracoes: TTabSheet;
gb_ConfiguraConexao: TGroupBox;
edt_IPPC1: TLabeledEdit;
edt_IPPC2: TLabeledEdit;
edt_IPPC3: TLabeledEdit;
edt_IPPC4: TLabeledEdit;
edt_IPPC5: TLabeledEdit;
edt_IPPC6: TLabeledEdit;
edt_IPPC7: TLabeledEdit;
edt_IPPC8: TLabeledEdit;
edt_PortaPC1: TLabeledEdit;
edt_PortaPC2: TLabeledEdit;
edt_PortaPC3: TLabeledEdit;
edt_PortaPC4: TLabeledEdit;
edt_PortaPC8: TLabeledEdit;
edt_PortaPC7: TLabeledEdit;
edt_PortaPC6: TLabeledEdit;
edt_PortaPC5: TLabeledEdit;
img_Logo: TImage;
lbl_Informacao: TLabel;
btn_Aplicar: TButton;
btn_Cancelar: TButton;
od_SelecionaSkin: TOpenDialog;
img_Logo2: TImage;
Label1: TLabel;
Label2: TLabel;
jfm_Ima: TJvFormMagnet;
procedure t_DataHoraAtualTimer(Sender: TObject);
procedure lbl_EmailDesenvolvedor1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Sair1Click(Sender: TObject);
procedure Sobreosistema1Click(Sender: TObject);
procedure picosdeajuda1Click(Sender: TObject);
procedure Configuraes1Click(Sender: TObject);
procedure btn_AplicarClick(Sender: TObject);
procedure btn_CancelarClick(Sender: TObject);
procedure ts_ConfiguracoesShow(Sender: TObject);
procedure Calculadora1Click(Sender: TObject);
procedure MeuComputador1Click(Sender: TObject);
procedure AtualizarStatus1Click(Sender: TObject);
procedure Iniciarcrdito1Click(Sender: TObject);
procedure btn_FecharCredito1Click(Sender: TObject);
procedure Desligarcomputador1Click(Sender: TObject);
procedure Reiniciarcomputador1Click(Sender: TObject);
procedure Bloquearcomputador1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_Principal: Tfrm_Principal;
ArqConfiguracao: TIniFile;
implementation
uses
USobre, UTestaConexao, UAdicionaTempo;
{$R *.dfm}
procedure Tfrm_Principal.AtualizarStatus1Click(Sender: TObject);
begin
// ---> Mostra o assistente de teste de conexão
frm_TestarConexao.ShowModal;
end;
procedure Tfrm_Principal.Bloquearcomputador1Click(Sender: TObject);end;
procedure Tfrm_Principal.btn_AplicarClick(Sender: TObject);
var
data: TIniFile;
begin
data := TIniFile.Create('config\config.ini'); // Nome do arquivo Ini que será criado
// ---> O conteúdo será gravado
data.WriteString('ip', 'ip1', edt_ippc1.Text);
data.WriteString('ip', 'ip2', edt_ippc2.Text);
data.WriteString('ip', 'ip3', edt_ippc3.Text);
data.WriteString('ip', 'ip4', edt_ippc4.Text);
data.WriteString('ip', 'ip5', edt_ippc5.Text);
data.WriteString('ip', 'ip6', edt_ippc6.Text);
data.WriteString('ip', 'ip7', edt_ippc7.Text);
data.WriteString('ip', 'ip8', edt_ippc8.Text);
data.WriteString('port', 'port1', edt_portapc1.Text);
data.WriteString('port', 'port2', edt_portapc2.Text);
data.WriteString('port', 'port3', edt_portapc3.Text);
data.WriteString('port', 'port4', edt_portapc4.Text);
data.WriteString('port', 'port5', edt_portapc5.Text);
data.WriteString('port', 'port6', edt_portapc6.Text);
data.WriteString('port', 'port7', edt_portapc7.Text);
data.WriteString('port', 'port8', edt_portapc8.Text);
data.Free; //Libera a memória
MessageDlg('As informações foram salvas com êxito! :)', mtInformation, [mbOK], 0); // Mostra menssagem mostrando que a informações foram salvas
end;
procedure Tfrm_Principal.btn_CancelarClick(Sender: TObject);
begin
// ---> Esconde a aba de configurações
if MessageDlg('Configuração do Sistema' + #13 + 'Você salvou as configurações antes de fechar?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin // Caso responda que Sim...
ts_Configuracoes.TabVisible := False; // ...esconde a aba configurações.
pc_Computadores.ActivePage := ts_PC1; // Mostra a aba do PC 1
ts_PC1.SetFocus; // Direciona a tenção para a aba do PC 1
end else // Fim, mas caso...
ts_Configuracoes.TabVisible := True; // ...a resposta seja "Não", deixa a aplicação rodando
pc_Computadores.ActivePage := ts_Configuracoes; // Seleciona a aba configurações
ts_Configuracoes.SetFocus; // Direciona a atenção para a aba Configurações
end;
procedure Tfrm_Principal.btn_FecharCredito1Click(Sender: TObject);
begin
// ---> Limpa todas as informações
if MessageDlg('Limpar informações PC1', 'Tem certeza que deseja limpar as informações do Cliente 1?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin // Pergunta se quer limpar, se disser sim...
// Limpa tudo...
pnl_HoraEntrada1.Caption := ('00:00:00');
pnl_HoraSaida1.Caption := ('00:00:00');
pnl_TempoRestante1.Caption := ('00:00:00');
pnl_TempoCorrido1.Caption := ('00:00:00');
pnl_ClienteAnterior1.Caption := (pnl_NomeCliente1.Caption);
pnl_NomeCliente1.Caption := ('Nenhum');
pnl_TempoAdicionado1.Caption := ('00:00:00');
pnl_ValorPagar1.Caption := ('R$ 00,00');
pnl_StatusPagamento1.Caption := ('Sem uso!');
pnl_ValorTempoAberto1.Caption := ('R$ 00,00');
MessageDlg('As informações foram limpas! :)', mtInformation, [mbOK], 0); // Mostra messagem que tudo foi limpo
end else // Mas caso responda que não
frm_Principal.SetFocus; // Volta para a janela principal
pc_Computadores.ActivePageIndex := 0; // Seleciona a primeira aba
MessageDlg('As informações não foram alteradas! :)', mtInformation, [mbOK], 0); // Mostra menssagem que nada foi alterado
end;
procedure Tfrm_Principal.Calculadora1Click(Sender: TObject);
begin
// ---> Executa a calculadora
WinExec('calc.exe',SW_Normal);
end;
procedure Tfrm_Principal.Configuraes1Click(Sender: TObject);
begin
// ---> Mostra a aba de configurações
ts_Configuracoes.TabVisible := True;
end;
procedure Tfrm_Principal.Desligarcomputador1Click(Sender: TObject);
begin
end;
procedure Tfrm_Principal.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
// ---> Pedir confirmação para fechar a aplicação
if MessageDlg('Sair da aplicação' + #13 + 'Tem certeza que deseja encerrar a aplicação?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin // Caso responda que Sim...
Action := caFree; // ...deixa a ação livre para ser executada (fecha a aplicação).
end else // Fim, mas caso...
Action := caNone; // ...a resposta seja "Não", deixa a aplicação rodando
end;
procedure Tfrm_Principal.FormShow(Sender: TObject);
var
data: TIniFile;
begin
// ---> Ao exibir a janela principal (frm_Principal), mostra a primeira aba (PC1) do "pc_Computadores" (PageControl)
pc_Computadores.ActivePage := ts_PC1; // Exibe a primeira aba
// ---> Oculta a aba "Configurações"
ts_Configuracoes.TabVisible := False;
// ---> Verifica arquivo de Skin
end;
procedure Tfrm_Principal.Iniciarcrdito1Click(Sender: TObject);frm_AdicionarCredito.ShowModal;
end;
procedure Tfrm_Principal.lbl_EmailDesenvolvedor1Click(Sender: TObject);end;
procedure Tfrm_Principal.MeuComputador1Click(Sender: TObject);WinExec('exeplorer.exe',SW_Normal);
end;
procedure Tfrm_Principal.picosdeajuda1Click(Sender: TObject);end;
procedure Tfrm_Principal.Reiniciarcomputador1Click(Sender: TObject);end;
procedure Tfrm_Principal.Sair1Click(Sender: TObject);
begin
// ---> Chama a ação "Close"
Close;
end;
procedure Tfrm_Principal.Sobreosistema1Click(Sender: TObject);
begin
// ---> Mostra a janela "Sobre" (frm_Sobre) [Adicionado "USobre" nas Uses)
frm_Sobre.ShowModal;
end;
procedure Tfrm_Principal.ts_ConfiguracoesShow(Sender: TObject);
var
data: TIniFile;
begin
data := TIniFile.Create('config\config.ini'); // Nome do arquivo Ini que será criado
// ---> O conteúdo será lido
edt_ippc1.Text := data.ReadString('ip', 'ip1', '');
edt_ippc2.Text := data.ReadString('ip', 'ip2', '');
edt_ippc3.Text := data.ReadString('ip', 'ip3', '');
edt_ippc4.Text := data.ReadString('ip', 'ip4', '');
edt_ippc5.Text := data.ReadString('ip', 'ip5', '');
edt_ippc6.Text := data.ReadString('ip', 'ip6', '');
edt_ippc7.Text := data.ReadString('ip', 'ip7', '');
edt_ippc8.Text := data.ReadString('ip', 'ip8', '');
edt_portapc1.Text := data.ReadString('port', 'port1', '');
edt_portapc2.Text := data.ReadString('port', 'port2', '');
edt_portapc3.Text := data.ReadString('port', 'port3', '');
edt_portapc4.Text := data.ReadString('port', 'port4', '');
edt_portapc5.Text := data.ReadString('port', 'port5', '');
edt_portapc6.Text := data.ReadString('port', 'port6', '');
edt_portapc7.Text := data.ReadString('port', 'port7', '');
edt_portapc8.Text := data.ReadString('port', 'port8', '');
data.Free; //Libera a memória
end;
procedure Tfrm_Principal.t_DataHoraAtualTimer(Sender: TObject);
begin
// ---> Muda campos do StatusBar (sb_BarraDeStatus)
sb_BarraDeStatus.Panels[0].Text := 'Administrador: LBV'; // Obtem nome do Administrador
sb_BarraDeStatus.Panels[1].Text := 'Balcão - Lan House Bela Vista'; // Nome do computador
sb_BarraDeStatus.Panels[2].Text := '' + FormatDateTime('dddd", "dd" de "mmmm" de "yyyy', Now); // Obtem data atual do sistema
sb_BarraDeStatus.Panels[3].Text := '' + FormatDateTime('hh:mm:ss', Now); // Obtem hora atual do sistema
end;
end.
Esse é o código fonte do programa dos computadores dos clientes (Form Principal):
>
{-----------------------------------------------------------------------------------
Controle de Computadores - Lan House Bela Vista
Versão: 2.0 Revisão: 36 Source: 2.0
Essa é a Source (código fonte) da janela principal, ou seja, a primeira janela do
programa. A sua edição é permitida, lembre-se de não omitir os créditos dos desenvolvedores
originais ou dos recursos utilizados. Você pode usar como base esse código fonte, mas
não pode altera-lo para vende-lo. A venda de todo ou parte do programa é restrita, o
seu código fonte é aberto e pode ser alterado como desejado.
Caso altere algo e queira destribuir, você pode adicionar seus créditos na janela
"Sobre" (frm_Sobre). Adicione seu nome e o que alterou no programa. Não utilize esses
códigos fontes em outros projetos sem comunicar ao desenvolvedor original.
Esse código fonte foi desenvolvido sob medida para a Lan House Bela Vista. A cópia
para uso em outra forma é restrita a não ser que seja comunicado ao desenvolvedor do
programa.
Desenvolvido por: Francisco Assis Dantas Filho Email: manefilho1@hotmail.com
------------------------------------------------------------------------------------}
unit UPrincipal;
interface
{-----------------------------------------------------------------------------------
---> Adicionado a Uses
IniFiles - Adicionado a Uses para criar e manipular arquivos de informação de
configuração, ou seja, usado para manipular arquivos "Ini" ou "Inf".
------------------------------------------------------------------------------------}
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IniFiles, ExtCtrls, jpeg, pngimage, ScktComp;
type
Tfrm_Principal = class(TForm)
img_background: TImage;
pnl_titulo: TPanel;
t_relogio: TTimer;
pnl_relogio: TPanel;
t_protecao: TTimer;
ss_server: TServerSocket;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure t_relogioTimer(Sender: TObject);
procedure t_protecaoTimer(Sender: TObject);
procedure ss_serverClientRead(Sender: TObject;
Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
fecha: Boolean;
end;
var
frm_Principal: Tfrm_Principal;
implementation
{$R *.dfm}
Function GetStateK (Key: integer): boolean;
begin
Result := Odd (GetKeyState (Key));
end;
procedure Tfrm_Principal.FormClose(Sender: TObject;
var Action: TCloseAction);Action := caFree;
end;
procedure Tfrm_Principal.FormKeyPress(Sender: TObject; var Key: Char);fecha := False;
end;
procedure Tfrm_Principal.FormShow(Sender: TObject);frm_Principal.Caption := data.ReadString('cliente', 'nome', '');
pnl_titulo.Caption := data.ReadString('cliente', 'nome', '');end;
procedure Tfrm_Principal.ss_serverClientRead(Sender: TObject;
Socket: TCustomWinSocket);end else
if Socket.ReceiveText = 'bloquear' then begin
end else
if Socket.ReceiveText = 'bloqueartela' then begin
end else
if Socket.ReceiveText = 'bloquearmouse' then begin
end else
if Socket.ReceiveText = 'bloquearteclado' then begin
end else
if Socket.ReceiveText = 'desligarmonitor' then begin
end else
if Socket.ReceiveText = 'tempoesgotado' then begin
end;
end;
procedure Tfrm_Principal.t_protecaoTimer(Sender: TObject);
begin
frm_Principal.SetFocus;
end;
procedure Tfrm_Principal.t_relogioTimer(Sender: TObject);
begin
pnl_relogio.Caption := '' + FormatDateTime('dddd", "dd" de "mmmm" de "yyyy', Now) + ' ' + FormatDateTime('hh:mm:ss', Now); // Obtem data atual do sistema
end;
end.
Form onde contém o Panel para contar o tempo:
>
unit UContador;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IniFiles, ExtCtrls, MPlayer;
type
Tfrm_Contador = class(TForm)
pnl_contador: TPanel;
t_aviso: TTimer;
t_contador: TTimer;
t_contadorR: TTimer;
mp_audio: TMediaPlayer;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure t_avisoTimer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
fecha: Boolean;
end;
var
frm_Contador: Tfrm_Contador;
implementation
{$R *.dfm}
Function GetStateK (Key: integer): boolean;
begin
Result := Odd (GetKeyState (Key));
end;
procedure Tfrm_Contador.FormClose(Sender: TObject;
var Action: TCloseAction);Action := caFree;
end;
procedure Tfrm_Contador.FormKeyPress(Sender: TObject; var Key: Char);fecha := False;
end;
procedure Tfrm_Contador.FormShow(Sender: TObject);mp_audio.FileName := ('media\temp_missing.wav');
mp_audio.Open;
frm_Contador.Top := Screen.Height - frm_Contador.Height - 40;
frm_Contador.Left := Screen.Width - frm_Contador.Width - 5;
end;
procedure Tfrm_Contador.t_avisoTimer(Sender: TObject); MessageDlg('Seu tempo está acabando!' + #13 + '' + #13 + 'O seu tempo está acabando, resta apenas 3 minutos! Salve o seu trabalho e/ou feche suas contas de rede sociais.', mtInformation, [mbOK], 0);
mp_audio.Play;
end;
end;
end.
O que eu quero é que os comandos do programa do balcão sejam enviados para o Servidor dos computadores clientes. Eu tento e não consigo, dá certo o Cliente se conecta ao Servidor e tudo, mais quando eu clico pra enviar o comando, nada acontece, principalmente para enviar o Texto do MaskEdit que tá no Balcão, para o Caption do Panel no Servidor. Aí tá sem o código fonte de enviar os comandos por que eu apaguei ontem e deixei o código assim como vocês tão vendo... Alguma solução?
Olá amigo.
Vou analisar e ver o que consigo descobrir pra te ajudar.
Até a próxima. :thumbsup:
Olá amigo.
Teria como compartilhar parte do seu código para que possamos analisar e ai te auxiliar?
Até a próxima. :thumbsup: