Fórum mediaplayer #284499

13/06/2005

0

Olá pessoal, preciso de uma luz!!!
Tenho um dbgrid que está ligado a um DataSource, onde tenho várias palavras listadas, tenho tb um componente Media Player1.
Quero que aconteça o seguinte: Quando selecionar uma palavra no dbgrid quero que apareça o vídeo relacionado àquela palavra, mas não estou conseguindo!!


Daia

Daia

Responder

Posts

13/06/2005

Guilherme

nao sei como vc esta fazendo (posta ai pra nois sabe ) mas vc poderia fazer assim :
nessa tabela q esta ligado o dbgrid vc poderia acrescentar um campo a mais para q seja cadastrado o caminho do video correspodente aquele registro ai na opçao AfterScroll da tabela vc coloca o seguinte codigo
  
 MediaPlayer1.FileName:=IBDataSet1CAmpo.value;
 MediaPlayer1.Play;


depois vc posta si deu certo


Responder

Gostei + 0

13/06/2005

Daia

eu pensei em fazer assim:
é q tenho uma query relacionada com o dbgrid, onde faço um select pra q apareça as palavras gravadas na tabela BDLibras.db e lá naquela tabela tb tem um campo vídeo onde está gravada a imagem.
Aí no evento OnKeyUp do DBGrid fiz o seguinte:

qryPalavras.SQL.Text := ´Select video ´ +
´ from BDLibras.db ´ +
´where palavra = ´ + QuotedStr(DBGrid1.SelectedField.Text);
qryPalavras.Open;
MediaPlayer1.FileName := ´C:\Libras\Avi\´ + qryPalavras.Text ;
MediaPlayer1.Play;

O único problema é que não sei como passar a variável que selecionei no dbgrid para q ele faça o select. Acho que do jeito q está acima está errado: (DBGrid1.SelectedField.Text);
Vc sabe??


Responder

Gostei + 0

13/06/2005

Rjun

Faça isso:

qryPalavras.SQL.Text := ´Select video ´ + 
´ from BDLibras.db ´ + 
´where palavra = ´ + QuotedStr(query.FieldByName(´Nomedovideo´).asString);



Responder

Gostei + 0

13/06/2005

Daia

não entendi a segunda: ´QuotedStr(query.FieldByName(´Nomedovideo´).asString);´, é que quando vou me deslocando no dbgrid, cada vez q for trocando a palavra quero que troque o vídeo, mas essa parte da query.FieldByName... não entendi como aplicar? Queria q ele pegasse a palavra diretamente do dbgrid...


Responder

Gostei + 0

13/06/2005

Rjun

O deslocamente é entre linhas? Como que é a estrutura da sua query?


Responder

Gostei + 0

13/06/2005

Daia

o deslocamento é entre linhas sim.
Tenho um dblookup onde posso selecionar uma categoria, por exemplo animais, aí no dbgrid vão aparecer somente os animais, a estrutura da query é:
qryPalavras.SQL.Text := ´Select palavra ´ +
´ from BDLibras.db ´ +
´where categoria = ´ + QuotedStr(dblcbCategoria.Text) +
´ order by palavra ´ ;

e o dbgrid está relacionado com o dataSource desta query, ok???


Responder

Gostei + 0

13/06/2005

Rjun

Bom, você poderia fazer uma select que retornasse a palavra e o nome do arquivo de video. Isso seria exibido em um grid. No evento AfterScrool da query você coloca esse código:

MediaPlayer1.FileName := ´C:\Libras\Avi\´ + qryPalavras.FieldByName(´Video´).asString; 
MediaPlayer1.Play;



Responder

Gostei + 0

13/06/2005

Daia

mas aí eu teria q ter mais um grid? Não tenho como buscar a palavra diretamente do grid e aí fazer um select tipo assim:
[b:765f063726]qryPalavras.SQL.Text := ´Select video ´ +
´ from BDLibras.db ´ +
´where palavra = ´ + QuotedStr(DBGrid1.SelectedField.Text);
qryPalavras.Open;
MediaPlayer1.FileName := ´C:\Libras\Avi\´ + qryPalavras.Text ;
MediaPlayer1.Play; [/b:765f063726]

o problema é que : QuotedStr(DBGrid1.SelectedField.Text); - isto não está correto do jeito q estou passando o valor do grid para o select vc não sabe como posso fazer isso?


Responder

Gostei + 0

13/06/2005

Rjun

Por que você teria q ter outro grid? Você não exibe a palavra no grid e a cada palavra selecionada a imagem correspondente é exibida?


Responder

Gostei + 0

13/06/2005

Daia

Ok, tentei fazer do jeito q vc me disse, mas aí retorna um erro:
exception class EDataBaseError with message ´qryPalavras: Field ´Palavra not found´.
Não entendi porque esse erro, não vejo nada de errado...


Responder

Gostei + 0

13/06/2005

Rjun

Coloque o trecho de código que você fez.


Responder

Gostei + 0

13/06/2005

Daia

procedure TForm1.qryPalavrasAfterScroll(DataSet: TDataSet);
begin
qryPalavras.SQL.Text := ´Select video ´ +
´ from BDLibras.db ´ +
´where palavra = ´ + QuotedStr(DBGrid1.SelectedField.Text);
qryPalavras.Open;
MediaPlayer1.FileName := ´C:\Libras\Avi\batata.avi´ + qryPalavras.Text ;
MediaPlayer1.Play;
end;


Responder

Gostei + 0

13/06/2005

Rjun

Acho que você não me entendeu.
No form em que você exibe o grid, coloque o seguinte trecho.

qryPalavras.SQL.Text := ´Select palavra, video ´ + 
´ from BDLibras.db ´ + 
´where categoria = ´ + QuotedStr(dblcbCategoria.Text) + 
´ order by palavra ´ ; 


No evento AfterScrool dessa query, você coloca o seguinte trecho:
procedure TForm1.qryPalavrasAfterScroll(DataSet: TDataSet); 
begin 
  MediaPlayer1.FileName := ´C:\Libras\Avi\´ + qryPalavras.FieldByName(´Video´).AsString; 
  MediaPlayer1.Play; 
end;
[/code]


Responder

Gostei + 0

13/06/2005

Daia

agora está dando este erro:
exception class EDataBaseError with message ´qryPalavras: Field ´video not found´.


Responder

Gostei + 0

13/06/2005

Rjun

Esse campo existe? Se sim, você adicionou ele na query, no fields editor?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar