Você está aqui: Cards de AutoCAD Civil 3D |
||
|
||
|
|
||
Delphi ::: Dicas & Truques ::: Bilbiotecas Estáticas (obj) e Dinâmicas (DLLs) |
Como criar DLLs usando Delphi? É possível criar DLLs para o Windows usando Delphi?Quantidade de visualizações: 13551 vezes |
|
As DLLs (Dynamic Link Libraries - Bibliotecas de Vínculo Dinâmico) são arquivos compilados bem similares aos arquivos .exe que estamos acostumados a criar em Delphi. Uma DLL contém rotinas, recursos ou ambos. Mas, não pode ser executada por si só, ou seja, se dermos duplo-clique em uma DLL nada acontecerá. Isso acontece porque uma DLL é desenvolvida para ser usada juntamente como outros aplicativos e/ou outras DLLs. No ambiente Windows encontramos muitas DLLs. Na verdade, o Windows e sua Win32 API é uma coleção de DLLs. Se olharmos nos diretórios System ou System32 encontraremos várias delas, incluindo kernel32.dll, gdi32.dll, user32.dll, shell32.dll, comctl32.dll, entre outras. Mas, para que servem as DLLs? É possível desenvolver aplicações Windows sem usá-las? Vamos às respostas. As DLLs existem com o propósito de compartilhar código entre aplicações. Isso quer dizer que uma mesma DLL pode estar sendo usada por vários programas ao mesmo tempo. E isso é verdade no ambiente Windows. Todos os programas de interface gráfica escritos em Delphi, C, C++, etc e que usam os componentes gráficos do Windows estão de alguma forma fazendo uso de códigos disponíveis em DLLs do sistema. Sem o aproveitamente de tais códigos os executáveis ficariam enormes, visto que cada um teria que implementar as rotinas de desenho e diretivas de criação de janelas. Ao aproveitar as funcionalidades disponíveis nas DLLs do sistema esta tarefa se torna muito mais fácil. Mas, além de usar DLLs de terceiros com códigos já prontos e devidamente testados, você também pode criar suas próprias DLLs. O motivo disso é que você pode querer compartilhar algumas de suas rotinas entre os vários aplicativos que você desenvolve. A maior vantagem disso é que, ao atualizar ou corrigir o código em uma DLL você estará certo de que todas as aplicações que fazem uso desta DLL automaticamente perceberão e tirarão proveito da atualização. Entre as vantagens do uso de DLLs podemos citar: a) Podemos compartilhar rotinas e códigos entre várias aplicativos; b) Ao mantermos boa parte de nossos códigos em DLLs nós conseguimos economizar memória e espaço em disco; c) Outros desenvolvedores poderão usar nossas rotinas e lógica mesmo sem ter acesso aos nossos códigos-fontes; d) Podemos usar códigos escritos em outras linguagens em nossos programas Delphi. Isso quer dizer que uma DLL escrita em C/C++ poderá ser usada em um programa Delphi sem qualquer problema. A prova disso é que as DLLs do Windows são escritas em C/C++. Hora de criar sua primeira DLL em Delphi. Consulte outras dicas nesta seção para aprender a fazê-lo. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: VCL - Visual Component Library ::: TComboBox |
Como usar a propriedade Items da classe TComboBox do DelphiQuantidade de visualizações: 13526 vezes |
|
A propriedade Items da classe TComboBox representa um objeto da classe TStrings, a classe base para objetos que representam uma lista de strings. Isso quer dizer que podemos acessar a propriedade Items e usar todos os métodos e propriedades da classe TStrings, tais como Add(), Clear(), Delete(), Exchange(), etc. Veja, por exemplo, como usar o método Add() para adicionar um novo item no ComboBox:
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos adicionar um novo item ao ComboBox
comboBox1.Items.Add('Arquivo de Códigos');
end;
É possível obter um referência à propriedade Items para manipular os itens do ComboBox indiretamente. Veja:
procedure TForm1.Button1Click(Sender: TObject);
var
lista: TStrings;
begin
// vamos obter a lista de itens do ComboBox
lista := comboBox1.Items;
// vamos adicionar um novo item à lista
lista.Add('Arquivo de Códigos');
end;
Esta técnica é útil quando queremos inserir itens em um TComboBox a partir de uma função ou procedure. Veja:
// procedure personalizada para inserir itens em um TComboBox
procedure inserirItensComboBox(lista: TStrings);
begin
lista.Add('Arquivo de Códigos');
lista.Add('Osmar J. Silva');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos chamar a procedure que adiciona os itens no ComboBox
inserirItensComboBox(ComboBox1.Items);
end;
Para finalizar, veja como escrever uma função personalizada que constrói e retorna uma lista de strings. Note como usamos o objeto TStrings retornado para preencher o ComboBox:
// função personalizada que constrói e retorna uma lista
// de strings
function obterLista: TStrings;
var
lista: TStringList;
begin
lista := TStringList.Create;
lista.Add('Arquivo de Códigos');
lista.Add('Osmar J. Silva');
Result := lista;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos obter a lista de strings
ComboBox1.Items := obterLista;
end;
Observe que, embora o retorno seja TStrings, no corpo da função nós construímos um objeto da classe TStringList. Isso acontece porque TStrings é uma classe abstrata e, portanto, não podemos chamar seu construtor. Como TStringList herda de TStrings e é uma classe concreta, esta é a escolha mais óbvia. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
CSS ::: Dicas & Truques ::: Cores de Fundo e Imagens de Fundo |
Exemplos de uso da propriedade background do CSS para definições cores e imagens de fundo em elementos HTMLQuantidade de visualizações: 9483 vezes |
|
Nesta dica mostrarei alguns exemplos muito úteis da propriedade background do CSS para definirmos cores e imagens de fundo para a página HTML e também para os elementos HTML: Exemplo 1: Como definir a cor de fundo para a página HTML usando a propriedade background:
body {background: #0099CC}
Exemplo 2: Como definir a cor de fundo e a imagem de fundo para a página HTML usando as propriedades background e url:
body {background: #0099CC url(fundo.gif)}
Exemplo 3: Como definir a cor de fundo, a imagem de fundo para a página HTML e a forma de repetição usando as propriedade background, url e repeat-x:
body {background: #0099CC url(fundo.gif)
repeat-x}
Exemplo 4: Como definir a cor de fundo, a imagem de fundo para a página HTML, a forma de repetição e como fixar a imagem de fundo usando as propriedade background, url, repeat-x e fixed:
body {background: #0099CC url(fundo.gif) repeat-x
fixed}
Exemplo 5: Como definir a cor de fundo, a imagem de fundo para a página HTML, sem repetição, fixa e posições inicias usando as propriedade background, url, repeat-x e fixed:
body {background: #0099CC url(fundo.gif) no-repeat
fixed 40 60}
|
C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como ordenar os elementos de vetor C++ usando a Ordenação da Bolha (Bubble Sort) - RevisadoQuantidade de visualizações: 15933 vezes |
|
O método ou algorítmo de ordenação da bolha é uma das técnicas mais simples de ordenação. No entanto, este método não é eficiente, visto que o tempo despendido para sua execução é muito elevado se comparado à outros métodos existentes. Geralmente usamos este método quando queremos ordenar 50 elementos ou menos. O entendimento deste método é fácil. Se estivermos ordenando os valores do menor para o maior, o método da bolha percorre os elementos da matriz, comparando e movendo o menor valor para a primeira posição do vetor (array), tal qual bolhas indo para a superfície. Veja um exemplo completo:
#include <iostream>
using namespace std;
void bubble_sort(int matriz[], int tam){
int temp, i, j;
for(i = 0; i < tam; i++){
for(j = 0; j < tam; j++){
if(matriz[i] < matriz[j]){
temp = matriz[i];
matriz[i] = matriz[j];
matriz[j] = temp;
}
}
}
}
int main(int argc, char *argv[])
{
int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11};
int const quant_elem = 9;
// imprime a matriz sem a ordenação
for(int i = 0; i < quant_elem; i++){
cout << valores[i] << " ";
}
// vamos ordenar a matriz
bubble_sort(valores, quant_elem);
// imprime a matriz ordenada
cout << endl;
for(int i = 0; i < 9; i++){
cout << valores[i] << " ";
}
cout << "\n" << endl;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executarmos este código nós teremos o seguinte resultado: 4 6 2 8 1 9 3 0 11 0 1 2 3 4 6 8 9 11 Pressione qualquer tecla para continuar... |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de C - Como converter minutos em segundos usando CQuantidade de visualizações: 763 vezes |
|
Pergunta/Tarefa: Escreva um programa C para converter minutos em segundos. Você deverá criar uma função converter() que receberá, como argumento, um número inteiro representando os minutos e retornará, também como um inteiro, os segundos correspondentes. Os minutos deverão ser informados pelo usuário. Sua saída deverá ser parecida com: Informe os minutos: 15 A quantidade de segundos é: 900 Veja a resolução comentada deste exercício em C:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
// protótipo da função usada para converter minutos
// em segundos
int converter(int minutos);
// função principal do programa
int main(int argc, char *argv[]){
// variáveis usadas na resolução do problema
int minutos, segundos;
setlocale(LC_ALL,""); // para acentos do português
// vamos pedir para o usuário informar os minutos
printf("Informe os minutos: ");
scanf("%d", &minutos);
// agora vamos chamar a função converter() para converter
// os minutos em segundos
segundos = converter(minutos);
// e mostramos o resultado
printf("A quantidade de segundos é: %d", segundos);
printf("\n\n");
system("PAUSE");
return 0;
}
// função usada para converter minutos em segundos
int converter(int minutos){
int segundos = minutos * 60;
return segundos;
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





