mediaplayer
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!!
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
Curtidas 0
Respostas
Guilherme
13/06/2005
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
depois vc posta si deu certo
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
GOSTEI 0
Daia
13/06/2005
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??
é 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??
GOSTEI 0
Rjun
13/06/2005
Faça isso:
qryPalavras.SQL.Text := ´Select video ´ + ´ from BDLibras.db ´ + ´where palavra = ´ + QuotedStr(query.FieldByName(´Nomedovideo´).asString);
GOSTEI 0
Daia
13/06/2005
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...
GOSTEI 0
Rjun
13/06/2005
O deslocamente é entre linhas? Como que é a estrutura da sua query?
GOSTEI 0
Daia
13/06/2005
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???
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???
GOSTEI 0
Rjun
13/06/2005
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;
GOSTEI 0
Daia
13/06/2005
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?
[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?
GOSTEI 0
Rjun
13/06/2005
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?
GOSTEI 0
Daia
13/06/2005
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...
exception class EDataBaseError with message ´qryPalavras: Field ´Palavra not found´.
Não entendi porque esse erro, não vejo nada de errado...
GOSTEI 0
Rjun
13/06/2005
Coloque o trecho de código que você fez.
GOSTEI 0
Daia
13/06/2005
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;
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;
GOSTEI 0
Rjun
13/06/2005
Acho que você não me entendeu.
No form em que você exibe o grid, coloque o seguinte trecho.
No evento AfterScrool dessa query, você coloca o seguinte trecho:
[/code]
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;
GOSTEI 0
Daia
13/06/2005
agora está dando este erro:
exception class EDataBaseError with message ´qryPalavras: Field ´video not found´.
exception class EDataBaseError with message ´qryPalavras: Field ´video not found´.
GOSTEI 0
Rjun
13/06/2005
Esse campo existe? Se sim, você adicionou ele na query, no fields editor?
GOSTEI 0
Rjun
13/06/2005
Conseguiu?
GOSTEI 0