Ir para conteúdo
Fórum Script Brasil

geovanepc

Membros
  • Total de itens

    93
  • Registro em

  • Última visita

Tudo que geovanepc postou

  1. Bom dia colegas do Fórum. Mais uma vez, estamos aqui aprendendo e aprimorando conhecimentos. Antigamente era possível manipular a API do MSN, tipo pegar os contatos do usuário. Isso era usado pra enviar propagandas estilo MARKETING MULTINIVEL (MMN), agora eu pergunto, tem como fazer isso usando o Facebook? Pegar todos os meus contatos e enviar emails propagandas para eles? Desde já agradeço. Um forte abraço à todos.
  2. Nada como um bom desafio mental, muito embora seja simples, mais tá valendo. Tava com um pouco de pressa, então não encontrei o som pronto, daí baixei um programinha que gera sons de máquina de escrever pelo teclado. Confira: http://www.baixaki.com.br/download/clickey.htm Depois utilizei outro programa para capturar o som gerado, chamado: Audacity - Utilizo pra gravar sons, inclusive de rádio online. Converti o som para o formato WAV. Nas propriedades do MediaPlayer, configurar: MediaPlayer1.AutoOpen = true. MediaPlayer1.FileName = 'C:\Teste\Som do teclado.wav'. // Som que o MediaPlayer vai tocar. Coloquei um TIMER pra simular uma digitação pausada, tipo humana. Timer1.enable = true; Timer1.interval = 100. É só ir testando os tempos e configurar do jeito que achar melhor. Depois foi só implementar o código: //---------------------------------------------------------------------------------------------------// unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, MPlayer, StdCtrls, Buttons, ExtCtrls, StrUtils; type TForm1 = class(TForm) Edit1: TEdit; Label1: TLabel; BitBtn1: TBitBtn; MediaPlayer1: TMediaPlayer; Memo1: TMemo; Timer1: TTimer; procedure BitBtn1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; tempo: integer = 100; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); var texto: string; tamanho, x: integer; begin texto := Edit1.Text; Memo1.Lines.Clear; tamanho := Length(texto); for x := 1 to tamanho do begin Memo1.Lines.Text := Memo1.Lines.Text + AnsiMidStr(texto, x, 1); Mediaplayer1.Play; Application.ProcessMessages; // Sleep(100); Sleep(tempo); end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin tempo := random(500); end; end. //---------------------------------------------------------------------------------------------------// Depois da dica do professor Jhonas, aí ficou fácil! Se não tiver mais nada a acrescentar, pode fechar o tópico. Valeu professor. Desde já agradeço. Um forte abraço à todos.
  3. Obrigado pelo desafio professor Jhonas, vamos lá, vou desenvolver o programa, quando tiver pronto, vou postar. Desde já agradeço. Um forte abraço à todos.
  4. Algum colega já implementou esse código? Ex: Texto: "Batatinha quando nasce, esparrama pelo chão, o Bilitocera quando dorme, põe a mão na Bíblia do Delphi pra quando acordar, estudar de novo!" Bom, gostaria que uma frase como esta, fosse sendo digitada automaticamente em um Edit, Label ou Memo, de maneira que o intervalo entre uma letra e outra variasse com um Random. Pra ficar mais idêntico. Tipo: Digita um pouco, pára um pouquinho e continua. Intervalos pequenos. Desde já agradeço. Um forte abraço à todos.
  5. Bom, para que o vídeo ocupe toda área dimensionada, encontrei essa configuração: WMP.URL := 'C:\Indoor\Medias\Meuvídeo.wmv'; // Roda a mídia. WMP.stretchToFit := true; // Ajusta o vídeo às dimensões do WMP. //-----------------------------------------------------------------------------------------------// Encontrei em, aliás tem tudo ou quase tudo aqui: http://msdn.microsoft.com/en-us/library/windows/desktop/dd564088(v=vs.85).aspx //-----------------------------------------------------------------------------// Essa parte, funcionou, vou testar o restante agora. Obrigado à todos.
  6. Veja como os vídeos devem rodar: http://www.proxymis.com/badgood.jpg O vídeo tem que se ajustar ao tamanho do WMP, e não o WMP ao formato do vídeo, ok. Sem precisar rodar em fullscreen, pois o tamanho já está dimensionado para ocupar toda a tela. Obrigado à todos. Um forte abraço.
  7. Realmente o WMP acompanhou o tamanho do Form, mas o vídeo que está rodando, fica pequeno, não ocupa a área inteira ao qual o WMP se ajustou, outra coisa, quando clico no botão maximizar, como o senhor solicitou, todo conjunto diminui o tamanho e o vídeo pára de rodar. Obrigado pelos exemplos Jhonas, vou testar mais um pouco e ver no que dá. Um forte abraço à todos.
  8. Vamos fazer assim: Crie um novo projeto, importe o ActiveX do Windows Media Player. Arraste pro Form. Mude a propriedade do WMP para (Align = alClient). O Form vai ter as dimensões: 200 x 400, só pra efeito de teste. No evento OnShow do Form digite: WMP.URL := 'C:\Indoor\Medias\Qualquervídeo.wmv'; Só para que o vídeo seja executado no momento que mostrar o formulário. Agora vamos colocar um botão: E no evento OnClick digite: //-----------------------------------------------------------------// procedure TForm1.Button1Click(Sender: TObject); begin Form1.WindowState := wsMaximized; WMP.Align := alClient; end; //-----------------------------------------------------------------// Beleza, executem o projeto, depois que o vídeo estiver rodando, cliquem no botão para maximizar o formulário, isso, agora eu pergunto, o WMP cresceu juntamente com o Form? Se o seu WMP não acompanhou o alinhamento do Form, aumentou junto com ele, parabéns, pois aconteceu a mesma coisa aqui comigo. E é justamente isso que quero resolver, o Form tem que se ajustar ao tamanho da resolução de vídeo e o WMP tem que se ajustar no tamanho do Form por dentro, e isso, sem perder a execução da mídia que está rodando no exato momento do alinhamento. O WMP.FullScreen eu já utilizei e não serve, deu um problema, quando o WMP termina a execução da Playlist, eu utilizo o WMP.PlayState = 10, que equivale a [10 Ready] Ready to begin playing. para fazer a releitura do arquivo Playlist.txt. Veja o código abaixo: //----------------- Isso aqui fica dentro de um Timer -------------------------------------------// if WindowsMediaPlayer1.playState = 10 then begin //StatusBar2.Panels.Items[0].Text := '[10 Ready] Ready to begin playing.'; // Aqui eu pego o Status e lanço em uma StatusBar, só pra controle. Posicao.Enabled := false; // Paro o Timer que faz essa verificação. ReeLer; // Chamo a Releitura da Playlist e ligo o Timer novamente. end; //------------------------------------------------------------// //------------------------------------------------------------// procedure TForm1.ReeLer; begin Lista.Clear; // Limpa a Lista do StringList adquirida no FormShow WindowsMediaPlayer1.currentPlaylist.clear; // Limpa as Mídias do WMP //---- Testa se o arquivo PLAYLIST.TXT existe, usando a path do Exeuctável (ExtractFilePath)+ParamStr(0) + mais o Restante do Caminho "\Playlist\Playlist.txt" if FileExists(ExtractFilePath(ParamStr(0)) + '\Playlist\Playlist.txt') then begin try //------- STRINGLIST recebe todas as linhas sem filtragem ----------------------------// Lista.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\Playlist\Playlist.txt'); //-------------- Pega os dados Linha por Linha StringList, com os Paths (Caminhos) --------// for i := 0 to Lista.Count - 1 do begin if FileExists(Lista.Strings) then begin //----------- Pega os dados, Linha por Linha, já filtrados -------------------// add2List(Lista.Strings); // Esse aqui é o código que você me passou Jhonas. end; end; except // Lista.Free; end; end; // Aqui em baixo, foram feitos vários testes sem sucesso, alguns estão até desativados, mas deixei como exemplo // //Form1.Align := alClient; //WindowsMediaPlayer1.Align := alClient; {Form1.Align := alClient; WindowsMediaPlayer1.Align := alClient; WindowsMediaPlayer1.controls.play; WindowsMediaPlayer1.fullScreen;} WindowsMediaPlayer1.Focused; WindowsMediaPlayer1.controls.play; //WindowsMediaPlayer1.fullScreen; WindowsMediaPlayer1.Focused; Posicao.Enabled := true; // Liga o Timer da execução das mídias; end; //----------------------------------------------------------------------// //---------------------------- Aqui tá o código que roda no FormShow -----------------------------------------// procedure TForm1.FormShow(Sender: TObject); begin ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_HIDE); // Some a Barra de Tarefas. //Form1.Align := alClient; //WindowsMediaPlayer1.Align := alClient; Lista := TSTringList.Create; parametros := ParamStr(0); // Pega diretório onde o Executável rodou. caminho := ExtractFilePath(parametros); // Retira somente o path (caminho) Ex: "C:\Indoor\" //------- Configurações dos Caminhos (Paths) -----------------------------// path_playlist := caminho + 'Playlist\'; path_config := caminho + 'Config\'; path_medias := caminho + 'Medias\'; //---- Testa se o arquivo PLAYLIST.TXT existe, usando a path do Exeuctável (ExtractFilePath)+ParamStr(0) + mais o Restante do Caminho "\Playlist\Playlist.txt" if FileExists(ExtractFilePath(ParamStr(0)) + '\Playlist\Playlist.txt') then begin try //------- STRINGLIST recebe todas as linhas sem filtragem ----------------------------// Lista.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\Playlist\Playlist.txt'); //-------------- Pega os dados Linha por Linha StringList, com os Paths (Caminhos) --------// for i := 0 to Lista.Count - 1 do begin if FileExists(Lista.Strings) then begin //----------- Pega os dados, Linha por Linha, já filtrados -------------------// add2List(Lista.Strings); end; end; except // Lista.Free; end; end; WindowsMediaPlayer1.controls.play; // Aqui eu aviso o WMP pra executar as mídias na Playlist. // Label1.Caption := IntToStr(WindowsMediaPlayer1.currentPlaylist.count - 1); // Saber quantas mídias existem, apenas testes. end; //=========================================================================// //=========================================================================// Observações: Como não sabia pegar o número do índice da música em execução na Playlist, tive que fazer assim, usando o Status do WMP. Só que assim aconteceram esses problemas. O Jhonas postou como pegar esses índices, testei, e funcionou muito bem. Agora vou testar de outra forma que antes havia dado certo, foi usando assim: //------------------- Depois de carregar todas a mídias nos códigos anteriores ---------------------------------// // Códigos... // // // Códigos; Finaliza-se com: //---------- Play nas mídias -----------// WindowsMediaPlayer1.Controls.Play; //-------- Ativa modo tela cheia----------------// WindowsMediaPlayer1.fullScreen := true; //---------- Ativa modo Loop ---------------------// WindowsMediaPlayer1.settings.setMode('loop', true); Assim funcionou, mas como eu não tinha como pegar o índice da música, para que quando a Playlist terminasse a execução, ele pegasse uma nova leitura da Playlist, tive que abandonar parte dos códigos. Mas no momento, estou querendo resolver esse problema com o redimensionamento. Agradeço a ajuda de todos. Um forte abraço.
  9. O problema de dimensionar um formulário de tamanho fixo, é que quando eu mudar de tela, vou ter que redimensionar e recompilar o programa. Quero implementar um sistema que se ajuste automaticamente à todos os tamanhos, fullscreen. Se não tiver jeito, vou ter que mudar de ferramenta. Desde já agradeço. Um forte abraço à todos.
  10. Agora sim Jhonas, testei o primeiro código, que pega a mídia em execução pelo WMP. Funcionou beleza. Agora só falta resolver o problema da tela cheia. Obrigadão Jhonas e aos demais colegas. Um forte abraço à todos.
  11. O primeiro código que pega o Index da música que tá tocando, ainda não testei. //----------------------------------------------------------------------// Mas esse aqui sim. GeovanePC: "Gostaria de enconrar um código que fixasse (travasse) o Form no fullscreen e o WMP dentro dele também." Jhonas: Voce pode usar a propriedade FullScreen = True do WMP ou usar a propriedade WindowsState do Form deixando como wsMaximized //---------------------------------------------------------------// Essas opções foram as primeiras que utilizei, não dá certo não, o Form fica FullScreen beleza, mas o WMP, após dar o primeiro ciclo na execução da Playlist, minimiza pro tamanho original, ou seja vou ter que dimensionar o FORM e o WMP conforme o tamanho das Telas. Tenho que trazer o Hardware para redimensionar e recompilar o programa para cada caso. Aí fica um trem muito amador. Obrigado pelas respostas. Um forte abraço à todos.
  12. JHonas eu testei este código: //------------------------------------------------------------------------------------------------// procedure add2List(URL:String); var m:IWMPMedia; begin m := Form1.WindowsMediaPlayer1.mediaCollection.add(URL); Form1.WindowsMediaPlayer1.currentPlaylist.appendItem(m); end; procedure TForm1.Button1Click(Sender: TObject); begin with WindowsMediaPlayer1 do begin // Limpa a playlist. currentPlaylist.clear; // Aqui você vai adicionando as músicas: add2List('d:\musicas\thunderball.mp3'); add2List('d:\musicas\moonraker.mp3'); // Play controls.play; end; //------------------------------------------------------------------------------------------------// E realmente funcionou! Agora estou precisando pegar o número da mídia que está sendo executada pelo WMP. Outro problema que está acontecendo é que, ao maximizar o formulário com Align alClient e o WMP também com Align alClient, o vídeo que está sendo executado em tela cheia, fullscreem pelo WMP, perde o tamanho de tela cheia, quando termina de executar a última mídia da lista, ele retorna ao tamanho pequeno (original). Gostaria de encontrar um código que fixasse (travasse) o Form no fullscreen e o WMP dentro dele também. Desde já agradeço a atenção e ajuda prestada pelos colegas aqui do Forum. Um forte abraço à todos.
  13. Na verdade a Uses é declarada no momento em que importo o ActiveX. Veja o código: //------------------------------------------------------------------------------------------------------------------// unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, WMPLib_TLB, ExtCtrls, Buttons; type TForm1 = class(TForm) WindowsMediaPlayer1: TWindowsMediaPlayer; Player: TTimer; BitBtn1: TBitBtn; //------------------------------------------------------------------------------------------------------------------// Segue a parte do código que estava testando: procedure TForm1.BitBtn5Click(Sender: TObject); var Xwmp: IWMPMedia; midias: integer; begin // midias := 0; // Apagar Playlist // WindowsMediaPlayer1.currentPlaylist.Clear; Xwmp := WindowsMediaPlayer1.newMedia('E:\Media\Medias\video1.wmv'); WindowsMediaPlayer1.currentPlaylist.insertItem(0, Xwmp); //WindowsMediaPlayer1.currentPlaylist.appendItem(Xwmp); Xwmp := WindowsMediaPlayer1.newMedia('E:\Media\Medias\video2.wmv'); WindowsMediaPlayer1.currentPlaylist.insertItem(1, Xwmp); //WindowsMediaPlayer1.currentPlaylist.appendItem(Xwmp); Xwmp := WindowsMediaPlayer1.newMedia('E:\Media\Medias\video3.wmv'); WindowsMediaPlayer1.currentPlaylist.insertItem(2, Xwmp); //WindowsMediaPlayer1.currentPlaylist.appendItem(Xwmp); Xwmp := WindowsMediaPlayer1.newMedia('E:\Media\Medias\video4.wmv'); WindowsMediaPlayer1.currentPlaylist.insertItem(3, Xwmp); //WindowsMediaPlayer1.currentPlaylist.appendItem(Xwmp); WindowsMediaPlayer1.Controls.Play; { for midias := 0 to ListBox1.Items.Count - 1 do begin Xwmp := WindowsMediaPlayer1.newMedia(ListBox1.Items.Strings[midias]); WindowsMediaPlayer1.currentPlaylist.insertItem(midias, Xwmp); // Play nas mídias // WindowsMediaPlayer1.Controls.Play; end; } end; //------------------------------------------------------------------------------------------------------------------// Note algumas linhas com // barras // e { chaves }, justamente linhas ou trechos de código para testar. Vou testar esses código novos, Por enquanto muito obrigado Jonas e aos demais colegas. Um forte abraço à todos. GeovanePC.
  14. Mais uma vez, quero agradecer por toda ajuda disponibilizada aqui pelos colegas do forum. Pois bem, desta vez, estou tentando criar um player para rodar mídias usando o ActiveX Windows Media Player no Delphi7. Já tinha desenvolvido uma aplicação semelhante, só que agora quero usar os recursos disponíveis no WMP, como a Playlist. Importei o WMP sem problemas. Tenho um ListBox com uma lista de vídeos para serem acrescentados no WMP, depois é só configurar o loop infinito e dar o Play. C:\midias\midia1.wmv C:\midias\midia2.wmv C:\midias\midia3.wmv Encontrei este exemplo na Net. procedure TForm1.BitBtn5Click(Sender: TObject); var Xwmp: IWMPMedia; begin WindowsMediaPlayer1.currentPlaylist.Clear; Xwmp := WindowsMediaPlayer1.newMedia('C:\midias\midia1.wmv'); WindowsMediaPlayer1.currentPlaylist.insertItem(0, Xwmp); Xwmp := WindowsMediaPlayer1.newMedia('C:\midias\midia2.wmv'); WindowsMediaPlayer1.currentPlaylist.insertItem(1, Xwmp); Xwmp := WindowsMediaPlayer1.newMedia('C:\midias\midia3.wmv'); WindowsMediaPlayer1.currentPlaylist.insertItem(2, Xwmp); WindowsMediaPlayer1.Controls.Play; end; Foi apenas isso que encontrei, não sei se está faltando algumas linhas. Este código compila perfeitamente, mas na hora de executar ele dá um erro de Access violation at address. Gostaria de saber se algum colega poderia me ajudar. Desde já agradeço. Um forte abraço à todos. GeovanePC.
  15. Bom, através de pesquisas, descobri que é preciso colocar no Form os seguintes componentes: Aba: FireDAC Links FDPhysMySQLDriverLink1 Aba: FireDAC UI FDGUIxWaitCursor1 Mas agora apresentou outro erro: Cannot load vendor library [libmysql.dll ou libmysqld.dll. Já copiei essas DLLs para todos os lugares que são recomendadas. Mas o problema persiste. Encontrei um método, mas achei gambiarra, foi pegar as DLLs do MySQL versão 32 bits e copiar para as mesmas pastas recomendadas. Vou testar.
  16. Boa noite à todos. Desenvolvi um simples programa em XE5, estou usando o drive de acesso chamado FireDac. Acrescentei no Form: FDConnection1 FDTable1 DataSource1 Configurei todos eles devidamente. Utilizo o WampServer 2.5 para trabalhar com MySQL, rodando em localhost. Fiz o teste de conexão com MySQL 5.6.17, executado com sucesso. Compilei o aplicativo para 64 bits, rodando no windows 7 - 64 bits. Mas na hora de executar, ele apresenta o seguinte erro: Driver [MySQL] is not registered. To register it, you can drop component [TFDPhysMYSQLDriverLink] into your project'. E agora? alguém poderia me ajudar? Desde já agradeço. Um forte abraço. Obs: Tentei fazer upload das fotos, mas não consegui encontrar a opção. GeovanePC.
  17. Obrigado pelos esclarecimentos, só uma observação, o primeiro link do último post, está quebrado, já o segundo cita "Banco de dados embarcados". Ainda não é o que estou procurando, acho que no móbile não vai ter outro jeito a não ser mudar pro SQLite ou MySQL mesmo. Um forte abraço à todos.
  18. Consegui desenvolver uma pequena aplicação pro móbile. Feita com o Lazarus, realmente funciona. Agora tenho uma dúvida. Desenvolvi outra pra acessar o Firebird que está rodando na minha máquina desktop, quando compilo pra win32 consigo fazer o acesso com o Firebird beleza, mas quando copio o executável devidamente convertido claro, pro mobile e tento executar, ele me retorna uma mensagem de erro. "Can not load default firebird clients ("gds32.dll") or ("fbclient.dll"). check you installation. Press Ok to ignore and risk data corruptio. Existem essas dll's pro windows móbile? Desde já agradeço à todos.
  19. Obrigado Jhonas, eu baixei também, além dos que você mencionou, o Lazarus que compila pra vários SO's. Achei muito interessante. Vale a pena conferir. http://pdaexpert.net/downloads/windows-mob...calized-images/ -----> Emulador http://sourceforge.net/projects/lazarus/files/ ------> Onde baixar o Lazarus http://professorcarlos.blogspot.com/2010/0...cacao-para.html ------> Um pequeno tutorial É isso aí. Um forte abraço à todos.
  20. Boa tarde à todos. Estou com um projeto pra desenvolver um sistema de pequeno porte, para ser executado em um mobile (MC3504), o qual roda o Windows Móbile. Gostaria de saber se existe algum utilitário que converte o .exe (executável) pra rodar neste sistema, ou tenho que usar algum emulador ou outra versão mais atualizada do Delphi, tipo .NET e desenvolver a aplicação do zero? Como uso Delphi7 há um tempão, tenho muitos componentes instalados nessa versão, não gostaria de passar pra uma versão mais nova não, a menos que seja realmente a única saída. Desde já agradeço à todos.
  21. Que bom que deu certo amigo! Um forte abraço à todos. Até mais.
  22. Olhei os links, mais ainda não resolvi meu problema, estou montando um rastreador veicular e o módulo de GPS envia a seguinte string: A,0603.7857,S,04954.3335,000,P,1200,0000,00000 :_:______________________:_______________________: Esta é a String Aqui ela está no formato Datum WGS84, copiei e colei no Google Maps o qual utiliza o mesmo padrão, mais o local está saindo totalmente fora do lugar. Então pensei em usar uma rotina pra converter essa informação. Estou precisando de um código pra integrar no Delphi. Se alguém já se deparou com esse problema, agradeceria se ajudasse a solucioná-lo. Um forte abraço à todos.
  23. Gostaria de saber se alguém tem uma rotina pra converter coordenadas de WGS84 pra Google Maps? Desde já agradeço.
  24. Gostaria de saber como faço pra totalizar os saldos dos caixas usando campo calculado. Plano de Contas | HISTÓRICO | ENTRADA | SAÍDA | SALDO | ------------------------------------------------------------------------------------ | Saldo Anterior | | | 50,00 | Banco do Brasil | Rec.Ref.xxxxxxxxx | 150,00 | | 200,00 | Banco Bradesco | Rec.Ref.xxxxxxxxx | 75,00 | | 275,00 | Água | Pag.Ref.xxxxxxxxx | | 30,00 | 245,00 | Luz | Pag.Ref.xxxxxxxxx | | 300,00 | -55,00 | tipo: CDS_CaixaSALDO.Value:=CDS_CaixaENTRADA.Value-CDS_CaixaSAIDA.Value. Mais ou menos assim. Desde já agradeço.
  25. Estou manipulando um form, derepente começou a apresentar este erro. Cannot change visible in OnShow or OnHide. Se alguém puder me dar uma luz, Desde já agradeço.
×
×
  • Criar Novo...