Ir para conteúdo
Fórum Script Brasil
  • 0

Janelas


mariquito

Pergunta

ola tenho um codigo que usa dois memos 1 para atualizar as janelas abertas no windows e o outro que serve como uma especie de aviso...sendo que ele só recebe o que tem de novo no memo1

bem queria saber se dar pra trabalhar com um memo só ?

eu queria que só o Memo2 funcionasse

O codigo é esse:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls;

type

TForm1 = class(TForm)

Timer1: TTimer;

Memo1: TMemo;

Button1: TButton;

Button2: TButton;

Memo2: TMemo;

Timer2: TTimer;

procedure Timer1Timer(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Timer2Timer(Sender: TObject);

private

Progresso : Boolean;

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

valor:string;

implementation

{$R *.dfm}

Function EnumWindowsProc (Wnd: HWND; mb: Tmemo): BOOL; stdcall;

var

caption: Array [0..128]of Char;

valor:string;

begin

Result := True;

if IsWindowVisible(Wnd) and ((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0) or (HWND(GetWindowLong(Wnd, GWL_HWNDPARENT)) = GetDesktopWindow)) and ((GetWindowLong(Wnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW) = 0) then

begin

SendMessage( Wnd, WM_GETTEXT, Sizeof( caption ),integer(@caption));

mb.lines.AddObject( AnsiUpperCase(caption)+' - ABERTO ', TObject( Wnd ));

end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

var ListAnt, ListAtu : TStringList;

IndiceA, Indice : Integer;

Encontrou: Boolean;

begin

if not Progresso then

try

Progresso := True;

ListAnt := TStringList.Create;

ListAtu := TStringList.Create;

ListAnt.Assign(memo1.lines);

memo1.Clear;

EnumWindows( @EnumWindowsProc, integer(memo1));

ListAtu.Assign(ListAnt);

indiceA := 0;

for IndiceA := 0 to pred(memo1.lines.Count) do

begin

Encontrou := False;

for indice := 0 to pred(ListAnt.Count) do

if ListAnt[indice] = memo1.lines[indiceA] then

begin

Encontrou := True;

Break;

end;

if not Encontrou then

begin

ListAtu.Add(memo1.lines[indiceA]);

valor:=memo1.lines[indiceA];

application.processmessages;

Self.Update;

end;

end;

memo1.lines.Assign(ListAtu);

Progresso := False;

finally

ListAnt.Free;

ListAtu.Free

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

memo1.Lines.Add('teste');

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

memo2.Clear;

end;

procedure TForm1.Timer2Timer(Sender: TObject);

begin

if valor <> ''then

begin

memo2.Lines.Add(valor);

valor:='';

end

end;

end.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...