Ir para conteúdo
Fórum Script Brasil

Roodrigo_OM

Membros
  • Total de itens

    18
  • Registro em

  • Última visita

Sobre Roodrigo_OM

Roodrigo_OM's Achievements

0

Reputação

  1. Sim sim, o problema é como fazer isso se não sei como fazer o programa identificar se a luz está acesa ou não, ou seja, ler o status de cada pino separadamente da porta paralela =/
  2. Olá, estou fazendo uma aplicação que controla leds pelo programa, mas um pouco diferente: Tenho 4 leds e um aparelho de RF ligados na porta paralela pelas portas de envio E de recebimento, preciso fazer com que, ao afastar o RF (e perder o alcance), os leds desliguem, exceto os que estiverem marcados nos Checkbox, ou seja, se eu marcar os leds 3 e 4, o programa envia 12 para a Porta Paralela mantendo os leds 3 e 4 acesos e desligando os outros. Mas tenho um problema nisso tudo, ex: Leds 1, 2 e 3 ligados, 3 e 4 marcados no checkbox (ou seja, caso estivessem ligados, o programa deveria manter o 3 e 4 acesos). Ao afastar do RF, o programa desliga os leds 1 e 2, mantem o 3 ligado, MAS liga o 4. E isso é um erro no objetivo do programa, eu queria que ele entendesse que, se o led já estiver desligado, não é pra ligá-lo de volta nessa operaçao. Alguma ideia de como posso fazer isso?
  3. Achei um meio mais facil, mas ele vem com outra dúvida: Ao invés de definir toda URL do programa, seria mais facil definir somente a porta que seria usada (Os 4 numeros depois de 127.0.0.1)? E se for, como faço isso?
  4. Acho que Intraweb não tem essa funçao, so se estiver com outro nome ou for necessario algum comando, coisa que eu não sei D:
  5. Olá! Estou no 2º ano da escola técnica e estou trabalhando em uma aplicação Intraweb para que todo o sistema possa ser acessado tambem pelo celular, mas tenho uma dúvida quanto a URL da aplicação: Como a ideia é ter o sistema acessado por mobile, digitar toda url do programa intraweb em um celular é complicado, pois o usuario teria que substituir o 127.0.0.1 pela ip da rede de seu pc, alem de ter que digitar todo o resto da url que não é algo pequeno, então eu e meu grupo pensamos em gerar um QR Code e abri-lo na pagina para facilitar o acesso pelos celulares, contando que eles tenham leitores de QR Code ( O que a maioria já tem), porem, a url muda toda vez que se reinicia o programa, tornando a opçao do QR Code bem menos viavel, então queria saber se é possivel definir um padrão para a URL do programa, ou se alguém tem uma ideia melhor e mais viavel de como mandar um link para o celular direto pelo programa, nos ajudaria bastante. Desde já agradeço, abraços!
  6. Segui pelo caminho mais complicado e fiz um botão que cria o arquivo .Ini salvando a configuração do ScrollBar1.Position, e no FormCreate fiz ele rodar esse .Ini, agora eu posso controlar quando eu quero ou não salvar o brilho. Muito Obrigado Jhonas, o que aprendi com esse projeto, e nesse fórum, são coisas que eu provavelmente não iria aprender tão cedo na escola e me dão mais motivação ainda pra continuar aprendendo a programar, fiz uma ótima escolha na minha vida ao ir pra escola técnica e escolher Informática. PS: Você parece MUITO com um professor meu, tem certeza que você não tem nenhum irmão chamado Sérgio não? KKK Abraços
  7. Daqui a pouco to voltando da casa da minha namorada, e dou uma testada nisso, acho que até la eu tenho alguma idéia
  8. Meu maior problema é usar esse GetDeviceGammaRamp e o SetDeviceGammaRamp, porque eu me enrolei um pouco pra entender como funcionava essa parte do código, mas eu não consigo pensar em um jeito de transformar o GetDeviceGammaRamp em um valor que eu possa manipular, sei que não é assim, mas sempre que eu tento utilizar ele numa label, por exemplo Label3.Caption:=(GetDeviceGammaRamp) ele da erro de not enough actual parameters. Se eu tentar jogar ele em um scroll, será que funciona?
  9. Acho que eu teria que deixar o Label3.Caption := inttostr(ScrollBar1.Position); E tentar fazer de um jeito que a ScrollBar iniciasse na posição que ela estava quando o programa foi fechado, ou inicie na posição correspondente ao brilho da tela da pessoa, sem precisar de uma execução anterior como na primeira opção, mas não faço a mínima idéia de como fazer nenhuma dessas duas, sei que na primeira eu teria que ter um arquivo externo pra salvar essa configuração, certo? Mas na segunda opção parece ser mais fácil, só não tenho muita certeza de qual variavel usar, e como setar o ScrollBar1.Position sem criar conflito com o SetBrilhoMonitor(ScrollBar1.Position); Abraço
  10. Agora me surgiu outra dúvida, que já tentei pensar numa solução mas não consegui, que seria o programa mostrar o nível de brilho antes deu mudar ele, porque como ele ta agora, não mostra nada, só mostra quando eu mexo na scrollbar, e ai ele começa em 0 ou outro numero da posiçao na scrollbar. Tinha pensado em mudar essa parte: Label3.Caption := inttostr(ScrollBar1.Position); Para: Label3.Caption := inttostr(SetBrilhoMonitor); Mas como esperado, não funciona, não sei se o problema é na conversão para string ou se não dá pra usar o SetBrilhoMonitor nesse caso. Por que fui testar em outros PCs e eu acabo me perdendo na quantidade de brilho que havia antes de eu mexer no ScrollBar e se outras pessoas fossem testar, também poderiam se perder. Pensei também em usar a Variável DC, mas eu recebo um número enorme :s
  11. Sim sim, mas a intenção era essa, limitar a 3 níveis somente (Baixa, Média e Alta). Eu não achei que teria como usar todas as variações e ainda estava na idéia de usar os prints, por isso limitei a esses 3 quando falei com o professor. Eu até mudaria a placa, mas como pediram pra eu apresentar o programa segunda-feira, prefiro deixar assim mesmo. Tudo está funcionando certinho de acordo com os testes que eu fiz aqui, e depois testarei no computador do meu amigo. Só mais uma coisa: Será que botar o programa em Windows XP dará algum problema de compatibilidade? Acredito que não, mas sempre fico preocupado com isso... Obrigado Jhonas, muito, muito obrigado mesmo.
  12. O código final ficou assim: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, jpeg, shellapi; type TForm1 = class(TForm) Timer1: TTimer; Edit1: TEdit; Edit2: TEdit; Leds: TLabel; StaticText1: TStaticText; Label1: TLabel; Image1: TImage; Image2: TImage; Timer2: TTimer; Button2: TButton; ScrollBar1: TScrollBar; procedure Timer1Timer(Sender: TObject); procedure Image1Click(Sender: TObject); procedure Image2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ScrollBar1Change(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; type TGamma = packed record Vermelho: array[0..255] of Word; Verde: array[0..255] of Word; Azul: array[0..255] of Word; end; var Form1: TForm1; trocou:boolean; a,b:integer; implementation uses Math; function inportb(EndPorta:integer):byte stdcall; external 'inpout32.dll' name 'Inp32'; procedure outportb(EndPorta:integer;Valor:integer); stdcall; external 'inpout32.dll' name 'Out32'; {$R *.DFM} //Configuração do Brilho e afins// procedure SetBrilhoMonitor(brilho: Byte); var i, Value: Integer; DC: HDC; gama: tGamma; begin // Calcular a nova gama de acordo com o brilho passado for i := 0 to 255 do begin Value := Min(Round(i * (brilho + 128) / 255), 255); gama.Vermelho[i] := Value shl 8; gama.verde[i] := Value shl 8; gama.Azul[i] := Value shl 8; end; // Aplicar a nova calibragem para o monitor DC := GetDC(0); SetDeviceGammaRamp(DC, gama); ReleaseDC(0, DC); end; //ScrollBar procedure TForm1.ScrollBar1Change(Sender: TObject); begin // testar usando o componente ScrollBar1 // min = 0 e max = 255 SetBrilhoMonitor(ScrollBar1.Position); Edit1.Text := inttostr(ScrollBar1.Position); end; //Timer procedure TForm1.Timer1Timer(Sender: TObject); begin Edit1.Text:=IntToStr( inportb($379) ); a := inportb($379); if (a = 127) then begin edit2.text := ('Iluminação Baixa'); SetBrilhoMonitor(35); ScrollBar1.Position := 35; trocou:=true; {pino 10} end else if (a = 63) then begin edit2.text :=('Iluminação Ideal'); {pino 11} SetBrilhoMonitor(100); ScrollBar1.Position := 100; trocou:=true; end else if (a = 31) then begin edit2.text:=('Iluminação Excessiva'); {pino 12} SetBrilhoMonitor(185); ScrollBar1.Position := 185; trocou:=true; end else if (a = 121) then begin edit2.Text:=('Placa Desconectada'); SetBrilhoMonitor(100); ScrollBar1.Position := 100; end; end; //Liga o timer e define trocou para false// procedure TForm1.Image1Click(Sender: TObject); begin Timer1.enabled:=true; end; //Desliga o timer// procedure TForm1.Image2Click(Sender: TObject); begin Timer1.Enabled:=false; edit1.Text:='Clique em Iniciar'; edit2.text:=(''); SetBrilhoMonitor(100); end; //Pergunta se o usuário quer entrar no site// procedure TForm1.FormCreate(Sender: TObject); begin if Application.MessageBox('Deseja entrar no nosso site?','', mb_iconquestion + mb_yesno) = idYes then ShellExecute(Handle, nil, 'J:\Programa Lumus - FUCKING FINISHED MOTHERFUCKER AW YEAH\site projeto\index.html' , nil, nil, SW_SHOWNORMAL) else; ShowWindow(Handle, SW_SHOWMAXIMIZED); end; //Mudar brilho ao fechar programa procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin ScrollBar1.Position := 100; /// brilho padrão ao sair end; end. Mas ainda assim o FormClose ainda não muda o brilho quando fecha o programa, não sei porque, por isso mandei o código todo, acho que ajustei alguma coisa errada nele e por isso não funciona.
  13. Opa, consegui chegar em casa mais cedo e fiz todos os ajustes no programa, e tenho 99,9% de certeza que deu certo, é porque meu computador não tem entrada pra porta paralela e a placa não está comigo, está com meu amigo, mas fiz uns testes mudando valores, etc, e parece que está tudo certo. Só mais uma pergunta: Adicionei essa linha de código no programa: procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin SetBrilhoMonitor(100); ScrollBar1.Position := 100; end; Mas ela simplesmente não funciona, não sei se está certa, mas o brilho da tela não volta ao normal quando eu fecho o programa. EDIT: Agora que vi seu último post, pelo jeito acho que botei o código certo, mas ainda assim não está funcionando
  14. Dei uma improvisada aqui e consegui testar o que você mandou, e deu tudo certo, mas só uma pergunta: A scrollbar só vai até 100 mesmo? Não tem como passar? porque o a tela aqui que eu improvisei o brilho era maior, ai fui testar ficou mais escurinho e não volta mais HUAHSUAHUSHAUSHUA. E também na hora de apresentar o programa, queria tentar pôr um brilho bem alto quando eu recebesse 31 (Iluminaçao alta), mas se não der não tem problema, faço uns ajustes e fica certinho. Edit: Consegui mudar essa tolerância de brilho modificando o Value := Min(Round(i * (brilho + 128) / 255), 255); Para Value := Min(Round(i * (brilho + 200) / 255), 255); Mas ainda assim não tem uma diferença muito absurda do ponto 0 pro 100. Acho que quando botei as prints exagerei muito na diferença e o ideal seria como tá o programa agora, mas só por curiosidade, tem como "aumentar" essa "diferença" de brilho do ponto 0 e 100, tipo, o 0 BEM escuro, o 50 normal como a maioria usa e o 100 BEM claro? Se eu tirar a linha de código que faz com que ele conte o brilho a partir do anterior, será que funciona como eu quero? Abraços
  15. Como eu estou na casa da minha avó, quando eu chegar em casa eu implemento esse código, faço os ajustes necessários, e aviso aqui se deu tudo certo. Muito obrigado Jhonas, abraço.
×
×
  • Criar Novo...