Olá galera, nesta Quick Tips, irei falar um pouco mais sobre uma classe não muito utilizada, mas de muita ajuda para os desenvolvedores, a TScreen, localizada na unit Forms.

 

Objetivo é representar o estado da tela em que um aplicativo é executado. Representa as propriedades que mantém o controle de quais Forms e Data Modules foram instanciados pela aplicação, armazena o Form ativo e o Controle ativo dentro do mesmo. Armazena também informações de resolução de tela, cursores, fontes disponíveis no Sistema Operacional, controle dos monitores onde deve aparecer uma determinada imagem além de sua resolução

 

Existe uma variável global chamada Screen, do tipo Froms.TScreen, que já esta instancia através de um GUI. Por isso podemos utilizar ela sem termos que instanciar a mesma.

 

Vamos agora utilizar alguns recursos disponíveis nesta poderosa e interessante classe, mostrarei em seqüência as finalidades de cada comando e a forma de utilizar. Observe que estou fazendo uso de um ListBox, para adicionar os valores obtidos, porém nada impede de você usar um Edit por exemplo, e também estou fazendo uso de For, ou seja precisamos declara uma variável do tipo Integer.

 

Obtendo Width da resolução

ListBox1.Items.Add('Width : ' +IntToStr(Screen.Width));

 

Obtendo Height da resolução

ListBox1.Items.Add('Height : ' +IntToStr(Screen.Height));

 

 

Listar o nome dos forms instanciados de sua aplicação

for I := 0 to -1 + Screen.FormCount do

    ListBox1.Items.Add(Screen.Forms[I].Name) ;

 

Listar o nome dos DataModules instanciados de sua aplicação

for I := 0 to -1 + Screen.DataModuleCount do

    ListBox1.Items.Add(Screen.DataModules[I].Name) ;

 

Quantidade de forms criados

ShowMessage('Numero de Formulário : ' + IntToStr(

            Screen.FormCount));

 

Listar todas as fontes instaladas no Windows

ListBox1.Items.AddStrings(Screen.Fonts);

 

Centralizando o Formulário

Form1.Left := (Screen.Width - Form1.Width) div 2;

Form1.Top := (Screen.Height - Form1.Height) div 2;

 

Definindo um curso em tempo de execução

Screen.Cursor := crDrag;

 

Mudar a Fonte do Hint de sua aplicação

Screen.HintFont.Name := 'Book Antiqua';

 

 

Uma função extra:

 


Exibindo todos os componentes e units de cada componente no Form

procedure TForm1.SpeedButton1Click(Sender: TObject);

var

I: Integer;

begin

 for I := 0 to ComponentCount - 1 do

 begin

   ListBox2.Items.Add(Components[I].Name + ' = '+     

   Components[I].UnitName );

 end;

end;

 

Fica ai então esta dica para obtermos informações da instancia do seu aplicativo.

 

Fico por aqui ate à próxima Quick Tips.

 

Um abraço

 

Wesley Y

wyamazack@rwsolution.com.br