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 bom acho que assim da certo, pelo seguinte, o windows adiciona o último ícone no Tray em primeira posição, então, se ele colocar o ícone e logo em seguida fazer o movimento do mouse, acho difícil outra aplicação já jogar o ícone lá no mesmo momento... seria algo assim Function GetTrayHandle: HWND; var h1, h2, h3: HWND; begin //Pega o handle da barra do menu iniciar h1 := FindWindow('Shell_TrayWnd', nil); //Pega o handle da barra que contém o relógio e o Tray h2 := FindWindowEx(h1, 0, 'TrayNotifyWnd', nil); //Pega o handle do Tray, onde ficam os ícones... h3 := FindWindowEx(h2, 0, 'SysPager', nil); //Se h3 é maior que zero, então achou a janela, e o resultado //é o handle desta Result := h3; end; var hrect: TRect; begin if (GetWindowRect(gettrayhandle, hrect)) then SetCursorPos(hrect.Left + 8, hrect.Top + 8) else ShowMessage('Opss... tray não encontrado =P'); end; Ai o mouse vai parar emcima do Tray, na posição Left 0 Sendo assim, como o Windows coloca todo novo ícone no Left 0 ai o mouse vai parar certinho emcima... O + 8 seria pelo seguinte, os ícones do tray tem o tamanho de 16, então pra colocar o mouse bem no meio do primeiro ícone, seria left 0 + 8 que é a metade do tamanho 16 blah asuhasuh mas ainda da pra melhorar... abraço
  2. opa Thales, então o programa que eu usei pra pegar chama-se WinDowse esse programa muito bom, mostra muitaa informação sobre uma janela, e por exemplo, eu coloquei o mouse emcima dos icones ele mostrou SysPager TrayNotifyWnd Shell_TrayWnd a ordem correta é de baixo pra cima, então como TrayNotifyWnd é child da Shell_TrayWnd e SysPage também então eu usei o FindWindowEx... putz mais te juro mesmo que aqui funciona auhahus, aqui a janelinha dos icones é a SysPager, se acha que eu ia postar algo que não funciona... "Mas isso é bom, sabe porque, já mostra que não vai ser igual pra todos os computadores, sei lá, talvez algo como versão do Windows, Service Pack mude..." baixa o WinDowse ai... http://baixaki.ig.com.br/site/detail3965.htm abraços
  3. Seguinte, dar certo dá porque eu jamais postaria algo assim sem testar, agora o que pode estar acontecendo é seu Windows ser diferente do XP, então possa ser que mude alguma classe... como eu só tenho o XP aqui no trampo e em casa então não testei em outros windows...
  4. isso, somente pega o handle da bandeja... sabe o que você pode fazer, vo viajar hein, mas capaz que fique legal, seguinte... tem um função vo ver se acho, que faz screenshot certo, mas voce passa o tamanho e posicao da tela, então, a ideia é fazer uma ss da bandeja já com o ícone, salva em uma pasta temporária, e a janela que fala que o programa vai ficar minimizado na bandeja carregar essa imagem, assim fica facil reconhecer... Mais ou menos como alguns programas fazem, só que eles não criam uma screenshot da bandeja em tempo real, apenas tem uma deles proprio, ou você pode fazer isso, faz uma própria com um efeito... rsr se achar legal a gente te ajuda a fazer... abraço
  5. function gettrayhandle: HWND; var hnd: HWND; begin hnd := findwindow('Shell_TrayWnd', nil); hnd := findwindowEx(hnd,0, 'TrayNotifyWnd', nil) ; hnd := findwindowEx(hnd,0, 'SysPager', nil) ; result := hnd; end; se quiser testar showwindow(gettrayhandle, sw_hide); mas paulo nobre, você teria que dar um "lock" no mouse, dificilmente o cara vai ficar sem mexer o mouse, senao o efeito que você quer vai ficar bem jururu auhsshua abraço
  6. Churc

    Access Violation

    opa se não achar o erro tenta dar um debug link
  7. aff ahuauh agora que fui ver rsr eu fiz contando letras asuhashu vacilei falta de atenção... ignora... rsr
  8. opa talvez seja um jeito ignorante, mas já tentou jogar o MaxLength do campo para 4 0 , 0 0 1 2 3 4 os demais jeitos você pode fazer no evento OnChange do Edit abraço
  9. opa tenta assim function countwords(const text: String; bskipspace: boolean): Integer; var i, ispaces: Integer; begin ispaces := 0; for i := 1 to length(text) do if (text = ' ') then ispaces := (ispaces + 1); if (bskipspace) then Result := (length(text) - ispaces) else Result := length(text); end; ai se você quiser que conta os espaços você coloca false se não quiser que conta voce coloca true o bskipspace no seu caso quant:= CountWords(text, true); seria isso? abraço
  10. Churc

    Pascal

    opa muito boa a idéia do Micheus, aquele artigo bem interessante vixe... pena que são poucos que se interessam em ler e seguir em pratica rsr <_< abraço
  11. Churc

    Pascal

    ahushuas nessas hora eu so a favor do tópico daqle nextel rsr
  12. Churc

    Ambiente Dos

    hum, mas Micheus acho que não é isso que ele quer não... isso ai pega variáveis de ambiente do Windows, o que ele quer é algo de pegar o que foi passado por determinado programa ou comando executado no DOS... se possível guilhermeacl explica melhor...
  13. Churc

    Pascal

    que? auhashu explica por favor, senão impossível alguém te ajudar...
  14. opa se quiser me enviar também eu aceito rsrs nunca mexi com isso cebasso@gmail.com valeu, abraçao ps: não loguei pra posta acima, foi mal
  15. Churc

    Esquentando A Moringa

    muito bom Micheus ehehe Parabéns!
  16. isso boa Thales ;) ahusahu eu nem testei só usei essa flag uma vez pra deletar arquivo! abraços
  17. ah certo ashushau então tenta em flags adicionar FOF_SILENT ficando fFlags := FOF_NOCONFIRMATION or FOF_SILENT; abraço
  18. use o try e except exemplo try faça algo except faça algo se houver erro end;
  19. vixe ai já não sei te informar amigo, mas deve ser free também...
  20. Churc

    Receber Valores

    tipo, se você já tem o jogo feito, declare 2 variaveis globais, ou seja emcima de implementation exemplo vai estar var Form1: TForm1; iAcertos, iErros: Integer; implementation ai no evento OnCreate do Form você zera estes valores iAcertos := 0; iErros := 0; Pra cada pergunta que o cara acertar, você joga +1 no iAcertos, e cada uma que ele errar, você joga +1 no iErros ficando se ele acertar iAcertos := iAcertos + 1; se ele errar iErros := iErros + 1; Pra você mostrar, vamos supor que você queira mostrar num edit, o que acho errado o certo é usar Label mas beleza então seria EditdeAcerto.Text := InttoStr(iAcertos); <-- Edit que vai mostrar a quantidade de acertos EditdeErros.Text := InttoStr(iErros); <-- Edit que vai mostrar a quantidade de erros pra tirar porcentagem de acertos seria Valor de Acertos / Numero total de perguntas * 100 Pra passar pro edit seria PorcentagemdeAcerto.Text := InttoStr(Trunc((iAcertos / iTotaldePerguntas) * 100)) + '%'; pra tirar de erro seria o que faltou da porcentagem de acerto tipo PorcentagemdeErro.Text := InttoStr(100 - Trunc((iAcertos / iTotaldePerguntas) * 100)) + '%'; deve ser isso, lembrando que em iTotaldePerguntas você deve colocar o valor total de perguntas que tem no jogo, exemplo 15 entendeu mais ou menos? abraço
  21. opa esse pc teria que ficar ligado sim, pra poder acessá-lo... por isso muitos que vão fazer aplicações multi-empresa optam por MySQL, pois mysql você pode pagar uma hospedagem de site normal, com suporte a PHP-MySQL e pronto, está lá seu servidor online 24 horas com ferramentas de administração e total suporte com backups automáticos em alguns provedores. você tem que baixá-lo... Pega o SuperServer... abraços
  22. usa o MaskEdit da paleta Additional... na propriedade EditMask coloque algo como se for pra (0XX)-XXXX-XXXX então seria !\(999\)0000-0000;1;_ diminua ou insira caracteres conforme desejado... abraço
  23. Churc

    Ajudem-me!

    opa Solução 1 se o erro estiver antes de PRIVATE então remova a linha com erro, você deve ter apagado o codigo do OnClick do button1 sem somente apagar o seu codigo, apagando o que o delphi escreve exemplo type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); <----- apague esta linha Solução 2 agora se o erro da abaixo de implementation, copie o seu codigo somente e apaga desde procedure tform1.button1.... ai só dar dois cliques no botao e colar o codigo novamente... exemplo procedure tform1.button1click(sender: TObject); begin --> copie o codigo a partir daqui showmessage('eeee'); <-- até aqui end; depois que copiou seu codigo, apague este codigo pois ele não tem nenhuma referencia ao form --> apague a partir daqui procedure tform1.button1click(sender: TObject); begin showmessage('eeee'); end; <-- até aqui Ai depois é só dar 2 clicks no button1 novamente, e colar seu codigo abaixo do begin... procedure tform1.button1click(sender: TObject); begin --> cole seu codigo aqui end; entendeu? abraço
  24. ftp não serve como servidor de banco de dados amigo. você tem que instalar o servidor do firebird em um pc com conexao com a internet. ai você pode conectar-se normalmente, mas por ftp do jeito que você quer impossivel abs
  25. opa corrigindo o que voce falou, seu programa usa todas as dlls do windows eheh, tudo o que um programa "para Windows" faz é emulado pelo Windows... Bom, acho que você vai ter que fazer o seguinte, compilar ele no Windows XP, e rodá-lo através do Delphi para ver o que o Debugger do Delphi mostra como erro. Talvez seja algum componente ou algo de terceiro ou algum função que você usou, tipo RegisterService que usam pra sumir do control alt del de Windows 9X/ME ou algo assim, que não tenha no Windows XP, falei só como exemplo. boa sorte ai abraço
×
×
  • Criar Novo...