Olá, bem, sou meio novo no delphi, 1º ano de escola técnica ainda, mas resolvi fazer por conta própria um projeto, onde haveria um circuito com LDR integrado, e porta paralela, com 3 pinos ligados. No começo eu iria só imprimir uma mensagem dizendo qual o nível de luminosidade do ambiente naquele momento, mas achei que era pouca coisa, e quis tentar fazer com que o brilho da tela mudasse conforme a luminosidade (Valor do inportb($379)) recebido.
Como o que estou aprendendo de delphi é bem básico ainda, toda a estrutura de form e porta paralela eu fiz de curioso, estudando em fóruns, sites etc, foi quando resolvi perguntar pra 2 dos meus professores se seria possível mudar o brilho da tela pelo delphi, e ambos responderam que não, mas disseram pra eu fazer um projeto que iria propor essa idéia, o controle do brilho como configuraçao num sistema. Eu tenho 3 prints da mesma tela, com brilho diferente (uma escura, outra normal e uma com brilho alto) e consegui fazer com que elas mudassem certinho de acordo com o valor que eu recebesse.
A questão é, encontrei uma funçao do Windows 7 chamada Brilho Adaptavel, que faz exatamente o que eu queria que meu programa fizesse, mudar o brilho da tela de acordo com a luminosidade, só que não faço a mínima idéia de como eles fizeram isso, e seria uma enorme alavancada no projeto se eu conseguisse fazer isso. Outra alternativa que pensei, porém não sei como usar no código, é como o programa DimScreen faz, pelo que eu entendi e testei, ele só escurece a tela, e esse nivel de "escuridão" é controlado em porcentagem tipo 10%, 20%, 50%, 100%, e queria saber se tem como eu fazer algo parecido no meu programa, ou se eu seria capaz de controlar o DimScreen automaticamente pelo meu programa para que ele escurecesse a tela dependendo da luminosidade.
Uso Delphi 7, segue o código do meu programa. Quaisquer erros por favor me avisem, fiz tudo sozinho sem ter aprendido na escola ainda, então se tiver algo que eu possa melhorar, ficaria muito feliz se me apontassem, Obrigado galera.
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;
Image3: TImage;
Timer2: TTimer;
Button2: TButton;
procedure Timer1Timer(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1; trocou:boolean; a,b:integer;
implementation
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}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit1.Text := IntToStr( inportb($379) );
a := inportb($379);
if (b<>a) then trocou:=false;
if (a = 127) and (trocou=false) then
begin
edit2.text := ('Iluminação Baixa');
Image3.Picture.LoadFromFile(GetCurrentDir() + '\Print Tela\Brilho Baixo2.jpeg');
trocou:=true; {pino 10}
end
else if (a = 63) and (trocou=false) then
begin
edit2.text :=('Iluminação Ideal'); {pino 11}
Image3.Picture.LoadFromFile(GetCurrentDir() + '\Print Tela\Brilho Normal2.jpeg');
trocou:=true;
end
else if (a = 31) and (trocou=false) then
begin
edit2.text:=('Iluminação Excessiva'); {pino 12}
Image3.Picture.LoadFromFile(GetCurrentDir() + '\Print Tela\Brilho Alto2.jpeg');
trocou:=true;
end
else if (a = 121) and (trocou=false) then
begin
edit2.Text:=('Placa Desconectada');
Image3.Picture.LoadFromFile(GetCurrentDir() + '\Print Tela\Brilho Normal2.jpeg');
trocou:=true;
end
b:=a;
end;
//Liga o timer e define trocou para false//
procedure TForm1.Image1Click(Sender: TObject);
begin
Timer1.enabled:=true;
trocou:=false;
end;
//Desliga o timer//
procedure TForm1.Image2Click(Sender: TObject);
begin
Timer1.Enabled:=false;
edit1.Text:='Clique em Iniciar';
edit2.text:=('');
Image3.Picture.LoadFromFile(GetCurrentDir()+'\Print Tela\Brilho Normal2.jpeg');
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;
end.
Question
Roodrigo_OM
Olá, bem, sou meio novo no delphi, 1º ano de escola técnica ainda, mas resolvi fazer por conta própria um projeto, onde haveria um circuito com LDR integrado, e porta paralela, com 3 pinos ligados. No começo eu iria só imprimir uma mensagem dizendo qual o nível de luminosidade do ambiente naquele momento, mas achei que era pouca coisa, e quis tentar fazer com que o brilho da tela mudasse conforme a luminosidade (Valor do inportb($379)) recebido.
Como o que estou aprendendo de delphi é bem básico ainda, toda a estrutura de form e porta paralela eu fiz de curioso, estudando em fóruns, sites etc, foi quando resolvi perguntar pra 2 dos meus professores se seria possível mudar o brilho da tela pelo delphi, e ambos responderam que não, mas disseram pra eu fazer um projeto que iria propor essa idéia, o controle do brilho como configuraçao num sistema. Eu tenho 3 prints da mesma tela, com brilho diferente (uma escura, outra normal e uma com brilho alto) e consegui fazer com que elas mudassem certinho de acordo com o valor que eu recebesse.
A questão é, encontrei uma funçao do Windows 7 chamada Brilho Adaptavel, que faz exatamente o que eu queria que meu programa fizesse, mudar o brilho da tela de acordo com a luminosidade, só que não faço a mínima idéia de como eles fizeram isso, e seria uma enorme alavancada no projeto se eu conseguisse fazer isso. Outra alternativa que pensei, porém não sei como usar no código, é como o programa DimScreen faz, pelo que eu entendi e testei, ele só escurece a tela, e esse nivel de "escuridão" é controlado em porcentagem tipo 10%, 20%, 50%, 100%, e queria saber se tem como eu fazer algo parecido no meu programa, ou se eu seria capaz de controlar o DimScreen automaticamente pelo meu programa para que ele escurecesse a tela dependendo da luminosidade.
Uso Delphi 7, segue o código do meu programa. Quaisquer erros por favor me avisem, fiz tudo sozinho sem ter aprendido na escola ainda, então se tiver algo que eu possa melhorar, ficaria muito feliz se me apontassem, Obrigado galera.
Edited by Roodrigo_OMLink to comment
Share on other sites
28 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.