
s3c
Membros-
Total de itens
817 -
Registro em
-
Última visita
Tudo que s3c postou
-
Um cast nada mais é que acessar um objeto como sendo outro. você não tem os Fields na sua Table ou Query ? Então, esses Fields são objetos TField e, para os campos numéricos que você quer formatar, utilize o cast p/ TNumericField, ex: Query1.FieldByName('Campo_Numero') ==> isso retorna um TField Para formatar: TNumericField(Query1.FieldByName('Campo_Numero')).DisplayFormat := '#.0'; O cast nesse caso acessa o TField como se fosse um TNumericField porque a propriedade DisplayFormat não existe na classe ancestral.
-
Se você ligar seu Dataset ao relatório, acredito que sim porque DisplayFormat determina como o campo vai ser exibido. Lembre-se que você tem que fazer o cast porque DisplayFormat não existe em TField e sim na sua classe descendente TNumericField.
-
Coloque uma máscara no TField: TNumericField(DBEdit1.Field).DisplayFormat := '#.0';
-
procure por NetRemoteTOD
-
Como está definido o campo no SQL Server ?
-
frmBackup.pas tem que ter porque você está declarando no uses da implementation; mas o erro que está dando é do arquivo Backup.pas. Procure por Backup.* em C:, D:, . . .
-
Procure pelo arquivo backup.pas ou backup.dcu; coloque o caminho no path do projeto. você deve ter esse arquivo em algum lugar p/ poder compilar o programa.
-
Olá colega, VarArrayOf é uma função que está definida e implementada na unit Variants.pas. Coloque Variants na cláusula uses da sua unit fInc_Curso.pas
-
Coloque Variants no uses.
-
Para ver seu .dpr não é View / Project Source e sim Project / View Source.
-
você pode trabalhar com o FormStyle antes do Show: FormMDIx.FormStyle := fsNormal; FormMDIx.Hide; FormMDIx.ShowModal; FormMDIx.FormStyle := fsMDIChild;
-
Olá colega, se a pasta do servidor não for compartilhada, você pode utilizar Sockets p/ enviar o arquivo. Veja TServerSocket e TClientSocket c/ suas funções SendBuf e ReceiveBuf.
-
Olá Paulo, se entendí bem sua necessidade, você quer embutir esses sub-executáveis num único .exe principal através de um .res. Bom, se for isto eu não conheço maneira de executar esses sub-programas a partir do .res sem ter que extraí-los p/ o disco. Como a questão do Progr'amador, se fosse meu caso, partiria logo p/ o TResourceStream.SaveToFile e depois os executaria pelo ShellExecute. Quanto a questão da pirataria, não me preocuparia em deixá-los no disco. Na hora de sua execução, checaria uma chave no regedit gerenciada pelo exe principal e se não existisse ou vencido o prazo, eles não funcionariam mais.
-
Olá Paulo, acredito que qualquer arquivo possa ser transferido p/ um .res; mas não entendí muito bem porque utilizar Find, Load e Lock Resource em um .txt ou .doc ou .exe. Essas tres funcções trabalham c/ a memória: FindResource localiza e retorna um Handle de resource (HRSRC) LoadResource carrega o recurso na memória e retorna um Handle de memória (HGLOBAL) LockResource retorna um ponteiro de memória alocada referente HGLOBAL. Com isto você tem o recurso carregado e um ponteiro p/ ele retornado pelo LoadResource. Como sndPlaySound possui um parâmetro p/ tocar diretamente da memória(Snd_Memory), então foram utilizadas essas funções, mas p/ outros arquivos vai depender da finalidade de uso e se houver funções que os manipule em memória. Olá Progr'amador, não posso garantir mas acho que sndPlaySound não toca mp3. Se você tiver MP3s em .res, tente extraí-los pelo TResourceStream.SaveToFile e depois utilize o TMediaPlayer que está na unit MPlayer.
-
Olá, sinto mas não tenho documentação a respeito; quando comecei a utilizar threads as informções eram muito picadas e você tinha que sempre recorrer ao help do Delphi e à internet.
-
Bom, do jeito que está, você extrai o .wav e depois executa a partir do local salvo. Tente extrair do .exe diretamente p/ memória: procedure TfrmPrincipal.mnuApresentacaoClick(Sender: TObject); var h1,h2:THandle; pSom:PChar; begin h1 := FindResource(HInstance, 'Notify', 'WavFile'); h2 := LoadResource(HInstance, h1); pSom := LockResource(h2); sndPlaySound(pSom, Snd_Async or Snd_Memory); UnlockResource(h2); end;
-
Poste o código que faz tocar o som a partir do .res
-
Olá Paulo, qual função você utliza p/ tocar o som ?
-
A thread principal nada mais é que seu programa. Ví você utilizando o método Synchronize e se você não souber, vale uma explicação que quando você utiliza Synchronize, na verdade sua thread fica suspensa e o método chamado pelo Synchronize é executado na thread principal e a thread que o chamou só volta ao seu ciclo após a principal terminar o processamento. É um mecanismo de segurança que obriga o método a ser executado em série e não por várias threads concorrentemente. Exceto em casos de necessidade, não é aconselhável utilizar Synchronize, pois você obriga seu programa a entrar num loop de mensagens e com isto a performace cai.
-
Olá kleberns, bom se o único objetivo do programa é verificar um diretório, não vejo motivo p/ abrir uma thread secundária; você pode fazer isso na thread principal do seu aplicativo. Já se o programa possui outras funções e uma delas é verificar continuamente um diretório, então o ideal será instanciar uma thread para isso. você pode fazer assim: procedure TThread_Verifica.Execute; begin While not Terminated do begin {Executa método de verificação} Sleep(1); // p/ a thread não utilizar altas taxas do processador end; end;
-
Não necessariamente, por ex: você pode abrir uma thread p/ executar um backup do banco de dados; com isto, seu aplicativo cotinua funcionando enquanto o backup é executado. Veja que a thread principal do seu programa sempre terá uma prioridade superior à prioridade das threads secundárias.
-
procedure TCriaLog.Execute; begin While Not Terminated Do Begin If tTexto.Count > 0 Then Synchronize(CriaLog); End; end;Olá colega, acredito que ele deve estar consumindo 50% quando tTexto.Count > 0. Se tTexto.Count for 0, acho que ele consumirá 100%. Tente colocar Sleep(1) antes do primeiro end.
-
Olá Progr'amador, desculpe-me mas só puder ler o tópico hoje. Estou meio sumido do fórum por excesso de trabalho. Espero que seu início no TJ venha a gerar bons frutos e prosperidade em seu caminho. Um grande abraço e felicidades !!!
-
Bom, esse código não tem nada a ver com aquele que te passei.