Ir para conteúdo
Fórum Script Brasil

António44

Membros
  • Total de itens

    168
  • Registro em

  • Última visita

Tudo que António44 postou

  1. Meus amigos preciso de ajuda no seguinte. Com o codigo que já estou usando como faço um play na lista,para iniçiar na faixa 1 ate ao final da lista. procedure TForm1.Button5Click(Sender: TObject); begin if listbox1.itemindex <0 then showmessage('lista vazia...selecione musica ')else begin mciSendString('Close MM', abc, 0, 0); //Close audio fname := listbox1.Items.strings[listbox1.itemindex]; //Get what was selected abc3 := GetShortName(fname); //Change filename to short file name abc2 := PChar('Open ' + abc3 + ' Alias MM'); //Open file code mciSendString(abc2, abc, 0, 0); //Open the file to play mciSendString('Play MM', abc, 0, 0); //Play the file end; end; Alguma ideia ai, é que assim só reproduz uma a uma ou seja,a seleccionada e não reproduz a lista toda mesmo que seleccione todas as faixas da lista. Obrigada
  2. procedure TPrateleiras.FlatSpeedButton6Click(Sender: TObject); begin if FlatSpeedButton2.Enabled= false then begin if (Dbedit3.Modified = true) then principal.Timer1.Enabled:=true; principal.Timer1.Interval:=100; Close; end else begin if FlatSpeedButton2.Enabled= true then if MessageDlg('Tem registo aberto,sair na mesma ? ',mtconfirmation,mboKcancel,0)=ID_OK then begin if (Dbedit3.Modified = true) then principal.Timer1.Enabled:=true; principal.Timer1.Interval:=100; Close; end; end; end; Utilizo para executar uma 2ª funcão de calculo...se criar novo registo ou editar o registo e haver alteração no dbedit3 tudo perfeito mas quando apago um registo da tabela não considera modificação ???? como posso contornar isto já usei assim if (Data.table7.Modified = true) then e tb não funciona. Abraços
  3. Uso esta Expression SUM(Aplicado)/(Query1.Recebido - Query2.Recebido) *100 para subtrair o valor de 2 query ....quando executo o Sql e existe apenas um valor no report em vez de dar um valor 00.00 aparece a expression na impresão. SUM(Aplicado)/(Query1.Recebido - Query2.Recebido) *100 alguém pode ajudar, agradeço Abraços
  4. Eu tb uso, mas estes sft.mais antigos que tenho tem uma serie de componentes do D3 que era uma grande dor de cabeça migrar tudo isto. abraço
  5. Não e bem isso que procuro para o D3 queria mesmo uma Skin tipo vclskin,já tentei corrigir a do D5 mas não funciona.
  6. Sem efeito,não funcionam em D3 ....ainda nada para D3. Abraço
  7. alguém sabe onde posso arranjar Skins para melhorar os soft.feitos no D3 .
  8. Já instalei mas com o UAC rodando os projetos como administrador eles funcionam bem,mas o que eu queria era adicionar em código no projeto para que ao ser executado ele rodasse logo como admin... assim poderiam ter o UAC ativado que não interferia.Porque é chatoo usuário ter que escoler rodar como admin... para funcionar.
  9. Tem por ai algum código que faça as minhas velhas aplicações executarem como administrador,por causa da BDE com o UAC ativado não deixa escrever no disco.
  10. António44

    Problema

    você tem que manter esse form2 sempre ativo, ou seja fica invisivel e chama ele assim. form2.Show;
  11. Para arquivos WAV, nós precisamos um indicador para o recurso carregado na memória,nós precisamos carregar usando o API: function GetResourceAsPointer(ResName: pchar; ResType: pchar; out Size: longword): pointer; var InfoBlock: HRSRC; GlobalMemoryBlock: HGLOBAL; begin InfoBlock := FindResource(hInstance, resname, restype); if InfoBlock = 0 then raise Exception.Create(SysErrorMessage(GetLastError)); size := SizeofResource(hInstance, InfoBlock); if size = 0 then raise Exception.Create(SysErrorMessage(GetLastError)); GlobalMemoryBlock := LoadResource(hInstance, InfoBlock); if GlobalMemoryBlock = 0 then raise Exception.Create(SysErrorMessage(GetLastError)); Result := LockResource(GlobalMemoryBlock); if Result = nil then raise Exception.Create(SysErrorMessage(GetLastError)); end; function GetResourceAsString(ResName: pchar; ResType: pchar): string; var ResData: PChar; ResSize: Longword; begin ResData := GetResourceAsPointer(resname, restype, ResSize); SetString(Result, ResData, ResSize); end; procedure TForm1.FormCreate(Sender: TObject); var sample_wav: pointer; size: longword; begin sample_wav := GetResourceAsPointer('ABC', 'wave', size); end; Uma vez que nós temos o recurso wave carregado na memória, nós podemos tocá-lo quantas vezes quisermos usando o API sndPlaySound declarado na unidade MMSystem: procedure TForm1.Button1Click(Sender: TObject); begin sndPlaySound(sample_wav, SND_MEMORY or SND_NODEFAULT or SND_ASYNC); end; Pode ser que ajude. Abraço
  12. O amigo Jhonas é o máximo, espetacular tem que vir cá a Portugal pra uma churrrascada.... problema resovido. Abraço.
  13. procedure TForm1.SpeedButton1Click(Sender: TObject); var tpRunTotal:real; begin tpRunTotal := 0; with Table1 do begin First; while not EOF do begin tpRunTotal := tpRunTotal + Table1Largura.asfloat; Next; d2.Caption:= ''+floattostrF(tprunTotal,ffnumber,4,2); end; end; end; Eu não conheço maneira de somar valôr assim a não ser por SQL e da Tabela porque lá é que tem os valores!! ,não vejo outra maneira.... Abraço.
  14. Veja se serve. var i: integer; sum: real; begin sum:=0; for i:=0 to dbgrid1.columns.Count - 1 do sum:=sum+StrToFloat(DBGrid1.Columns[i].field.AsString); Total.Text:=FloatToStr(sum); end; Abraço.
  15. Veja se dá para o que você quer,não testei. ´ Aggregates! Como fazer campos agregado. Vai aí a dica para quem esta com o mesmo problema. Marcar no ClientDataSet a opção AggregatesActive = true Dar dois cliques no ClientDataSet depois clicar com o botão direito e escolher a opção New Field... Dar um nome que você queira e selecionar no Field Type: aggregate e depois dar ok! Nas opções do campo criado vai em Expression e coloca SUM(CAMPO_QUALQUER) aqui pode fazer um AVG MAX MIN etc... Vai no form que você quer coloca um dbtext e seta para o ClientDataSet e o campo agregado criado e pronto
  16. Basta mudar a variável de Ambiente para C:\Windows\TEMP. Resolvido
  17. procedure TForm1.SpeedButton1Click(Sender: TObject); var b: Integer; begin edit19.Text:='0'; Não sei para que efeito você vai usar isso??? aqui entro com valor zero,mas se você quer digitar um valôr manual já não pode ser assim!. b := 0; repeat b:=b+1; If StrToInt(Edit19.Text) < 60 Then Edit19.Text := IntToStr(StrToIntDef(Edit19.Text,0)+1); Edit19.Refresh; sleep(500); // corresponde a 1/2 segundo de parada until b = 60; end. Esta funcionando bem agora. Como diz o colega,Jhonas e bem o Ttimer é o mais indicado. Abraço.
  18. Coloque um PageControl esta na aba Win32 no form, depois com o lado direito do rato em cima do pageControl tem a opção de inserir New Page as TabSheet serão inseridas depois é só fazer os seus ajustes. Abraço
  19. É exactanmente isso que o programa faz com aquele code do Registro a extensão .QRP está registada no Windows sem ter que recorrer ao tipo de arquivo e com o meu code com o click duplo no arquivo ele abre o EXE e o arquivo QRP,logo mostrando os dados as paginas tudo certinho só que quando mostra a 1ª página dá aquela mensagem de erro sempre '''Access violation at address 0045D643 in module GestorV.exe read of adress 00000000. Mas funciona,não fica bloqueado passa as paginas ,imprime etc... mesmo depois se quizer abrir outro pelo OpenDialog tudo bem funciona perfeitamente. Amigo Jhonas tem jeito de eu mandar pra você o fonte completo. Abraço.
  20. Jhonas usando o botão pra carregar esta bom. rocedure TfrmPreview.LoadClick(Sender: TObject); begin with TOpenDialog.Create(Application) do try mas eu queria que ao dar um duplo em qualquer report ela carregasse logo no meu Preview.!!! e é ai que dá o erro ela carrega logo sem ter que ir no Opendialog se eu tirar a parte do meu codigo ela funciona bem carrega a report em branco e não a que eu queria com os dados depois se ir pelo botão ela corre normal. Não sei se eu me estou explicando mal ...você esta entendendo? Abraço.
  21. Está bom mas o problema é quando quero carregar o report salvo...usando '' QRPreview.QRPrinter.Load(ParamStr(1));'' procedure TfrmPreview.Resgata; begin QRPreview.QRPrinter.Load(ParamStr(1)); Caption := 'A gerar relatório, por favôr aguarde...'; if QRPreview.QRPrinter.Title = '' then QRPreview.QRPrinter.Title := (ParamStr(1)); if QRPreview.QRPrinter.PageCount = 1 then Self.Caption := QRPreview.QRPrinter.Title + ' - ' + IntToStr(QRPreview.QRPrinter.PageCount) + ' pagina' else Self.Caption := QRPreview.QRPrinter.Title + ' - ' + IntToStr(QRPreview.QRPrinter.PageCount) + ' paginas'; bPleaseInit := True; Init; end; Executo aprocedure aqui quando chamo OnPreview . unit UnitVisualizar; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Db, Qrctrls, quickrpt, DBTables, ExtCtrls,qrprntr,Registry,ShlObj, qrextra,qrhtml,qr2const; type TVisualizar = class(TForm) QuickRep1: TQuickRep; QRBand1: TQRBand; QRLabel1: TQRLabel; QRLabel2: TQRLabel; procedure FormCreate(Sender: TObject); procedure QuickRep1Preview(Sender: TObject); private { Private declarations } public { Public declarations } WhichPreviewToUse: integer; bCanPrint: boolean; procedure RegistrarExtensaoQRP; end; var Visualizar: TVisualizar; implementation uses Unit1; {$R *.DFM} procedure TVisualizar.RegistrarExtensaoQRP; var _reg: TRegistry; begin _reg := TRegistry.Create; try _reg.RootKey := HKEY_CLASSES_ROOT; _reg.LazyWrite := False; _reg.OpenKey('GestorV', True); _reg.WriteString('', 'Relatórios do Gestor de portarias'); _reg.CloseKey; _reg.OpenKey('GestorV\shell\open\command', True); _reg.WriteString('', ParamStr(0) + ' "%1"'); _reg.CloseKey; _reg.OpenKey('GestorV\DefaultIcon', True); _reg.WriteString('', ParamStr(0) + ',0'); _reg.CloseKey; _reg.OpenKey('.QRP', True); _reg.WriteString('', 'GestorV'); _reg.CloseKey; finally _reg.free; end; SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); end; procedure TVisualizar.FormCreate(Sender: TObject); begin RegistrarExtensaoQRP; WhichPreviewToUse := 0; bCanPrint := True; With QuickRep1 do begin Preview; end; free; end; procedure TVisualizar.QuickRep1Preview(Sender: TObject); begin Application.CreateForm(TfrmPreview, frmPreview); with frmPreview do begin if ParamCount > 0 then if FileExists(ParamStr(1)) then begin pQuickReport:= QuickRep1; QRPreview.QRPrinter := TQRPrinter(Sender); bCanPrint := Self.bCanPrint; resgata; show; end else Caption := 'A gerar relatório, por favôr aguarde...'; pQuickReport:= QuickRep1; QRPreview.QRPrinter := TQRPrinter(Sender); bCanPrint := Self.bCanPrint; Show; end; end; end. Retorna sempre o erro quando vou ao ficheiro guardado e dou um duplo click nele ele abre o preview mostra a report mas retona erro. Abraço amigo Jhonas.
×
×
  • Criar Novo...