Você está aqui: Delphi ::: Win32 API (Windows API) ::: Formulários e Janelas |
Como usar a função FindWindow() da API do Windows para retornar o handle de uma determinada janela de alto-nívelQuantidade de visualizações: 22180 vezes |
A função FindWindow() da API do Windows é muito útil quando precisamos obter o handle de uma determinada janela de alto-nível (esta função não nos permite localizar janelas-filhas). Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- HWND FindWindow( LPCTSTR lpClassName, LPCTSTR lpWindowName ); Esta função possui dois parâmetros: lpClassName - É um ponteiro para uma string terminada em null que especifica o nome de classe ou um átomo de classe criado por uma chamada anterior à função RegisterClass() ou RegisterClassEx(). O átomo deve estar no valor de baixa-ordem (low-order) de lpClassName e o valor de alta-ordem (high-order) deve ser zero. Se lpClassName apontar para uma string, ele especifica o nome de classe da janela. O nome de classe pode ser qualquer nome registrado anteriormente com uma chamada à RegisterClass() ou RegisterClassEx(), ou qualquer nome de classe dos controles pré-definidos. Se lpClassName for null, a funções encontrará todas as janelas cujos títulos sejam iguais ao parâmetro lpWindowName. lpWindowName - É um ponteiro para uma string terminada em null que especifica o nome da janela, ou melhor, o título da janela. Se este parâmetro for null, todas as janelas serão consideradas e a função FindWindow() retornará a primeira janela da lista. Veja um trecho de código no qual obtemos um handle para a janela do Bloco de Notas. ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var hNotepadWindow: HWND; begin hNotepadWindow := FindWindow('notepad', nil); ShowMessage('O handle da janela é: ' + IntToStr(hNotepadWindow)); end; ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var hNotepadWindow: HWND; tituloJanela: array[0..255] of Char; tamTituloJanela: Integer; begin hNotepadWindow := FindWindow('notepad', nil); tamTituloJanela := 256; // vamos fechar a janela com o handle obtido // primeiro obtemos o título da janela a ser fechada GetWindowText(hNotepadWindow, tituloJanela, tamTituloJanela); ShowMessage('Vou fechar a janela do Bloco de Notas com o título: ' + tituloJanela); // vamos fechar a janela SendMessage(hNotepadWindow, WM_SYSCOMMAND, SC_CLOSE, 0); end; ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var hNotepadWindow: HWND; classeJanela: array[0..255] of Char; tamClasseJanela: Integer; begin // vamos localizar e fechar uma janela baseado apenas em seu título hNotepadWindow := FindWindow(nil, 'Sem título - Bloco de notas'); tamClasseJanela := 256; // encontramos a janela? if hNotepadWindow <> 0 then begin // vamos obter o nome de classe da janela GetClassName(hNotepadWindow, classeJanela, tamClasseJanela); // vamos perguntar ao usuário se ele deseja mesmo fechar a janela if Application.MessageBox(PChar('Deseja mesmo fechar a janela com o nome de classe: ' + classeJanela + '?'), 'Fechar', MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2) = ID_YES then begin // vamos fechar a janela SendMessage(hNotepadWindow, WM_SYSCOMMAND, SC_CLOSE, 0); end; end else begin ShowMessage('Não foi possível obter o handle da janela'); end; end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
![]() |
Delphi ::: Imagens, Gráficos e Cores ::: TBitmap (A classe TBitmap) |
Computação gráfica em Delphi - Como usar a classe TBitmap do DelphiQuantidade de visualizações: 16455 vezes |
A classe TBitmap encapsula um bitmap Windows (HBITMAP, um handle para um bitmap), incluindo sua paleta (HPALETTE, um handle para uma paleta de cores). Esta classe herda de TGraphic e é usada para criar, manipular (redimensionar, rolar, rotacionar, pintar, etc) e armazenar imagens na memória e como arquivos em disco. A classe TBitmap contém muitas propriedades e métodos úteis. Entre seus métodos podemos citar LoadFromFile(), usado para carregar uma imagem bitmap a partir do disco e guardá-la em memória como um objeto TBitmap. Veja o trecho de código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm2.Button1Click(Sender: TObject); var bmp: TBitmap; begin // vamos criar o bitmap bmp := TBitmap.Create; // vamos carregar a imagem e guardá-la no bitmap bmp.LoadFromFile('foto.bmp'); // vamos desenhar o bitmap no formulário // começando nas coordenadas x = 0; y = 0 a partir // do canto superior esquerdo da área cliente do formulário Form2.Canvas.Draw(0, 0, bmp); // vamos liberar o bitmap bmp.Free; end; Aqui nós carregamos o bitmap foto.bmp e o desenhamos na superfície do formulário usando o método Draw() do Canvas do formulário. É possível também redimensionar o bitmap ao desenhá-lo no formulário. Veja este novo trecho de código: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm2.Button1Click(Sender: TObject); var bmp: TBitmap; retang: TRect; // um objeto TRect begin // vamos criar o bitmap bmp := TBitmap.Create; // vamos carregar a imagem e guardá-la no bitmap bmp.LoadFromFile('foto.bmp'); // vamos redimensionar o bitmap na memória de // acordo com o retângulo abaixo retang.Top := 0; retang.Left := 0; retang.Right := 200; retang.Bottom := 150; // vamos desenhar o bitmap usando o método // StretchDraw da classe TCanvas Form2.Canvas.StretchDraw(retang, bmp); // vamos liberar o bitmap bmp.Free; end; Aqui nós usamos um objeto do registro (record) TRect para criar um retângulo especificando o tamanho do bitmap e fornecemos tal retângulo, juntamente com o bitmap, para o método StretchDraw() da classe TCanvas. Este método redimensiona a imagem antes de desenhá-la na superfície do formulário. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como retornar a quantidade de itens em uma TListBox do Delphi usando a propriedade Items.CountQuantidade de visualizações: 13040 vezes |
Em algumas situações nós precisamos obter a quantidade de itens em uma TListBox. Isso pode ser feito por meio da propriedade Count do objeto Items, uma instância da classe TStrings. Esta propriedade contém um valor inteiro que representa a quantidade de elementos na ListBox. Veja:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var quant: Integer; begin // vamos adicionar dois itens na TListBox ListBox1.Items.Add('Item 1'); ListBox1.Items.Add('Item 2'); // vamos obter a quantidade de itens quant := ListBox1.Items.Count; // exibe o resultado ShowMessage('Quantidade de elementos: ' + IntToStr(quant)); end; É possível também obter a quantidade de itens em uma TListBox acessando a propriedade Count da classe TCustomListBox. Esta propriedade é herdada pela classe TListBox. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- quant := ListBox1.Count; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como retornar o item selecionado em uma ListBox do Delphi usando a propriedade ItemIndexQuantidade de visualizações: 20253 vezes |
O item selecionado em uma TListBox pode ser obtido fornecendo-se o índice do ítem selecionado como índice para a propriedade Items (do tipo TStrings) da ListBox. Veja como isso é feito no trecho de código abaixo:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var item_selecionado: String; begin // vamos obter o item selecionado na ListBox item_selecionado := ListBox1.Items[ListBox1.ItemIndex]; // mostra o resultado ShowMessage('O item selecionado é: ' + item_selecionado); end; Contudo, este código provocará uma exceção do tipo EStringListError com a mensagem "List index out of bonds(-1)" se nenhum item estiver selecionado na ListBox. Para evitar tal erro, certifique-se de verificar se algum item foi selecionado antes de tentar obtê-lo. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var item_selecionado: String; begin // vamos obter o item selecionado na ListBox if ListBox1.ItemIndex > -1 then begin item_selecionado := ListBox1.Items[ListBox1.ItemIndex]; // mostra o resultado ShowMessage('O item selecionado é: ' + item_selecionado); end else ShowMessage('Nenhum item selecionado.'); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
Códigos Fonte |
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |