Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. voce ainda não entendeu como proceder.. veja o exemplo procedure TForm1.Button1Click(Sender: TObject); begin // CLOCAR A INSTRUÇÃO SQL PARA FILTRAR OS REGISTROS PARA CALCULO DBGrid1.Visible := false; if (CDS_Moviment.RecordCount <> 0) then begin CurrencyEdit1.Value := 0; for i := 1 to CDS_Moviment.RecordCount do begin CDS_Moviment.Edit; CDS_MovimentTOTAL.Value := CDS_MovimentQUANT.Value * CDS_MovimentPRECOV.Value; CDS_Moviment.Post; CDS_Moviment.ApplyUpdates(-1); // calcular o valor de 10 % sobre o valor total CDS_MovimentPERCENT.Value := CDS_MovimentTOTAL.Value * 10 / 100; CDS_Moviment.Next; end; CDS_Moviment.First; end; DBGrid1.Visible := true; end; ai no codigo eu não coloquei, mas voce pode incluir uma instrução sql para filtrar os registros e depois aplicar o calculo entendeu ? abraço
  2. Fiz um teste usando o componente FlashViewer ... com ele voce consegue fazer o que esta querendo tem um demo nesse link e os componentes para baixar http://www.delphiflash.com/download/demo/youtube/youtube.zip componente FlashViewer http://www.delphiflash.com/flash-viewer-engine OBS: para que voce execute um video após outro em sequencia, no memo do demo, aparece o valor do tamanho do video ... basta fazer uma comparação com tempo total com o tempo restante do video para poder executar o proximo voce disse que consegue obter a informação de tempo em segundos do video... passa pra mim essa rotina que eu tento ver se da pra fazer com o webbrowser abraço
  3. por isso falei para usar o refreshrecord ( apenas no registro em uso ) uma solução seria voce criar esse campo na tabela ... isso pode ser feito via programação, sem a necessidade de pegar o banco de dados do cliente ... coloca o codigo em um botão e o campo é adicionado a tabela ( veja alter table na net ) abraço
  4. que eu saiba voce pode criar varias instancias, ou seja, voce pode criar mais de um redirecionamento de porta seria tipo IdMappedPortTCP1.MappedHost := '192.168.1.1'; IdMappedPortTCP1.MappedPort := 55; IdMappedPortTCP1.DefaultPort := 55; IdMappedPortTCP1.Active := True; IdMappedPortTCP2.MappedHost := '192.168.1.3'; IdMappedPortTCP2.MappedPort := 55; IdMappedPortTCP2.DefaultPort := 55; IdMappedPortTCP2.Active := True; abraço
  5. OK ... vou fazer uns testes aqui com 2 videos para que sejam exibidos em sequencia .... depois posto o resultado
  6. ok ... veja que a utilização de campos calculados, voce só usa quando voce não quer que esses calculos fiquem na tabela... ou seja voce quer os calculos somente na memoria e que sejam apresentados ao usuario sempre que houver modificações. ( na verdade o usuario acha que esses calculos estão na tabela ) eu utilizo campos calculados de 2 maneiras: o calculo é realizado a cada atualização da tabela e é mostrado no dbgrid ( ao fechar a tabela os valores são perdidos) mas como os valores ainda estão na memoria , posso utilizados inclusive para gerar relatorios. ou o calculo é efetuado e guardado em um campo da tabela , o que facilita tambem muito a manipulação dos dados quant ------preço--------total-------percent voce tem que ver qual é a melhor opção para o seu uso ( quantidade de registros trabalhados ou tempo de resposta ) abraço
  7. acho que se voce seguiu o padrão de programação, voce deve ter um botão OK para salvar as alterações ou inclusões ..certo ? então faça o calculo nesse botão quando for clicado ou faça o calculo quando exibir os dados no dbgrid ...( sempre que atualizar a tabela ) o seu problema está sendo a demora em atualizar os dados da tabela ?
  8. use o evento OnExit do componente nesse caso voce pode: 1 - usar outra instrução SQL para efetuar o calculo do campo 2 - dar o refeshrecord na tabela em uso 3 - usar o Commit para atualizar as tabelas 4 - fechar e abrir a tabela novamente abraço
  9. me passa o endereço URL de 2 videos curtos para que eu possa fazer um teste aqui
  10. voce esta usando dbgrid ou dbedit para visualizar os campos ?
  11. um registro ao ser inserido ou modificado deve ser atualizado no banco de dados, o RefreshRecord faz isso somente no registro corrente e não em toda a tabela veja o help do delphi Atualiza os valores de base do registro atual para coincidir com os valores atuais de conjunto de dados do provedor. procedimento RefreshRecord; descrição Chamada de atualização para mudar os valores de base do registro atual para coincidir com o valor atual do servidor. Atualizar substitui os valores originais obtidos a partir de um provedor, mas deixa quaisquer alterações no log de alterações intacta. Aviso: RefreshRecord deve ser usado com cuidado. Se o usuário tenha modificado o registro atual, atualizar os valores originais podem mascarar conflitos de atualização. Quando o aplicativo cliente chama ApplyUpdates, sem conciliar, o erro irá ocorrer, mesmo quando isso é apropriado. Nota: Um método semelhante, Refresh, substitui todo o conteúdo do conjunto de dados do cliente com os valores atuais fornecidos pelo prestador. Ao contrário RefreshRecord, o que deixa as alterações não aplicadas no log de alterações, Refresh gera uma exceção quando o log de alterações não está vazio. OBS: Se voce estiver usando o interbase ou firebird pode usar FMenu.IBTransaction1.Commit; FMenu.IBTransaction1.StartTransaction; abraço
  12. o componente é pago ( $ 630 ) então a versão trial pode não ter essa funcionalidade mas veja esse exemplo na net usando o componente webbrowser http://www.webcheats.com.br/forum/delphi-v...do-youtube.html abraço
  13. esse componente abre videos da internet TVideoGrabber main features: # AVI / MPEG / WMV recording # Recording with Pre-Roll, # Timer Recording (delayed start, stop timered or create new file at regular intervals) # plays the most video clips: WMV, AVI, ASF, MPG, MP4, MOV # plays most audio clip: WAV, MP3 # Inclusion of a particular window identified by name or handle # Video files or streaming video URLs (authentication supported) # Zoom within the areas of the video source tem tutorial para uso dos componentes http://www.findsoft.net/Free_tvideograbber-tutorial/ abraço
  14. não dá pra pegar por exemplo, a propriedade position, do media player. se voce for usar o TVideoGrabber, tem um componente no pacote ( o DSTrackBar1) que mostra a posição atual do video abraço
  15. voce pode tentar usar o componente TIdMappedPortTCP1 do pacote Indy esta seria a forma mais simples de fazer um redirecionamento de porta procedure TForm1.Button1Click(Sender: TObject); begin IdMappedPortTCP1.MappedHost := '192.168.1.3'; IdMappedPortTCP1.MappedPort := 55; IdMappedPortTCP1.Active := true; end; voce pode tentar usar assim tambem unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPServer, IdMappedPortTCP, IdTCPConnection, IdTCPClient, StdCtrls; type TForm1 = class(TForm) IdMappedPortTCP1: TIdMappedPortTCP; IdTCPClient1: TIdTCPClient; Button1: TButton; function GetHost(URL: string):string; function GetPort(URL: string):integer; function DelHostOfURL(URL,Host:string;Port:integer):string; procedure IdMappedPortTCP1Execute(AThread: TIdMappedPortThread); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses wininet, idUri; {$R *.dfm} function TForm1.GetHost(URL: string):string; var LURI:TIdURI; begin LURI:=TIdURI.Create(URL); result:=LURI.Host; LURI.Free; end; //GetHost function TForm1.GetPort(URL: string):integer; var LURI:TIdURI; begin LURI:=TIdURI.Create(URL); if Length(LURI.Port)<>0 then result:=StrToInt(LURI.Port) else result:=80; LURI.Free; end; //GetPort function TForm1.DelHostOfURL(URL,Host:string;Port:integer):string; var s:string; begin result:= URL; s:='http://'+Host; if Port <> 80 then s:= s + ':' + IntToStr(Port); Delete(result,pos(s,result),length(s)); end; //DelHostOfURL procedure TForm1.IdMappedPortTCP1Execute(AThread: TIdMappedPortThread); var RequestHost:string; RequestPort:integer; begin //IDLock.Acquire; try RequestHost:=GetHost(AThread.NetData); RequestPort:=GetPort(AThread.NetData); if (RequestHost<>IdMappedPortTcp1.MappedHost) or (RequestPort<>IdMappedPortTcp1.MappedPort) then begin IdMappedPortTCP1.MappedHost:=RequestHost; IdMappedPortTCP1.MappedPort:=RequestPort; TidTcpClient(AThread.OutboundClient).Host:=RequestHost; TidTcpClient(AThread.OutboundClient).Port:=RequestPort; TidTcpClient(AThread.OutboundClient).Disconnect; TidTcpClient(AThread.OutboundClient).Connect(AThread.ConnectTimeOut); end; //ChangeConnect finally //IDLock.Release; end; end; procedure TForm1.Button1Click(Sender: TObject); begin IdMappedPortTCP1.Active := true; end; abraço
  16. veja que te passei um codigo usado para tocar mp3 ( usar um listbox para guardar os endereços dos videos nesse caso) com o componente TVideoGrabber voce pode tocar os videos de uma lista, em sequencia, alem de muitas outras facilidades que o componente possui zoom, contador de tempo, controles de contraste, brilho, cor, tirar um instantaneo do video .. etc abraço
  17. uma solução https://secure.logmein.com/BR/ abraço
  18. experimente The following AfterScroll event handler refreshes the current record every time the user moves to a new record, ensuring the most up-to-date value. Before refreshing a record, however, it checks the update status to avoid refreshing records that have been edited, which would potentially mask update errors. procedure TForm1.ClientDataSet1AfterScroll(DataSet: TDataSet); begin if ClientDataSet1.UpdateStatus = usUnModified then ClientDataSet1.RefreshRecord; end; abraço
  19. experimente The following AfterScroll event handler refreshes the current record every time the user moves to a new record, ensuring the most up-to-date value. Before refreshing a record, however, it checks the update status to avoid refreshing records that have been edited, which would potentially mask update errors. procedure TForm1.ClientDataSet1AfterScroll(DataSet: TDataSet); begin if ClientDataSet1.UpdateStatus = usUnModified then ClientDataSet1.RefreshRecord; end; abraço
  20. existe um componente chamado TVideoGrabber ... voce já o conhece ? http://tvideograbber-delphi-video-sdk.smar...sdk_300632.jpeg voce tambem pode fazer uma adaptação desse codigo, usando o TMediaPlayer http://scriptbrasil.com.br/forum/index.php...6156&hl=MP3 abraço
  21. Podemos criar um valor agregado, agrupado, somando com uma expressão agregada de SQL, para isso voce pode usar SQL, SUM, AVG, MAX, MIN ... etc ao usar a sentença slq, voce vai obter o valor do campo Total_Geral .. correto ? entretanto, devo supor que suas tabelas entejam relacionadas atraves de um campo comum entre elas então para que voce tenha o calculo do campo VALOR_PERCENT que esta em outra tabela, é o seu select que tera que definir a posição dos campos ( sequencia dos campos a aparecer em um dbgrid ) abraço
  22. se voce percebeu, voce deve colocar a coluna a ser calculada primeiro, mais a esquerda exemplo a coluna total sera a primeira a efetuar o calculo, em seguida será a de percent ... entendeu ? quant ------preço--------total-------percent abraço
  23. exemplo http://delphi.about.com/library/bluc/text/uc083101e.htm abraço
  24. veja esse exemplo de uso http://www.devmedia.com.br/quick-tips-fiel...aggregate/16254 abraço
  25. para o Mysql esta realmente um pouco lento, a não ser que esteja funcionando em rede abraço
×
×
  • Criar Novo...