António44
-
Total de itens
168 -
Registro em
-
Última visita
Posts postados por António44
-
-
procedure TFotoskiko.BitBtn4Click(Sender: TObject); Var g:integer; begin g:= 0; JvThumbView1.Selected:=(JvThumbView1.Selected+(g+1)); end; procedure TFotoskiko.BitBtn5Click(Sender: TObject); Var g:integer; begin g:= 0; JvThumbView1.Selected:=(JvThumbView1.Selected-(g+1)); end;
Consegui com esta solução,não está 100% mas funciona bem para navegar no JvThumbView e mostrar foto em maiores dimensões no JvThumbnail .
procedure TKikinho.FormShow(Sender: TObject); begin JvThumbnail1.FileName:=(Fotoskiko.JvThumbView1.SelectedFile); end;
procedure TKikinho.BitBtn2Click(Sender: TObject); Var g:integer; begin g:= 0; JvThumbnail1.FileName:=''; Fotoskiko.JvThumbView1.Selected:=Fotoskiko.JvThumbView1.Selected+(g-1); sleep(20); Timer1.Enabled:=true; end; procedure TKikinho.Timer1Timer(Sender: TObject); begin JvThumbnail1.FileName:=(Fotoskiko.JvThumbView1.SelectedFile); Timer1.Enabled:=false; end;
procedure TKikinho.BitBtn3Click(Sender: TObject); Var g:integer; begin g:= 0; JvThumbnail1.FileName:=''; Fotoskiko.JvThumbView1.Selected:=Fotoskiko.JvThumbView1.Selected+(g+1); sleep(20); Timer1.Enabled:=true; end;
Se por acaso surgir por ai uma ideia melhor por favor me passem.
Obrigado
-
Usando um botão para selecionar o próximo ou o anterior no Componente JvThumbView . Era para identificar a primeira e a ultima imagem
Agradeço
-
3 horas atrás, António44 disse:
Teste assim ,data 31 de Agosto seleccionada no Calendar e avançe para o més seguinte no scrollbar que será Setembro de 30 dias, como o 31 não existe no més de Setembro dá erro.
Resolvido;
if ScrollBar1.Position=1 Then Panel1.Caption:='Janeiro' Else if ScrollBar1.Position=2 Then Panel1.Caption:='Fevereiro' Else if ScrollBar1.Position=3 Then Panel1.Caption:='Março' Else if ScrollBar1.Position=4 Then Panel1.Caption:='Abril' Else if ScrollBar1.Position= 5 Then Panel1.Caption:='Maio' Else if ScrollBar1.Position=6 Then Panel1.Caption:='Junho' Else if ScrollBar1.Position=7 Then Panel1.Caption:='Julho' Else if ScrollBar1.Position=8 Then Panel1.Caption:='Agosto' Else if ScrollBar1.Position=9 Then Panel1.Caption:='Setembro' Else if ScrollBar1.Position=10 Then Panel1.Caption:='Outubro' Else if ScrollBar1.Position=11 Then Panel1.Caption:='Novembro' Else if ScrollBar1.Position=12 Then Panel1.Caption:='Dezembro'; if ScrollBar1.Position=13 Then begin ScrollBar1.Position:=1; Panel3.Caption:=FloatToStr(StrToFloat(Panel3.Caption)+1); end; if ScrollBar1.Position=0 Then begin ScrollBar1.Position:=12; Panel3.Caption:=FloatToStr(StrToFloat(Panel3.Caption)-1); end; Calendar1.NextMonth; Usando assim funciona na perfeição //Calendar1.Month:=ScrollBar1.Position;>>>>>>Retirado Calendar1.Year:=StrToInt(Panel3.Caption); end;
Obrigado.
-
5 horas atrás, Jhonas disse:
Acho que é isso que voce está querendo fazer
procedure TForm1.ScrollBar1Change(Sender: TObject); begin if ScrollBar1.Position=1 Then Panel1.Caption:='Janeiro' Else if ScrollBar1.Position=2 Then Panel1.Caption:='Fevereiro' Else if ScrollBar1.Position=3 Then Panel1.Caption:='Março' Else if ScrollBar1.Position=4 Then Panel1.Caption:='Abril' Else if ScrollBar1.Position= 5 Then Panel1.Caption:='Maio' Else if ScrollBar1.Position=6 Then Panel1.Caption:='Junho' Else if ScrollBar1.Position=7 Then Panel1.Caption:='Julho' Else if ScrollBar1.Position=8 Then Panel1.Caption:='Agosto' Else if ScrollBar1.Position=9 Then Panel1.Caption:='Setembro' Else if ScrollBar1.Position=10 Then Panel1.Caption:='Outubro' Else if ScrollBar1.Position=11 Then Panel1.Caption:='Novembro' Else if ScrollBar1.Position=12 Then Panel1.Caption:='Dezembro'; if ScrollBar1.Position=13 Then begin ScrollBar1.Position:=1; Calendar1.Year := Calendar1.Year+1; end; if ScrollBar1.Position=0 Then begin ScrollBar1.Position:=12; Calendar1.Year := Calendar1.Year-1; end; Calendar1.Month:=ScrollBar1.Position; Panel3.Caption:= inttostr(Calendar1.Year); end;
abraço
Teste assim ,data 31 de Agosto seleccionada no Calendar e avançe para o més seguinte no scrollbar que será Setembro de 30 dias, como o 31 não existe no més de Setembro dá erro.
-
11 horas atrás, Jhonas disse:
Voce não respondeu a minha pergunta....
O erro ocorre nessas linhas ?
Calendar1.Month:=ScrollBar1.Position; Calendar1.Year:=StrToInt(Panel3.Caption);
"Argumento inválido para codificação de data".
significa que voce esta tentanto atribuir um valor invalido para a data
Sim,mas terá um jeito de ultrapassar isso? estou por exemplo com uma data de 31 seleccionada no Calendar e avanço para o més seguinte no scrollbar que será de 30 dias, como o 31 não existe no més dá erro. Como contorno isso? Ao avançar para o més seguinte se for de 30.
-
So da erro quando por exemplo o estiver num mes de 31 dias com o dia 31 seleccionado e passa para a frente ou para tráz com o scrolbar se for mes de 30 dias ai da o erro se for de 31 já náo dá .
haverá jeito de contornar isso?
Obrigado
-
Dias de 31 ou 29 no bisexto gera erro."Invalid argument to date encode". alguém pode dar uma ajuda a contornar isso? procedure TFormAgenda.ScrollBar1Change(Sender: TObject); begin if ScrollBar1.Position=1 Then Panel1.Caption:='Janeiro' Else if ScrollBar1.Position=2 Then Panel1.Caption:='Fevereiro' Else if ScrollBar1.Position=3 Then Panel1.Caption:='Março' Else if ScrollBar1.Position=4 Then Panel1.Caption:='Abril' Else if ScrollBar1.Position= 5 Then Panel1.Caption:='Maio' Else if ScrollBar1.Position=6 Then Panel1.Caption:='Junho' Else if ScrollBar1.Position=7 Then Panel1.Caption:='Julho' Else if ScrollBar1.Position=8 Then Panel1.Caption:='Agosto' Else if ScrollBar1.Position=9 Then Panel1.Caption:='Setembro' Else if ScrollBar1.Position=10 Then Panel1.Caption:='Outubro' Else if ScrollBar1.Position=11 Then Panel1.Caption:='Novembro' Else if ScrollBar1.Position=12 Then Panel1.Caption:='Dezembro'; if ScrollBar1.Position=13 Then begin ScrollBar1.Position:=1; Panel3.Caption:=FloatToStr(StrToFloat(Panel3.Caption)+1); end; if ScrollBar1.Position=0 Then begin ScrollBar1.Position:=12; Panel3.Caption:=FloatToStr(StrToFloat(Panel3.Caption)-1); end; Calendar1.Month:=ScrollBar1.Position; Calendar1.Year:=StrToInt(Panel3.Caption); end;
-
4 horas atrás, Jhonas disse:
ok... então voce deve criar um campo porcentagem na sua tabela
depois voce pode optar por 2 formas de colocar essa porcentagem nos registros
1 - crie um comando For para varrer todos os registros da tabela e atribua ao campo porcentagem o valor que voce quer
exemplo:
var i : integer; begin ClientDataSet1.Open; for i := 0 to ClientDataSet1.RecordCount -1 do begin ClientDataSet1.Edit; ClientDataSet1PORCENT.Value := 0.35; // 35% ClientDataSet1.Post; ClientDataSet1.ApplyUpdates(-1); ClientDataSet1.Next; end; end;
2 - use o comando UPDATE dentro da propriedade SQL do componente Query ou IBQuery ou outro, dependendo do seu banco de dados, para mudar todos registros com um só comando
update nome_tabela set Campo = 0.35 ( 35% )
Update produtos set Porcent = 0.35
ou usando parametros:
Update produtos set Porcent = :Perc
https://dev.mysql.com/doc/refman/5.7/en/update.html
abraço
Resolvido,
Obrigado
Abraço
-
4 horas atrás, Jhonas disse:
Se eu quiser mudar essa percentagem em todos os registros tenho que calcular 1 a 1 .
há maneira de alterar em todos os registros de uma só vez?
quando voce fala de alterar em todos os registros de uma só vez?
voce está se referindo a todos os registros da sua tabela ou somente a registros específicos ?
essa porcentagem é igual para todos os registros ?
Obs : dê sempre um exemplo do que voce quer fazer... facilita o entendimento
abraço
No campo1 Valor * percentagem campo2 = resultado .
Sim a percentagem será igual para todos.
Sim em todos os registos de uma só vez baseado na percentagem escolhida.
Abraço
-
Tenho uma Tabela com 2 campos Valor da compra,Valor da venda.
Ao valor da compra no enter do dbedit atribuo uma percentagem que é o resultado do valor da venda.
Se eu quizer mudar essa percentagem em todos os registos tenho que calcular 1 a 1 .
há maneira de alterar em todos os registos de uma só vez?
Obrigado
abraço
-
Boas Jhonas, eu resolvi assim.
Uma vez que se tratava de problema na ultima faixa,não havia necessidade de activar o Timer1 então passei o Gauge1 para outro, Timer2 e assim testa logo se esta no ultimo não activa o timer1, e funciona muito bem .
procedure TForm1.DBGridWithRuler1DblClick(Sender: TObject); begin MediaPlayer1.Close; // tirar a musica da tabela e salvar no disco Query1MP3.SaveToFile('c:\musica.mp3'); // abrir a musica pelo MediaPlayer e tocar MediaPlayer1.FileName := 'c:\musica.mp3'; MediaPlayer1.Open; FlatGauge1.MaxValue := MediaPlayer1.Length; MediaPlayer1.Play; timer2.Enabled := true; cap := Query1Nome.Value;; ncar := 0; if not Query1.Eof then timer1.Enabled := true; end; procedure TForm1.Timer2Timer(Sender: TObject); begin FlatGauge1.Refresh; if FlatGauge1.MaxValue <> 0 then FlatGauge1.Progress := MediaPlayer1.Position; if FlatGauge1.Progress = FlatGauge1.MaxValue then begin FlatGauge1.Progress := 0; end; end;
Obrigado amigo por sua ajuda valeu...eu uso o Delphi para pequenos projectos, eu trabalho com WinCC Controle Center da Siemens.
Abraço
-
amigo, pelo que eu vejo, voce tem pouca experiencia com o delphi ...
É verdade não tenho não,mas a verdade é que ta dando isso ai...
Uso 10MB no campo.
Uso o DBNavigator.
Uso o código exactamente como vc passou ,e como eu disse no post anterior.
abraço
Iniciando o exe se o ultima faixa estiver visivel na DBgrid e vc der click directo ela toca normal sem problema,mas se a ultima faixa não está visivel no Dbgrid e vc tiver que navegar ela até aparecer o ultimo,(Dbnavigator ou scroll....) quando vcclicka faz play mas pára logo.
Eu já testei de várias maneiras ....mudei as faixas porque poderiam estar corrompidas o tamanho tb não tem problema o campo tem 10MB...???? não sei mais.
Abraço
-
E verdade vc tinha razão Jhonas,a musica tava memo corrompida.
Uffff
Abraço
Pois eu deleitei 2 ou 3 registos e a DBgrid ficou com os registos todos visiveis,,,,????
Afinal não esta resolvido não... o problema é com certeza na DBgrid porque se a ultima faixa estiver visivel na DBgrid e vc der click ela toca normal,mas se a ultima faixa não está visivel e vc tiver que rolar ela até aparecer o ultimo, quando vc faz play pára logo, ou seja pelo rolar da DBgrid ja detectou o ultimo registo e não faz o play faz logo o stop,iniciando logo directo sem rolar a dbgrid tudo bem porque só depois com a acção do timer1 é que vai detectar que é o ultimo registo e faz o stop....como resolver isto.?
Abraço
-
E verdade vc tinha razão Jhonas,a musica tava memo corrompida.
Uffff
Abraço
-
Criei um novo projeto testei o código que vc passou e da o mesmo erro...
Ao iniciar o programa vou para a ultima faixa faço um click e arranca a faixa e para logo...ou seja deteta logo ai o final da Query e faz um stop.
Se fazer o play da ultima pelo botão 2.
procedure TForm1.Button2Click(Sender: TObject); begin Query1.Active := false; Query1.Active := true; MediaPlayer1.Close; // tirar a musica da tabela e salvar no disco Query1MP3.SaveToFile('c:\musica.mp3'); // abrir a musica pelo MediaPlayer e tocar MediaPlayer1.FileName := 'c:\musica.mp3'; MediaPlayer1.Open; MediaPlayer1.Play; end;
ele faz o play mas ai não anda o Gauge1.
Abraço
-
Se vc abrir o exe e seleccionar logo a ultima faixa ela arranca e para logo....não faz o play.
Se vc seleccionar outra qualquer primeiro e depois seleccionar a ultima ai ela ja toca...?
eu testei com este código que vc passou e faz igual.
Abraço
-
Eu usei assim e passa as faixas na boa mas se eu iniciar em qualquer fixa,mas se ir logo directo para a ultima faixa e fazer um play ele arranca e para logo...
procedure TFplay.Timer3Timer(Sender: TObject); begin if MediaPlayer1.Position = MediaPlayer1.Length then begin Data.Query1.next; Play.Click; end else Begin if Data.Query1.Eof then begin MediaPlayer1.Stop; timer3.Enabled := false; end; end; end;
-
Vou usar dbgrid para passar lista, então com um timer eu faço mudar de faixa mas quando chega na ultima fica repetindo eu queria que parasse quando teminar a ultima faixa.
procedure TFplay.Timer3Timer(Sender: TObject); begin if MediaPlayer1.Position = MediaPlayer1.Length then begin with DB1 do begin if SelectedIndex = Columns.Count - 1 then // Se o item atual do DbGrid não for o último campo ele muda de campo mas se é o ultimo ele repete. begin DB1.SetFocus; Query1.Next; .... end; end; end; end;
-
Porreiro.
Obrigado Jhonas
Abraço
-
ok,
Assim como esta funciona bem, 1 de cada vez agora como faço para fazer correr a lista do dbgrid ? é igual como no listbox?
-
dando erro aqui.
Erro . Cannot modify a read-only dataset.
procedure TForm1.FlatSpeedButton1Click(Sender: TObject); begin If opendialog1.Execute Then begin // musica selecionada na pasta nome_musica := opendialog1.filename; // gravar na tabela Query1.Active := false; Query1.Active := true; Query1.Last; Query1.Insert; Query1.Edit; Query1Nome.Value := nome_musica; Query1MP3.LoadFromFile(nome_musica); Query1.Post; showmessage('Musica Salva'); end; end;
-
Ok Obrigado
Abraço
-
Tenho aqui uma duvida no Trackbar.
Com Max= 22 ele funciona bem, mas se eu meter o Max=100 e por exemplo Position=40 inicia bem o som mas quando aumento no trackbar nos 50% e nos 100% quase fica sem som porque será?
Eu queria usar um som acima dos Max=22 ?
procedure TRegistoMolduras.TrackBar1Change(Sender: TObject); var Count , i : longint; // 4369 begin Count := waveOutGetNumDevs; for i := 0 to Count do begin waveOutSetVolume(i,longint(TrackBar1.position*1369)*65536+longint(TrackBar1.position*1369)); end; end;
Abraço
-
Ok ,vou montar o projecto para ver tudo funcionando.
Obrigado Jhonas.
Abraço
Scroll mouse DBgrid
em Delphi, Kylix
Postado · Editado por António44
Nunca me tinha acontecido ,isto???
Na tabela uso campo Auto incremento mas quando grava não ordena os registos e no scroll do mouse com o foco no dbGrid passa do primeiro para o ultimo e do ultimo para o primeiro registo na DBgrid se DBgrid não estar no foco rola normal passando os registos 1 em 1 ???
Mas no DbNavigator passa sempre os registos normal ???.
Faz isto em todas as tabelas que uso campo +Auto incremento.
Poderiam ter uma ideia do problema?
Agradecido