-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
Função para Auto ajustar texto em um panel ou label. Sem precisar usar
pergunta respondeu ao LucAlucard de Jhonas em Delphi, Kylix
veja http://www.planetadelphi.com.br/dica/6588/...para-relatorios a idéia é a mesma abraço -
tente http://scriptbrasil.com.br/forum/index.php...lite=webbrowser se o link estiver quebrado, faça uma pesquisa pela palavra webbrowser abraço
-
(Resolvido) Como Interagir o delphi com Páginas WEB para pegar valores
pergunta respondeu ao Badboy for Life de Jhonas em Delphi, Kylix
veja http://www.cryer.co.uk/brian/delphi/twebbr...r_oleobject.htm link correto: http://www.cryer.co.uk/brian/delphi/twebbrowser/twebbrowser_oleobject.htm abraço -
basta limitar o numero de caracteres que vai mostrar a data de duplo clique do mouse no ClientDataSet1 e na janelinha que aparece, voce clica no campo DATA e no object inspector voce altera a propriedade EditMask para !99/99/0000;1;_ abraço
-
exemplo: function Executa (Arquivo : String; Estado : Integer) : Integer; var Programa : array [0..512] of char; CurDir : array [0..255] of char; WorkDir : String; StartupInfo : TStartupInfo; ProcessInfo : TProcessInformation; begin StrPCopy (Programa, Arquivo); GetDir (0, WorkDir); StrPCopy (CurDir, WorkDir); FillChar (StartupInfo, Sizeof (StartupInfo), #0); StartupInfo.cb := sizeof (StartupInfo); StartupInfo.dwFlags := STARTF_USESHOWWINDOW; StartupInfo.wShowWindow := Estado; if not CreateProcess (nil, Programa, nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then Result := -1 else begin WaitForSingleObject (ProcessInfo.hProcess, Infinite); //GetExitCodeProcess (ProcessInfo.hProcess, Result); end; end; procedure TForm1.Button1Click(Sender: TObject); begin Executa ('calc.exe' ,SW_HIDE); // chama calculadora do windows e espera fechar close; // fecha o programa end; abraço
-
No final do processamento use: Query1.Active := false; ClientDataSet1.Active := false; Query1.Active := true; ClientDataSet1.Active := true; os registros serão atualizados no dbgrid o campo tem que ser tipo Data e não DataTime abraço
-
Erro de compilação de projeto no Delphi 5
pergunta respondeu ao Reinaldo S. Pedroso de Jhonas em Delphi, Kylix
OK ... então voce vai penar um pouquinho ... rs quando quiser procurar alguma coisa dentro do programa va em: Menu > Search > Find in files... digite a palavra ( qryConfiguracao ) que deseja procurar... na lista vai aparecer todos os lugares no código onde aparecem essa palavra. depois é so clicar em um dos itens da lista, e o cursor irá parar exatamente onde voce quer chegar abraço -
Paulo Nobre... o nosso amigo Progr'amador fez o que eu venho desejando a tempos ... mais participação dos nossos colegas no forum, mas a maioria prefere somente ver as respostas, do que tentar, dentro de seus conhecimenos ajudar a outros. OBS: o código que te passei para testar se o usuario se logou como administrador ou não deve ser o seu ponto de partida ( muitas vezes uma mudança radical na sua lógica resolve o problema ) abraço
-
os componentes que voce deve usar são: ADOQuery1 , DataSetProvider1, ClientDataSet1 e DataSource1 DataSetProvider1 ligado ao ADOQuery1 pela propriedade DataSet. ClientDataSet1 ligado ao DataSetProvider1 pela propriedade ProviderName. DataSource1 ligado ao ClientDataSet1 pela propriedade DataSet. NOTA: no ClientDataSet1, não é preciso criar os campos .. de duplo clique do mouse no componente e na janelinha que aparece, voce clica com o botão direito do mouse e clica em Add all fields. abraço
-
Erro de compilação de projeto no Delphi 5
pergunta respondeu ao Reinaldo S. Pedroso de Jhonas em Delphi, Kylix
no banco de dados, a definição desse campo é outra. voce pode alterar na propria tabela o registro. OBS: se voce é iniciante do delphi, porque pegou um código fonte de outro ? abraço -
(Resolvido) Problema com thread (Exeption EOSError in module NomeDoPro
pergunta respondeu ao LucAlucard de Jhonas em Delphi, Kylix
experimente: procedure TFrmTelaIni.Button1Click(Sender: TObject); function TerminateThread(hThread: THandle; dwExitCode: DWORD); var sMSN : TShowMSN; begin sMSN := TShowMsn.Create(True); sMSN.FreeOnTerminate := True; Priority := TpLower; if Terminated then TerminateThread(sMSN.Handle, 0); sMSN.Suspend; sMSN.Resume; end; veja: http://users.skynet.be/bk296578/Dro/Delphi...tm#_Toc24549110 http://books.google.com.br/books?id=9JzBn4...phi&f=false abraço -
como um programador que gosta de desafios, se eu falar ( escrever ), qual será o seu desafio ? rs abraço
-
(Resolvido) Problema com thread (Exeption EOSError in module NomeDoPro
pergunta respondeu ao LucAlucard de Jhonas em Delphi, Kylix
baixei seu código, mas não consegui rodar devido a algumas units que não tenho e voce não colocou junto com o código. entretanto fazendo uma breve analise, tudo indica que ao fechar o seu form, a Thread ainda esta sendo executada, ocorrrendo o erro de mémoria. coloque um break point no código: sMSN := TShowMsn.Create(True); e siga com o debuger do delphi para ver onde esta ocorrendo o problema ( utilize a tecla F7 e não a F8 ) abraço -
(Resolvido) Problema com thread (Exeption EOSError in module NomeDoPro
pergunta respondeu ao LucAlucard de Jhonas em Delphi, Kylix
Amigo, erro de endereço de memória, somente com o código para descobrir o problema abraço -
Você quer dizer que com o meu código jamais conseguirei alcançar meus objetivos? Só baixando o controle da UAC para o minimo? se voce leu o artigo, isso foi feito justamente para evitar que programas com virus sejam executados no micro sem seu consentimento ... pois muitos programas de virus utilizam o registry do windows. Então no meu caso quando coloquei: PrimeiraVez:=False; ela não foi inicializada? Achei que variáveis do tipo Boolean poderiam ser inicializado com false ou true. e podem ... as mensagens de Hints e Warnings são mensagens de alerta que podem ser mostradas ou não ... mas não interferem na execução do programa http://www.delphibasics.co.uk/RTL.asp?Name=$Hints http://www.delphibasics.co.uk/RTL.asp?Name=$Warnings Entendi a explicação, não sabia deste detalhe. É o mal de quem quer se meter a programar sem saber o básico primeiro. isso voce aprende no curso básico de delphi .. rs Você quer dizer que todo o código que escrevi no OnCreat deveria estar em outro lugar? Você não respondeu se o que eu coloquei no inicio do meu post anterior tem algum sentido? Parece que voce descobriu onde o tesouro está enterrado ... rs se eu quero executar algo, mesmo antes do programa criar o meu primeiro form, o lugar é lá Project > View Source mas voce deve tomar alguns cuidados nessa área ok ? abraço
-
Erro de compilação de projeto no Delphi 5
pergunta respondeu ao Reinaldo S. Pedroso de Jhonas em Delphi, Kylix
Na linha onde esta o QTDLINHASE esta assim: qryConfiguracaoQTDLINHASE: TSmallintField; Esse erro refere-se ao tipo do campo 'QTDLINHASE' que esta esperando o tipo inteiro pequeno ( TSmallintField ), mas atualmente está definido como BCD ( o bcp na verdade é um tipo de double - float ) voce pode fazer uma conversão de tipos ... ou dar duplo clique na 'qryConfiguracao' deletar todos os campos e adiciona-los novamente, para que o tipo atual fique como definição. abraço -
(Resolvido) Delphi + Mssql - erro conexão DBX
pergunta respondeu ao Suellen.. A de Jhonas em Delphi, Kylix
Erro de DBX: Driver não pôde ser inicializado corretamente. Biblioteca cliente pode estar faltando, não instalou corretamente, versão errada, ou pode estar faltando o caminho para o driver no sistema. procure pelo driver do DBExpress na sua maquina e copie para a outra ... se não tente: http://www.devart.com/dbx/sqlserver/ abraço -
considerações: converta BMP para JPG ...isso reduz ainda mais o tamanho da figura reveja a definição para os campos BLOB, voce pode limitar o seu tamanho faça acesso a tabela com filmes somente depois do programa ser carregado, de preferencia no clique do item do Menu voce pode usar um componente Gauge no lugar do ProgressBar, ele mostrara a porcentagem de carregamento no exemplo abaixo é só substituir a Query pela AdoQuery procedure TForm1.Button1Click(Sender: TObject); begin Query1.Open;{ abre a table query que seja} Gauge1.MaxValue:=query1.RecordCount; {diz que o valor max do gauge é o valor de regitrs a serem processados pela na tabela} Query1.First; {posiciona no inicio da tabela} if not Query1.Eof then {enquanto a tabela não estiver, vai executar o codigo abaixo } repeat { seus comandos para a tabela } Gauge1.Progress:=Gauge1.Progress + 1; if Gauge1.Progress = Gauge1.MaxValue then begin showmessage('Processo Terminado!'); end; Query1.Next { move para o próximo registro} until Query1.Eof; {finaliza o programa ao final da tabela} end; OBS: No forum tem varios posts sobre isso .... pesquise pela palavra Gauge ou ProgressBar abraço
-
1)Porque o código faz tudo que preciso no XP e não no seven? 2) No seven ele chega a criar o arquivo ini, mas não mostra a mensagem que o windows7 está instalado é win7. Estranho é que executando como administrador( via botão direito do mouse), embora já esteja logado como administrador,até porque sou o únco usuário da máquina, o código funciona como gostaria. Você saberia dizer porque acontece isso. Se o código estivesse errado não funcionaria de maneira nenhuma você não acha? porque o Winsdows Vista e Win 7 passaram a ter o controle UAC, no XP não tem http://todoespacoonline.com/post.php?id=143 3) Na hora de compilar aparece um hint dizendo que a variável "PrimeiraVez" nunca foi usada. Acho que minha experiencia é muito pouca, porém achei que ela estava sendo usada sim, tanto que depois que o arquivo ini é criado a mensagem de que o windows7 está insatalado não aparece mais(pois ela assume o valor false). Tem algum erro com ela?? Essa mensagem aparece se a variavel foi declarada, mas não foi inicializada exe: Var Num : Integer; // variavel num declarada Num := 0; // variavel num inicializada 4) Agora uma dúvida de lógica de programação; qual a diferença entre If (Encerra = True) and (PrimeiraVez = True) then e...... If Encerra = True and PrimeiraVez = True then? o primeiro é o que dá certo, pois as variáveis chegando como false e false não rodam o código, mas na segunda as variaveis chegando com false e false o codigo dentro do if roda. Não entendi. lógica elementar: numa operação matematica o que é executado primeiro ? lembra da prioridade ( ou hierarquia ) para os operadores aritméticos ? primeiro a divisão, depois multiplicação, depois soma e depois subtração ..... mas se colocar parenteses ( ... ) o que será executado primeiro é o que estará dentro do parenteses os resultados seriam diferentes =========================================== então nesse caso: If (Encerra = True) and (PrimeiraVez = True) then os valores das 2 sentenças já são testados antes do operador and nesse caso If Encerra = True and PrimeiraVez = True then o operador and é executado antes da segunda sentença ... seria o mesmo que If Encerra = True or PrimeiraVez = True then se não usar os parenteses .. entendeu ??? ============================================= OBS: A sua abordagem esta no lugar errado procedure TfrmPrincipalDD.FormCreate(Sender: TObject); existe um código que é rodado antes da criação de qualquer form do seu programa, ou seja, é o código que vai criar o seu form e não é na propriedade OnCreate dele ( Form ) e como voce gosta de desafio, tente descobrir onde voce encontra esse código... rs isso te dará outra perspectiva sobre programação abraço
-
veja http://www.google.com.br/search?hl=pt-BR&a...0l1l321l621l3-2 abraço
-
vamos fazer algumas modificações: primeiro voce deve criar uma tabela que tenha os seguintes campos: Parcelas -> tipo string 10 Valor -> tipo float ( 10, 2 ) Data -> tipo data depois voce cria a instrução SQL na query1 Select * from MinhaTabela para acessar o banco de dados voce vai usar TQuery, TDataSetProvider, TClientDataSet e um DataSource faça a ligação entre os componentes depois de clique duplo no componente ClientDataSet1 para adicionar os campos veja a alteração no código: var valor : real; venc, parcelas, i : integer; s : string; begin valor := 180; Venc := 21; parcelas := 10; memo1.Clear; Query1.Active := false; ClientDataSet1.Active := false; Query1.Active := true; ClientDataSet1.Active := true; for i := 1 to parcelas do begin ClientDataSet1.Last; // ultimo registro ClientDataSet1.Append; // adicionar novo registro ClientDataSet1.Edit; // editar registro {s := 'Parcela: '+ inttostr(i) +'/'+inttostr(Qtde_parc)+ ' - Valor: R$ '+ formatfloat('0.00',valor) + ' - Vencimento: ' + inttostr(venc) + copy(datetostr(now+(30*i)),3,8); memo1.Lines.Append(s);} // Atribuir os valores das variaveis aos campos do registro na tabela ClientDataSet1parcelas.Value := inttostr(i) +'/'+inttostr(parcelas); // campo String ClientDataSet1Valor.Value := valor; // campo Float ClientDataSet1Vencimento.Value := now+(30*i); // campo Data ClientDataSet1.Post; // salvar o registro ClientDataSet1.ApplyUpdates(-1);// atualizar o registro end; end; OBS: isso é só um exemplo, entendendo o funcionamento, depois voce faz uma adaptação ao seu código abraço
-
Erro de compilação de projeto no Delphi 5
pergunta respondeu ao Reinaldo S. Pedroso de Jhonas em Delphi, Kylix
message 'qryConfiguracao: Type mismatch for field 'QTDLINHASE', expecting: Smallint actual: BCD Tipo incompativel para o campo 'QTDLINHASE', esperando: Smallint, atual BCD Esse erro refere-se ao tipo do campo 'QTDLINHASE' que esta esperando o tipo inteiro pequeno, mas atualmente está definido como BCD ( o bcp na verdade é um tipo de double - float ) voce pode fazer uma conversão de tipos ... ou dar duplo clique na 'qryConfiguracao' deletar todos os campos e adiciona-los novamente. http://scriptbrasil.com.br/forum/index.php?showtopic=151141 abraço -
(Resolvido) Delphi + Mssql - erro conexão DBX
pergunta respondeu ao Suellen.. A de Jhonas em Delphi, Kylix
Erro de DBX: Driver não pôde ser inicializado corretamente. Biblioteca cliente pode estar faltando, não instalou corretamente, versão errada, ou pode estar faltando o caminho para o driver no sistema. veja http://www.devmedia.com.br/post-6954-Conex...-dbexpress.html abraço -
Amigo, colocar os dados em um banco de dados é muito simples exemplo: procedure TForm1.Button1Click(Sender: TObject); var valor : real; venc, qtde_parc, i : integer; s : string; begin valor := 180; Venc := 21; Qtde_parc := 10; memo1.Clear; Query1.Active := false; ClientDataSet1.Active := false; Query1.Active := true; ClientDataSet1.Active := true; for i := 1 to Qtde_parc do begin Query1.Last; // ultimo registro Query1.Append; // adicionar novo registro Query1.Edit; // editar registro {s := 'Parcela: '+ inttostr(i) +'/'+inttostr(Qtde_parc)+ ' - Valor: R$ '+ formatfloat('0.00',valor) + ' - Vencimento: ' + inttostr(venc) + copy(datetostr(now+(30*i)),3,8); memo1.Lines.Append(s);} // Atribuir os valores das variaveis aos campos do registro na tabela Query1Parecela.Value := inttostr(i) +'/'+inttostr(Qtde_parc); // campo String Query1Valor.Value := valor; // campo Float Query1Vencimento.Value := now+(30*i); // campo Data Query1.Post; // salvar o registro Query1.ApplyUpdates; // atualizar o registro end; end; OBS: Tente fazer... abraço
-
(Resolvido) Pegar apenas os componentes que estão dentro de um control
pergunta respondeu ao LucAlucard de Jhonas em Delphi, Kylix
Tenha sempre o habito de procurar as respostas no help do delphi, para poder encontrar a solução procedure TForm1.BitBtn1Click(Sender: TObject); var i, x,y,w : integer; begin x := 0; y:= 0; w := 0; for i := 0 to Panel1.ControlCount-1 do // vai listar todos os componentes dentro do Panel begin if Panel1.Controls[i] is TImage then inc(x); if Panel1.Controls[i] is TButton then inc(y); if Panel1.Controls[i] is TEdit then inc(w); end; showmessage('tem '+inttostr(x)+ ' componente(s) TImage no Panel1'); showmessage('tem '+inttostr(y)+ ' componente(s) TButton no Panel1'); showmessage('tem '+inttostr(w)+ ' componente(s) TEdit no Panel1'); end; abraço