Olá pessoal, bom dia.
Mais uma vez precisando dos colegas.

Primeiro vou falar do programa criado por mim já a alguns anos, estou na versão 
1.8. O mesmo é utilizado em assistências técnica em manutenção de computadores, 
portanto, meu programa é usado em um/dois/... DVDs (dependendo da necessidade 
da empresa). O sistema possui proteção criada por mim mesmo através de 
PenDrive, o mesmo tem que ser inserido para liberar o uso.
Abrir um parentese aqui, os programas a serem instalados são na maioria das 
vezes, pirata. Seguindo a lógica (e seria uma pergunta):

"Uma faca serve para passar margarina no pão e também para matar uma pessoa. A 
faca em si não é boa nem mau, a faca é uma faca e quem a criou também não é 
mau. Quem vai usar a faca é o responsável pelo ato do seu uso" (ditado do Dr. 
Lair Ribeiro).
Se uma empresa que me pede para desenvolver um programa (seja ele qual for) e 
coloca as senhas piratas o problema é dele, meu programa apenas executa o 
aplicativo de instalação e agiliza os processos, eu não sou responsável pelos 
atos que as empresas usam, correto?
A versão 2.0 do meu programa faz toda a instalação no computador sem 
intervenção do usuário, com isso, o técnico seleciona os programas e clica em 
instalar e sai de perto do computador e vai trabalhar noutro computador. Esta 
versão atual ainda necessita da intervenção do técnico.

Bom, este foi a pergunta referente a legalidade da minha parte (programador). 
Agora vem a pergunta da lógica de uma rotina, preciso da opinião de vocês e, se 
possível, como fazer (dependendo do processo). Estou querendo economizar código 
e recursos pois como o programa é grande, tenho problemas de instalar alguns 
programas como AutoCad que exige recursos de memória, então, resolvi criar DLLs 
de alguns processos que não são usados com frequência, é o caso da parte de 
utilitário que fazem parte do programa como otimizações do sistema, remoção de 
malwares, limpeza de arquivos e no registro do windows, e outras parafernalhas 
que os técnicos usam com frequência :). Antes eram tudo num .exe até mesmo as 
figuras dos botões e em TImage, ficava entupido de coisas num lugar só. Agora, 
nesta versão coloquei TODAS as imagens fora do .exe em um .zip criptografado e 
utilizo TStreeam na hora da abertura, só aí, tenho um ganho de mais de 50%, as 
DLLs ainda tenho de criar, não quero nem pensar nisso agora.

Poxa, que texto grande para perguntar uma rotina, espero que vocês tenham 
paciência e me dêem uma ajudinha, vamos lá...

As vezes fico perdido em fazer um processo, existem diversas formas, mas não 
sei qual seria a melhor para economizar linhas de código e tempo.
Tenho 240 botões, cada botão instala um programa. Preciso verificar qual(is) 
botão(ões) estão marcados (ia usar a Tag do botão, mas ela já está sendo usado 
para outro processo). Como aquele botão Bugado não funcionou, e também resolvi 
ficar com ele assim mesmo, resolvi colocar TLabel abaixo do botão para 
controlar o processo de seleção, criando um efeito que eu queria que o botão 
fizesse, o "Down = True" (cor=clLime e Tag=1 nos TLabel), quando o botão for 
clicado para selecionar, a cor e a Tag do TLabel muda. Até aí tudo bem. A 
pergunta é:

Qual seria a melhor maneira para fazer um loop e armazenar quais são as Tag=1 
(usando a tag do TLabel)? Da seguinte forma:

Preciso colocar no Regedit: O nome do programa, a colocação (colocação é a 
ordem de instalação, porque tem programas que devem ser instalados antes de 
outros) e se já foi instalado ou não (porque tenho de usar esta última opção 
caso o computador seja desligado por falta de energia ou outro problema, e 
desejo continuar de onde parou), Acho que um Array daria certo (nem sei usar, 
mas vocês me ajudam), no Regedit usar Boolean não daria certo porque são três 
campos, talvez um binário, só não sei como implementar.

Preciso de uma sugestão de como faria isso. Se for com Array, me dá uma noção 
de sintaxe para que eu venha a entender o uso!

Grato, desculpem pelo tempo de me expressar, mas tinha que detalhar para um 
melhor entendimento do projeto (para uma boa resposta) :) rsrs

Fico no aguardo.



Responder a