Ir para conteúdo
Fórum Script Brasil

Churc

Veteranos
  • Total de itens

    1.198
  • Registro em

  • Última visita

Tudo que Churc postou

  1. Opa Então, como o programa vai ser finalizado ao destruí-lo, nem tem necessidade de criá-lo em tempo de execução. O que você tem a fazer é, criar um novo form, este será o form que voce vai colocar a mensagem... No object inspector, coloque o BorderStyle dele para bsSingle, e em bordericons coloca o biMaximize e biMinimize para false, e tambem coloque o Position para poDesktopCenter Depois, no form principal você vai no Menu File > Use Unit e procura pelo novo form que voce criou Então no click do botão de fechar você faz SendMessage(Handle, WM_SHOWWINDOW, 0, SW_MINIMIZE); Novoform.ShowModal; Close; Troque NovoForm pelo nome do Form que vai ser o PopUp Acredito que seja isso rs bjos
  2. Olá, Marina passe maiores informações, essa janela vai saltar daonde? é como se fosse um popup desse de propaganda que abrem quando entra em sites como do UOL por exemplo? bjs
  3. Opa Então fiz um exemplo pra você... ta bem simples, ridículo mas funciona rs mas é meio complexo em termos você vai perder um tempinho pra entender, só não tenha preguiça de tentar o que você não souber você vem aqui e pergunta... Olha to no serviço então não da pra mim explicar tudo, o que você tem que entender é Pasta Aplicativo = Como se fosse seu programa Pasta Gerador de Chave = Esse programa só você pode ter, com ele você vai gerar chaves pro seu programa O programa quando abrir vai mostrar uma Matriz, ou seja, uma identificação da máquina. Cada máquina terá uma Matriz diferente, e assim você consegue controlar também em quantas máquinas o cliente instalou... Esta Matriz o cliente vai te passar, através dela você vai no Gerador de Chave e digita ela e gera a chave pro cliente, colocando a data que você quer que aquela chave começa a valer e quando você quer que ela expira... Já ta tudo montado, até se o usuário trocar a Data o programa vai saber... Agora, eu utilizei estruturas de arquivo .INI como exemplo, não é nada seguro, aconselho você a encriptar isso de alguma forma ou utilizar outros meios para armazenar as informações... Mas vale lembrar que o mais importante é que o controle de expiração é feito pela Chave e não pelas datas armazenado no arquivo... o problema é que neste arquivo é controlado se o usuário troca a data do sistema, então depois te passo um esquema melhor, criptografado... mas veja se te interessa isso primeiro... A parte que o programa checa a Chave é no código fonte do programa, para visualizar você vai no menu do Delphi (Project > View Source)... Da pra melhorar muita coisa, mas eu to no trabalho e to meio sem tempo então assim funciona perfeito você só precisa fazer alguns ajustes rs Outra coisa, você vai ver que vai dar erro em ogDate.GetFirstValue, eu implementei este código para pegar a data inicial da chave, então faça o seguinte, junto estou enviando o meu OnGuard.pas que é o mesmo do seu só que com esta alteração, então vai até a pasta source do Onguard e cole lá dentro, pode substituir sem problema... Qualquer dúvida poste ai! abraços
  4. Opa Mas você possue o código fonte desta DLL? senão esquece você não vai conseguir modifica-la... abraços
  5. Opa Legal, eu já não sabia mexer no DbLookupCombobox rs De qualquer forma, ambas dicas são úteis... pois por exemplo, se for utilizado um Combobox diferente, de Skin por exemplo como o FlatCombobox ai teria que ser do método que passei rs abraços
  6. aham... eu também que eu saiba a única maneira de se abrir mais de um projeto é utilizando o project manager, (Menu View > Project Manager) do Delphi... Ai sim, da pra adicionar vários projetos a um Project Group e alternar entre projetos ou compilar todos por exemplo, utilizando o Project Manager abraços
  7. Opa Ok! Amanhã no serviço te faço um exemplo completo com gerador de chave também... ai voce modifica conforme tua necessidade abraço
  8. Opa Seguinte, olha agora vendo bem o que o Jonas postou eu acho que não entendi nada rs Você quer tipo manipular a memória do seu ou outro programa? é o que eu entendi, mas pelo visto entendi errado rs O que exatamente você quer fazer? porque meus códigos que eu falei, é pra editar a memória do seu programa ou de outro em tempo de execução, porém não é tão simples assim, precisa manjar outras coisas abraços
  9. Opa Então a um tempo atrás eu mexi bastante com isso, fazendo hacks de luz pro Tibia rs e era tudo manipulação de memória... mas faz um bom tempo, mas tenho em casa até hoje esses códigos... depois te passo aqui abraços
  10. Opa Como você quer que seu programa trabalhe, entre datas? exemplo, você libera pro cara de hoje até julho do ano que vem Quer que trabalha por um serial ou seja, digitou o serial o programa é liberado? Como você quer trabalhar com esta parte de Expirar? Baseado no que você disser, se eu fizer um exemplo pra você no OnGuard tem interesse? abraços
  11. Opa então eu não sou bom em BD, não uso tenho pouca experiencia... mas das vezes que precisei, o que eu fiz, fiz um loop na tabela e ia adicionando no combobox exemplo essa procedure, carrega todos os usuarios cadastrados no sistema, procedure TLogin.LoadUsers; begin cbUsers.Clear; with dbMgr do begin zaQuery.Close; zaQuery.SQL.Clear; zaQuery.SQL.Add('SELECT LOGIN FROM USERS'); zaQuery.Open; if zaQuery.RecordCount > 0 then begin zaQuery.First; while not zaQuery.Eof do begin cbUsers.Items.Add(zaQuery.FieldByName('Login').AsString); zaQuery.Next; end; cbUsers.ItemIndex := 0; end; end; end; cbUsers = Combobox Login = nome do campo Users = nome da tabela Agora não sei, talvez o DBCombobox ou DBLookupCombobox faz isso rs bjo
  12. Churc

    Ajuda Com Processos

    Opa Então, acho que você deveria dar uma revisada nisso dai, pra voce entender o que voce precisa fazer... Porque imagina, se nem voce entendeu direito como alguém vai entender sem nem ver? rs A menos que alguém já tenha passado por isso... Só estou escrevendo isso pra que se caso ninguém responda você já saiba o porque... abraços
  13. Opa Certo, dessa forma impossivel ajudar porque todo esse código chama outras funções e as mesmas não estão com o código ai... Faça o seguinte, na linha: TxtMat.text := Ledados ('Codigo'); coloque um BreakPoint, ou seja, se voce não sabe o que é, sabe quando voce clica na linha bem no canto esquerdo e fica uma bolinha vermelha e a linha marcada? então é isso, coloque essa bolinha nessa linha q indiquei acima... Rode seu programa com o F9 dentro do Delphi, quando essa procedure LeRegistro for chamada, o compilador vai parar nesse breakpoint... Se o erro acontecer antes de parar neste breakpoint, então o erro está em Consultaregistros(); Se o compilador parar no breakpoint, você vai apertando F8 e voce vai reparar que ele irá andando linha por linha de código e assim você irá descobrir onde está o erro... Após achar onde exatamente está o erro, poste aqui pra gente te ajudar.... É complicado explicar como dar Debug num programa, mas posso dizer que sabendo utilizar Breakpoints/CallStack/Evaluate Modify voce consegue achar qualquer erro "na sua aplicação" a menos que o erro seja de um componente de terceiro que voce não possua o código caso contrário do seu programa da pra achar qualquer um... abraços
  14. Olá Olha de qualquer forma, algo está errado, porque não parece correto você precisar criar o Form 2x para visualizar algo, será que nesse form de visualizar ao abrí-lo voce não esteja ativando algo não como uma query não sei? E que depois na segunda vez que voce clica, como algo já está ativado ele consegue obter todas as informações? Outra coisa, não deve ser de criar o form, até porque se voce não está criando o form no botao visualizar quer dizer que ele já está criado no AutoCreate da aplicação... abraços
  15. Opa Eu não entendi nada rs mas isso faz com q a aplicação não tenha barra no menu iniciar setwindowlong(application.handle, gwl_exstyle, getwindowlong(application.handle, gwl_exstyle) or ws_ex_toolwindow and not ws_ex_appwindow); abraçx
  16. Opa Vai na Type Library do Delphi e adicione a pasta Source do Onguard aqui em casa não tenho o Delphi não me lembro de cabeça o nome dos Menus e tal mas se não souber fazer isso eu te explico melhor do serviço. Deve ser algo Tools > Environment Options > Type Library Clique em Add, procure a pasta Source do Onguard e adicione... abraços
  17. Opa Se voce colocar parte do código já ajuda rs Mas é algo do tipo Real/Currency que ta recebendo um valor que não é deste tipo... você ta fazendo em alguma variavel do tipo Real/Currency alguma sei lá, soma algo do tipo quando faz a busca? abraços
  18. Opa Uns tempos atrás eu perdi vários meses estudando quais eram as melhores formas de fazer um programa Shareware, ou seja, que expire... Testei várias formas e métodos, os componentes mais conhecidos e tudo mais, inclusive os da Max. Mas de todos que passei, não havia nenhum melhor que o OnGuard. É gratuito e de código aberto, ele é PRO Nele vem todo tipo de exemplo, expiração por data, dia, uso, rede, etc... Fora que ele usa criptografia das mais avançadas... Compensa você dar uma olhada, leia o manual e estude os exemplos pra você entender... Mas se voce não manjar inglês voce não vai se dar muito bem que é meio complexo tem que estudar ele... OnGuard abraçx
  19. Se quando o usuário minimiza o programa voce quer que o form de um Hide Coloque um componente TApplicationEvents da aba Additional e no evento OnMinimize você coloca o Hide; As dicas do Jonas são ótimas para fazer isso e ai o programa fica com o ícone do lado do relógio igual do Messenger abraços
  20. Opa Robinho veja se o cabeçalho da procedure possui a variavel TabIndex procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); e outra coisa, porque voce ta colocando o inherited? abraços
  21. Opa Bom, você teria que colocar um OpenDialog da aba Dialogs configurar ele colocando em Filter por exemplo a extensão *.pdf Acredito que esta parte você saiba fazer... então após o usuário ter aberto a nota, voce vai ter ela na propriedade FileName do OpenDialog certo? Pra pegar o caminho do arquivo você faz uses SysUtils; Caminho := ExtractFilePath(OpenDialog1.Filename); Pronto ai voce tem o caminho do arquivo Pra copiar pra uma pasta voce usa o CopyFile CopyFile(OpenDialog1.FileName, 'C:\Caminho onde vai o arquivo\' + ExtractFileName(OpenDialog1.Filename), False); ExtractFilePath(); - Extrai o caminho do arquivo ExtractFileName(); - Extrai o nome do arquivo abraços
  22. coloque a parte do código que da o problema, é algum end; que está faltando... abraços
  23. Churc

    Função Dblclick

    Olá, Para colocar o evento Double Click, selecione o componente no qual deseja que o usuário clique duas vezes para executar determinada coisa, em seguida abra o Object Inspector (F11), selecione a aba Eventos, procure por onDblClick e de um duplo clique neste evento, você irá para o Editor de códigos e então coloque o código desejado. bjs
  24. Churc

    Instalador

    O Inno Setup realmente é fera, da pra você fazer o que você quiser, da uma olhada no manual e nos exemplos... Vantagem nele que quem faz é você, você consegue inventar opções que nem existem nele... abraçox
  25. Opa Seguinte, no SELECT voce deve passar também o nome do campo que armazena o nome da pessoa, vamos supor que o nome do campo seja Nome qr_pesquisa.Active := false; qr_pesquisa.SQL.Clear; dbgrid1.DataSource := ds_pesquisa; qr_pesquisa.SQL.Add ('select MAX(Cod),Nome FROM tb_teste'); ShowMessage('Código do Cliente: ' + qr_pesquisa.FieldByName('Cod').AsString + ' / Nome do Cliente: ' + qr_pesquisa.FieldByName('Nome').AsString); qr_pesquisa.Active := true; tipo isso abraçx
×
×
  • Criar Novo...