Re: [delphi-br] Nome do autor de um arquivo
Olá Pessoal! Murilo, obrigado pela ajuda! Respondendo à pergunta do Adriano, ainda não funcionou... Não sei se esse código foi feito numa versão mais antiga do delphi (estou usando Delphi 2007), mas só preenche o ListBox com o Size do aqruivo. Vou tentar fazer algumas modificações na rotina, para ver se obtenho algum resultado. Abraços, Edelson. Em 27 de maio de 2010 10:06, Adriano Santos asrsan...@gmail.com escreveu: Edelson, Funcionou a dica do Murilo? Muito legal hein Murilo? Adriano Santos Vendo Sony Vaio http://bit.ly/aWrKyW http://twitter.com/asrsantos http://delphitodelphi.blogspot.com Em Thu, May 27, 2010 at 8:10 AM, Murilo Cunha mcscu...@yahoo.com.br escreveu: Edelson, Tente o seguinte: ~ { Usage: VersionInformation(ListBox1) } {Pads or truncates a String and Justifies Left if StrJustify=True} Function StringPad( InputStr, FillChar: String; StrLen: Integer; StrJustify: Boolean): String; Var TempFill: String; Counter : Integer; Begin If Not (Length(InputStr) = StrLen) Then Begin If Length(InputStr) StrLen Then Begin InputStr := Copy(InputStr,1,StrLen) ; End Else Begin TempFill := ''; For Counter := 1 To StrLen-Length(InputStr) Do Begin TempFill := TempFill + FillChar; End; If StrJustify Then Begin {Left Justified} InputStr := InputStr + TempFill; End Else Begin {Right Justified} InputStr := TempFill + InputStr ; End; End; End; Result := InputStr; End; Function VersionInformation( ListBox : TListBox): Boolean; const InfoNum = 11; InfoStr : array [1..InfoNum] of String = ('CompanyName', 'FileDescription', 'FileVersion', 'InternalName', 'LegalCopyright', 'LegalTradeMarks', 'OriginalFilename', 'ProductName', 'ProductVersion', 'Comments', 'Author') ; LabelStr : array [1..InfoNum] of String = ('Company Name', 'Description', 'File Version', 'Internal Name', 'Copyright', 'TradeMarks', 'Original File Name', 'Product Name', 'Product Version', 'Comments', 'Author') ; var S : String; n, Len, j : Integer; Buf : PChar; Value : PChar; begin Try S := Application.ExeName; ListBox.Items.Clear; ListBox.Sorted := True; ListBox.Font.Name := 'Courier New'; n := GetFileVersionInfoSize(PChar(S),n) ; If n 0 Then Begin Buf := AllocMem(n) ; ListBox.Items.Add (StringPad('Size',' ',20,True)+' = '+IntToStr(n)) ; GetFileVersionInfo(PChar(S),0,n,Buf) ; For j:=1 To InfoNum Do Begin If VerQueryValue(Buf,PChar('StringFileInfo\040904E4\'+ InfoStr[j]),Pointer(Value),Len) Then Begin Value := PChar(Trim(Value)) ; If Length(Value) 0 Then Begin ListBox.Items.Add (StringPad(labelStr,' ',20,True)+' = '+Value) ; End; End; End; FreeMem(Buf,n) ; End Else Begin ListBox.Items.Add ('No FileVersionInfo found') ; End; Result := True; Except Result := False; End; End; ~ Obrigado. MuriloCunha On 26/05/2010 14:43, Edelson Regis de Lima wrote: Boa tarde pessoal! Já dei uma pesquisada nas mensagens antigas do forum, mas não encontrei... Alguém sabe se dá para criar um arquivo, e no momento da sua criação informar o nome do Autor? (Aquela propriedade que o windows mostra quando vemos as propriedades do arquivo) E também como extrair de um arquivo o nome do Autor. A data e hora de criação eu já consegui extrair da seguinte maneira: FileDateToDateTime(FileAge('Nome_Do_Arquivo')) Mas preciso extrair também o nome do Autor. Obrigado! Edelson. [As partes desta mensagem que não continham texto foram removidas] -- Adriano Santos http://twitter.com/asrsantos www.delphitodelphi.blogspot.com [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Nome do autor de um arquivo
Boa tarde pessoal! Já dei uma pesquisada nas mensagens antigas do forum, mas não encontrei... Alguém sabe se dá para criar um arquivo, e no momento da sua criação informar o nome do Autor? (Aquela propriedade que o windows mostra quando vemos as propriedades do arquivo) E também como extrair de um arquivo o nome do Autor. A data e hora de criação eu já consegui extrair da seguinte maneira: FileDateToDateTime(FileAge('Nome_Do_Arquivo')) Mas preciso extrair também o nome do Autor. Obrigado! Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Localizar texto StringList
If MinhaStringList.IndexOf('Texto da pesquisa') = 0 then ShowMessage('Achou!'); Edelson. Em 19 de fevereiro de 2010 09:46, Samuel M. Basso samuelba...@yahoo.com.brescreveu: Bom dia! Gostaria de saber como faço para localizar um texto dentro de uma StringList, tem como? Alguem sabe? -- Atenciosamente, Samuel M. Basso Cel: (54) 8135-3723 Skype: samuelbasso E-mail/MSN: samuelba...@gmail.com samuelbasso%40gmail.com Web site: www.samuelbasso.com [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Thread para mostrar animação em flash
Boa tarde pessoal! Alguem já fez alguma telinha do tipo: Processando, aguarde..., utilizando uma animação em flash? Eu to apanhando aqui pra fazer o swf rodar em paralelo com processamento... ele simplesmente trava, só roda depois que termina o processamento. Estou usando Thread, mas não está funcionando. Já testei com os componentes TShockwaveFlash e TShockwaveFlashEx. Se alguém tiver alguma dica ou um exemplo, eu agradeço. Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] intervalo entre duas datas
Eu fiz um teste aqui, e a função DaysBetween retorna TODOS os dias sim! Incluindo sábados, domingos, feriados... A único cuidado que voce deve tomar é que a função só conta dias inteiros, ou seja, se o seu intervalo de datas estiver faltando 1 minuto para completar 1 dia, ele descarta esse dia. De acordo com o help do delphi: DaysBetween counts only whole days. Thus, DaysBetween reports the difference between Dec 31, 1999 11:59 PM and Jan 1, 2000 11:58 PM as 0 because the difference is one minute short of an entire day. Abraços, Edelson. 2009/10/29 Leonardo Baldino portaldoinfe...@gmail.com naum sei como mas a função DaysBetween não contas os dias que são feriados 2009/10/28 José Mário Silva Guedes jmariogue...@gmail.comjmarioguedes%40gmail.com Como o Delphi saberia os feriados locais? Não entendi o tópico... [As partes desta mensagem que não continham texto foram removidas] -- Leonardo Carlos Baldino - The Highlander [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] intervalo entre duas datas
Use a função DaysBetween(), da unit DateUtils. Faça um teste, pois não sei se retorna todos os dias, ou somente os dias úteis... Att, Edelson. 2009/10/27 Leonardo Baldino portaldoinfe...@gmail.com alguem sabe como eu faço para saber a quantidade de dias entre um determinado intervalo entre duas datas -- Leonardo Carlos Baldino - The Highlander [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] TDataSetProvider - BeforeUpdadeRecord
Olá Pessoal! No BeforeUpdadeRecord do meu TDataSetProvider estou fazendo algumas validações antes de gravar os registros. Em alguns casos, eu NÃO quero gravar um determinado registro, mas gostaria que os outros registros que passaram pela validação fossem gravados corretamente. Porém ainda não consegui... ou eu gravo todos, ou não gravo nenhum... Já tentei setar o parametro Applied para False, mas não funcionou. O que basicamente preciso é, na hora de gravar os registros do Delta, fazer algumas validações, e gravar os registros que passaram, e retornar um erro para os que não passaram na validação. Talves no próprio TClientDataSet eu conseguiria fazer isso? Alguém tem alguma solução/sugestão? Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Gravar uma data em branco no firebird
Faça assim: dm.qyrecbto.FieldByName('UPGTO').Value := Null; Att, Edelson. 2009/9/28 auriston.delphi auriston.del...@yahoo.com.br Salve Delphianos. No comando dm.qyrecbto.FieldByName('UPGTO').AsDateTime := Date, preciso trocar a funcao Date por uma data em branco, é possivel efetuar este processo ? Uso D7+Firebird+IBX at [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] criando fields em tempo de execuçã o - help
Segue um exemplo simples: function TFormCliente.CriaDataSetCliente: boolean; var cdsCliente: TClientDataSet; dsCliente: TDataSource; begin result := False; try cdsCliente := TClientDataSet.Create(self); with cdsCliente do begin FieldDefs.Add('ID_CLIENTE', ftInteger, 0, false); FieldDefs.Add('TP_PESSOA', ftString, 1, false); FieldDefs.Add('NM_CLIENTE', ftString, 100, false); FieldDefs.Add('NR_CNPJ_CPF', ftString, 14, false); FieldDefs.Add('NM_LOGRADOURO', ftString, 100, false); FieldDefs.Add('NR_LOGRADOURO', ftString, 20, false); FieldDefs.Add('DS_COMPLEMENTO', ftString, 30, false); FieldDefs.Add('NM_BAIRRO', ftString, 50, false); FieldDefs.Add('NM_CIDADE', ftString, 50, false); FieldDefs.Add('NM_UF', ftString, 2, false); FieldDefs.Add('NR_CEP', ftString, 8, false); FieldDefs.Add('NR_TELEFONE', ftString, 20, false); FieldDefs.Add('NR_CELULAR', ftString, 20, false); FieldDefs.Add('DS_EMAIL', ftString, 100, false); FieldDefs.Add('DS_SITE', ftString, 100, false); end; cdsCliente.CreateDataSet; dsCliente := TDataSource.Create(self); dsCliente.DataSet := cdsCliente; cdsCliente.Active := True; result := True; except on E:Exception do begin ShowMessage('Erro ao criar ClientDataSet Cliente' + #10 + e.Message); exit; end; end; end; Até +, Edelson. 2009/7/29 Leonardo Baldino portaldoinfe...@gmail.com alguem sabe como eu faço para criar campos num clientdataset em tempo de execução -- Leonardo Carlos Baldino - The Highlander [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Componente relógio com fuso horário
Olá pessoal. Alguém conhece algum componente de relógio (analógico ou digital), que mostre a hora de acordo com o Fuso Horário que eu indicar, e não pela hora do sistema? Explicando melhor: A hora mostrada na tela do sistema para o usuário não será a do computador dele, mas sim a hora informada pelo Servidor de Aplicação. Se eu estiver aqui no Brasil, e o servidor estiver na Inglaterra, a hora mostrada na minha tela deverá ser a da Inglaterra. Isso em tempo real, ou seja, a hora não será apenas mostrada, mas continuará com a sua incrementação. Eu já fiz relógios no delphi, mas pegando a hora da maquina... não tenho idéia de como mostrar em tempo real a hora de algum outro lugar... Alguma dica de algum componente, ou até mesmo de alguma rotina que faça isso? Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] zoom em Timage ajuda
Se eu não me engano, dentre os componentes Jedi (JVCL), existe um que faz exatamente isso... parece que é o TJvZoom. Abraços, Edelson. 2009/7/6 alessandra porto alessandraport...@yahoo.com.br Amigos alguem já fez ou sabe como fazer para dar zoom em um Timage igual aquele recurso do MsPaint com click sobre a figura. aumenta a parte selecionada da imagem.(onde clickou) Agradeço aos que colaborarem Abraços a todos __ Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] TList ou TObjectList para Stream
A utilidade é simplesmente encapsular vários TClientDataSets em uma única Stream, e poder recuperar isso em outro lugar... tipo, se precisar transportar via TCP, ao invés de gerar uma Stream para cada TClientDataSet. Edelson. 2009/7/2 Leandro mutu...@yahoo.com.br desculpa mas n acompanhei desde o inicio e fiquei com duvida na utilidade deste? ou seja boiei rs 2009/7/2 Guionardo Furlan guiona...@gmail.com guionardo%40gmail.com Matou a pau, eheh. Vou guardar essa dica no caderninho. Abração 2009/7/1 Edelson Regis de Lima edre...@ig.com.br edregis%40ig.com.bredregis% 40ig.com.br: Fala Guionardo, tranquilo? Então, eu acabei resolvendo esse problema com um TClientDataSet mesmo, ao invés de um TList. Ficou muito mais simples. Eu uso um campo do tipo blob (TBlobField) para armazenar outros TClientDataSets já convertidos em TMemoryStream. Ou seja, cada registro desse TClientDataSet contem outro TClientDataSet. E eu ainda posso criar outros campos para servir como passagem de parametros. E no final eu dou um TClientDataSet.SaveToStream, e obtenho a minha stream com todos os TClientDataSets embutidos. Ficou bem mais simples dessa maneira. Mas valew pela dica assim mesmo! Abraços, Edelson. 2009/6/30 Guionardo Furlan guiona...@gmail.comguionardo%40gmail.comguionardo% 40gmail.com Minha sugestão. Mantenha a estrutura do TList de ClientDataSets. Crie um TMemoryStream (MS) Faça um loop para varrer o TList. Para cada item: - vc escreve um LongInt (N) (representando o tamanho dos dados [Data, acho que é essa propriedade que guarda os dados do CDS] do CDS respectivo) no MS - escreve o conteúdo do Data do CDS no MS Quando for ler, é só varrer o MS obtendo o tamanho dos dados pelo primeiro longint (N) e ler N bytes para a propriedade Data do CDS. Se ainda houver dados no MS, repita o procedimento, criando novo CDS. São quase 11 horas da noite, eheh. Deu pra entender a minha idéia? 2009/6/23 Edelson Regis de Lima edre...@ig.com.bredregis%40ig.com.br edregis%40ig.com.bredregis% 40ig.com.br: Boa tarde! Pesssoal, alguem sabe se tem como gerar um TMemoryStream a partir de um TList? O TStringList até tem um SaveToStream, porém não salva os objetos contidos na lista, somente strings. Basicamente é o seguinte... preciso transportar vários ClientDataSets, e a melhor maneira é transformar em Stream primeiro. Só que eu não quero transportar um a um, eu quero empacotar todos os ClientDataSets numa Stream só. Aí pensei em colocar todos os ClientDataSets em um TList (ou algo do genero), e transformar esse TList em Stream. Só que o TList não tem o SaveToStream. Alguém sabe? Ou se alguem tiver alguma outra sugestão de fazer esse empacotamento, sem usar Lists, também será bem vinda... Até mais, Edelson. [As partes desta mensagem que não continham texto foram removidas] -- Timeo hominem unius libri Cogito ergo sum - Carpe diem []s Guionardo Furlan http://guionardo.blogspot.com http://www.guionardofurlan.com.br [As partes desta mensagem que não continham texto foram removidas] -- Timeo hominem unius libri Cogito ergo sum - Carpe diem []s Guionardo Furlan http://guionardo.blogspot.com http://www.guionardofurlan.com.br -- Leandro, MuTukA [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] TList ou TObjectList para Stream
Fala Guionardo, tranquilo? Então, eu acabei resolvendo esse problema com um TClientDataSet mesmo, ao invés de um TList. Ficou muito mais simples. Eu uso um campo do tipo blob (TBlobField) para armazenar outros TClientDataSets já convertidos em TMemoryStream. Ou seja, cada registro desse TClientDataSet contem outro TClientDataSet. E eu ainda posso criar outros campos para servir como passagem de parametros. E no final eu dou um TClientDataSet.SaveToStream, e obtenho a minha stream com todos os TClientDataSets embutidos. Ficou bem mais simples dessa maneira. Mas valew pela dica assim mesmo! Abraços, Edelson. 2009/6/30 Guionardo Furlan guiona...@gmail.com Minha sugestão. Mantenha a estrutura do TList de ClientDataSets. Crie um TMemoryStream (MS) Faça um loop para varrer o TList. Para cada item: - vc escreve um LongInt (N) (representando o tamanho dos dados [Data, acho que é essa propriedade que guarda os dados do CDS] do CDS respectivo) no MS - escreve o conteúdo do Data do CDS no MS Quando for ler, é só varrer o MS obtendo o tamanho dos dados pelo primeiro longint (N) e ler N bytes para a propriedade Data do CDS. Se ainda houver dados no MS, repita o procedimento, criando novo CDS. São quase 11 horas da noite, eheh. Deu pra entender a minha idéia? 2009/6/23 Edelson Regis de Lima edre...@ig.com.br edregis%40ig.com.br: Boa tarde! Pesssoal, alguem sabe se tem como gerar um TMemoryStream a partir de um TList? O TStringList até tem um SaveToStream, porém não salva os objetos contidos na lista, somente strings. Basicamente é o seguinte... preciso transportar vários ClientDataSets, e a melhor maneira é transformar em Stream primeiro. Só que eu não quero transportar um a um, eu quero empacotar todos os ClientDataSets numa Stream só. Aí pensei em colocar todos os ClientDataSets em um TList (ou algo do genero), e transformar esse TList em Stream. Só que o TList não tem o SaveToStream. Alguém sabe? Ou se alguem tiver alguma outra sugestão de fazer esse empacotamento, sem usar Lists, também será bem vinda... Até mais, Edelson. [As partes desta mensagem que não continham texto foram removidas] -- Timeo hominem unius libri Cogito ergo sum - Carpe diem []s Guionardo Furlan http://guionardo.blogspot.com http://www.guionardofurlan.com.br [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] TList ou TObjectList para Stream
Boa tarde! Pesssoal, alguem sabe se tem como gerar um TMemoryStream a partir de um TList? O TStringList até tem um SaveToStream, porém não salva os objetos contidos na lista, somente strings. Basicamente é o seguinte... preciso transportar vários ClientDataSets, e a melhor maneira é transformar em Stream primeiro. Só que eu não quero transportar um a um, eu quero empacotar todos os ClientDataSets numa Stream só. Aí pensei em colocar todos os ClientDataSets em um TList (ou algo do genero), e transformar esse TList em Stream. Só que o TList não tem o SaveToStream. Alguém sabe? Ou se alguem tiver alguma outra sugestão de fazer esse empacotamento, sem usar Lists, também será bem vinda... Até mais, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Re: Tabelas virtuais
Voce tem um campo data na TB_HORA? Para saber a hora de qual dia voce quer pegar... Ou o proprio campo hora_consulta é um DATETIME que grava a data e hora? Bom, vou supor que o campo hora_consulta é um DateTime... Acho que voce pode fazer assim: (não testei, pois não tenho as tabelas na minha base) SELECT TH.hora_consulta, TA.cod_agenda, TP.nome, FROM TB_HORA AS TH LEFT JOIN TB_AGENDA AS TA ON TA.cod_hora = TH.cod_hora LEFT JOIN TB_PACIENTE AS TP ON TP.cod_paciente = TA.cod_paciente WHERE TH.hora_consulta BETWEEN '2009.07.01 07:00:00' AND '2009.07.01 22:00:00' Como voce já tem todas as horas cadastradas na TB_HORA, esse select lhe retornará todas as horas desse intervalo, mesmo se não houver nenhum paciente registrado para aquele horário, porque voce estará usando o LEFT JOIN. Se voce usar o INNER JOIN, só trará as horas com pacientes cadastrados, do jeito que o seu sistema já está fazendo. Testa aí, e qq coisa avisa. Edelson. 2009/6/20 asandro1501 asandro1...@yahoo.com.br Basicamente são 3 tabelas relacionadas porque criei uma tabela de horas mas não sei se é preciso utilizá-la mas por enquanto estou utilizando. TB_HORA cod_hora hora_consulta Na TB_HORA estão inseridos todos os horários das 07:00 até 22:00 TB_PACIENTE cod_paciente nome TB_AGENDA cod_agenda - autoincremento cod_paciente - faz relacionamento com TB_PACIENTE cod_hora - faz relacionamento com TB_HORA hora O campo hora é um coringa caso elimine o cod_hora daí só trabalharia com as tabelas TB_PACIENTE e TB_AGENDA Digamos que para o dia 01/07/09 eu tenha somente o paciente 1 marcado para as 09:00 da manhã e que o cod_agenda seja 50. Na consulta que tenho ela só retorna uma linha mas preciso que retorne como abaixo: HORACONSULTA COD_AGENDA COD_PACIENTE 07:00 em branco em branco 07:01 em branco em branco 09:00 50 1 09:01 em branco em branco 09:02 em branco em branco 22:00 em branco em branco Não sei se você conseguiu entender mas preciso que apareçam todos os horarios mesmo que não hajam consultas marcadas. Se você quiser posso mandar o código-fonte Abraço Alex Silva --- Em delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br, Edelson Regis de Lima edre...@... escreveu Acho que dá para fazer isso via SQL sim... Passa aí um exemplo de como voce quer que fique esse relatorio, e a estrutura completa das tabelas que voce quer usar (ou pelo menos os campos que voce quer usar de cada tabela). Se precisar criar um ClientDataSet temporário em run time com o resultado também não é difícil não... passa as informações aí e vamos ver se conseguimos te ajudar... Edelson. 2009/6/19 asandro1501 asandro1...@... Olá Pessoal Primeiramente quero agradecer a todos pelas respostas que recebi até hoje. Eu comecei uma agenda médica em firebird mas modifiquei para mysql+zeos, estou satisfeito com os resultados até agora, porem ainda tenho que montar uma visualização numa grid que mostre todos os agendamentos para uma determinada data + os horários vagos. Via sql não consegui fazer essa vizualização. Aqui mesmo no grupo me disseram para estudar orientação a objetos mas não tenho tempo habil pra isso. Outra coisa que me disseram também seria a utilização de um clientdataset mas também nunca utilizei e agora não sei se é possível utilizar este componente juntamente com o zeos. Criei uma tabela com horarios das 07:00 até 22:00 horas e relacionei com a tabela agenda Na tabela de agenda tenho os seguintes campos: cod_agenda - chave primaria cod_paciente - chave estrangeira com tabela de pacientes cod_hora - chave estrangeira com tabela de horas hora_consulta O campo hora consulta é para o caso de não utilizar a tabela de horas, deixei como uma forma de escape até descobrir ao certo o que fazer. Por favor se alguem puder me ajudar mais uma vez eu agradeço, posso até enviar o código fonte se for o caso. Deus abençoe a todos Alex Silva msn: lekinh...@... lekinhors%40hotmail.com [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Tabelas virtuais
Acho que dá para fazer isso via SQL sim... Passa aí um exemplo de como voce quer que fique esse relatorio, e a estrutura completa das tabelas que voce quer usar (ou pelo menos os campos que voce quer usar de cada tabela). Se precisar criar um ClientDataSet temporário em run time com o resultado também não é difícil não... passa as informações aí e vamos ver se conseguimos te ajudar... Edelson. 2009/6/19 asandro1501 asandro1...@yahoo.com.br Olá Pessoal Primeiramente quero agradecer a todos pelas respostas que recebi até hoje. Eu comecei uma agenda médica em firebird mas modifiquei para mysql+zeos, estou satisfeito com os resultados até agora, porem ainda tenho que montar uma visualização numa grid que mostre todos os agendamentos para uma determinada data + os horários vagos. Via sql não consegui fazer essa vizualização. Aqui mesmo no grupo me disseram para estudar orientação a objetos mas não tenho tempo habil pra isso. Outra coisa que me disseram também seria a utilização de um clientdataset mas também nunca utilizei e agora não sei se é possível utilizar este componente juntamente com o zeos. Criei uma tabela com horarios das 07:00 até 22:00 horas e relacionei com a tabela agenda Na tabela de agenda tenho os seguintes campos: cod_agenda - chave primaria cod_paciente - chave estrangeira com tabela de pacientes cod_hora - chave estrangeira com tabela de horas hora_consulta O campo hora consulta é para o caso de não utilizar a tabela de horas, deixei como uma forma de escape até descobrir ao certo o que fazer. Por favor se alguem puder me ajudar mais uma vez eu agradeço, posso até enviar o código fonte se for o caso. Deus abençoe a todos Alex Silva msn: lekinh...@hotmail.com lekinhors%40hotmail.com [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Select dentro de Select...pode?
Se é a mesma tabela voce não precisa fazer outro select, basta usar o Count direto: Select Count(Campo1) as Total, Campo2, Campo3, CampoN From Tabela Where condição O Count lhe retornará a quantidade de registros listados. Se voce quiser somar o valor contido em Campo1 use o SUM no lugar de COUNT. Edelson. 2009/6/19 rafaelpinto19 rafaelpint...@gmail.com Olá Galera, pode ter uma Consulta Select dentro de uma consulta Select no Interbase e no Delphi? Tipo assim Select (Select Count(CAMPO1) as Total from TABELA) CAMPO1, CAMPO2 from TABELA where CONDICAO... ??? Se Tiver como, podem colocar a Sintaxe ou estrutura correta?? Vou tentando aki, mas to sem noção... Agradeço pela ajuda... Rafael [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] selecionando registros
O DESC você usa em conjunto com o ORDER BY Digamos que voce tenha uma tabela chamada Cliente, e que tenha o campo CodigoCliente Para retornar os 12 primeiros registros voce faz: SELECT TOP 12 * FROM Cliente ORDER BY CodigoCliente E para retornar os 12 ultimos registros voce faz: SELECT TOP 12 * FROM Cliente ORDER BY CodigoCliente DESC []s Edelson. 2009/6/16 cic...@fiosecabos.ind.br Amigos ... estou com um pequeno problema penso q seja simples ... porem p kem esta iniciando Antes de me mandarem procurar no Google, já revirei tudo por lá ... ok Necessito selecionar os 12 ultimo s registros de uma query Já usei o Select top 12 * from tabels desc Select first 12 * from tabela desc Select * from tabela desc limit 12 Enfim fiz varias tentativas sem êxito donde apelo para ajuda de vcs, mais experientes Meu BD e o DBIsam e trabalho com Delphi 7 ok Desde já agradeço FIOS E CABOS ENGENHARIA LTDA CÍCERO FERNANDES ENGENHEIRO ELETRICISTA E DE SEGURANÇA DO TRABALHO CREA-SC 27.958-0 3521-2988 - 9191.6226 http://fiosecabos.ind.br/ http://fiosecabos.ind.br - mailto:cic...@fiosecabos.ind.br cicero%40fiosecabos.ind.br cic...@fiosecabos.ind.br cicero%40fiosecabos.ind.br P Antes de imprimir, pense em sua responsabilidade e compromisso com o MEIO AMBIENTE! [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Comparar dois DataSets
Bom, se for do tipo TClientDataSet, voce consegue salvar o seu conteúdo (binário) em um TMemoryStream. Então, se os dois TClientDataSets forem exatamente iguais, o conteúdo da Stream também será. Não sei se resolve o seu problema... Edelson. 2009/6/15 José Mário Silva Guedes jmariogue...@gmail.com Olá amigos! Há uma forma fácil de comparar dois DataSets para verificar se são iguais? Por iguais entende-se se contêm os mesmos resgistros, com as mesmas colunas etc. Obrigado, -- José Mário Silva Guedes Analista Programador Delphi [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Ajuda CdsTemp
Acho que voce está limpando o seu cdsTemp nessa linha aqui: cdsTemp.EmptyDataSet; Edelson. 2009/6/12 Filippe Maymone filippe_i...@globo.com Bom dia Galera, Estou com um problema, não sei o que eu estou fazendo de errado. Meu Porgrama faz a seguinte função. Tenho 2 Dbgrid. Dbgrid1 esta pegando os registro da minha tabela de Pedidos. Dbgrid2 esta conectado a um CDsTemp. O que eu quero é quando eu clicar no Produtos da Dbgrid1 ele insere no CdsTemp e ja vai aparecendo no meu Dbgrid2. Assim o usuarios vai selecionando os produtos do pedido. Do jeito que estou fazendo eu dou um dblClick no item do DBGrid1 e esta indo para o DBgrid2. Porem quando clico no 2 item do Dbgrid1 ele substitui o que esta no CdsTemp. Sempre ficando apenas um no Dbgrid2.. Segue o codigo: procedure TfrmApontPedido.DBGrid1DblClick(Sender: TObject); begin cdsTemp.EmptyDataSet; //while cdsTemp.Eof do begin if (cdsTemp.FieldByName('CodProduto').AsString dmApontPTK.cdsPedidoCodproduto.Value) Then begin //Insert cdsTemp.Active := true; cdsTemp.Insert; cdsTemp.FieldByName('VndPedido').AsInteger := dmApontPTK.cdsPedidoVndpedido.Value; cdsTemp.FieldByName('Complemento').AsString := dmApontPTK.cdsPedidoComplemento.Value; cdsTemp.FieldByName('DataPedido').AsDateTime := dmApontPTK.cdsPedidoDatapedido.AsDateTime; cdsTemp.FieldByName('DataEntrega').AsDateTime := dmApontPTK.cdsPedidoDataEntrega.AsDateTime; cdsTemp.FieldByName('CodNatOpe').AsInteger := dmApontPTK.cdsPedidoCodNatOpe.Value; cdsTemp.FieldByName('Situacao').AsInteger := dmApontPTK.cdsPedidoSituacao.Value; cdsTemp.FieldByName('CodTipoProd').AsInteger := dmApontPTK.cdsPedidoCodTipoProd.Value; cdsTemp.FieldByName('CodMarca').AsString := dmApontPTK.cdsPedidoCodMarca.Value; cdsTemp.FieldByName('CodProduto').AsString := dmApontPTK.cdsPedidoCodProduto.Value; cdsTemp.FieldByName('CodTamanho').AsString := dmApontPTK.cdsPedidoCodTamanho.Value; cdsTemp.FieldByName('PrecoVenda').AsInteger := dmApontPTK.cdsPedidoPrecoVenda.AsInteger; cdsTemp.FieldByName('QtdePedida').AsInteger := dmApontPTK.cdsPedidoQtdePedida.AsInteger; cdsTemp.FieldByName('QtdeEntregue').AsInteger := dmApontPTK.cdsPedidoQtdeEntregue.AsInteger; cdsTemp.FieldByName('Qtdecancelada').AsInteger := dmApontPTK.cdsPedidoQtdecancelada.AsInteger; cdsTemp.FieldByName('Usuario').AsString := dmApontPTK.cdsPedidoUsuario.Value; cdsTemp.FieldByName('DtRec').AsDateTime := dmApontPTK.cdsPedidoDtRec.AsDateTime; cdsTemp.post; end; end; end; Se Alguem puder dar um Help ... Abraços, [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Fit Area Imagem
Olá Alex. Você está dizendo tipo ancorar o tamanho, para quando aumentar a largura, a figura também aumentar a autura proporcionalmente? Se for isso, eu acho que dá para voce fazer uma regrinha de 3 com as propriedades Width e Height do objeto que voce estiver trabalhando. Exemplo: Ao redimensionar a largura da imagem (Width), voce primeiro quarda a posição inicial do Width em alguma variável, e executa a formula: MinhaImagem.Height := (MinhaImagem.Height * MinhaImagem.Width) / varWidthInicial; E pode fazer o inverso quando for redimensionar a altura... Edelson. 2009/6/10 Alexandre alexandresoare...@yahoo.com.br Pessoal alguem sabe como faço para dimensionar uma imagem jpg (via delphi) proporcionalmente de acordo com a altura e largura que eu definir?igual no Adobe Photoshop? Alex __ Information from ESET NOD32 Antivirus, version of virus signature database 4141 (20090609) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] OFF - tiOPF
Desculpem pelo post OFF, mas a lista do tiOPF em portugues está meio parada, já postei lá e não obtive resposta, e derrepente alguém daqui saiba tirar a minha dúvida. Alguém aqui manja do framework tiOPF? Mais especificamente na criação dos Visitors no modo HardCoded... Grato, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Funcionamento interno do ApplyUpdates
Entendi... E eu consigo enxergar as rows os Fields dentro do Data e do Delta? Ou tenho que fazer algum TypeCast para obter as informações? Pelo que você falou, eu preciso comparar tudo o que está diferente no Delta em relação ao Data, trabalhar essas informações e depois persistir no banco de dados. Vocês sabem de alguma maneira eficaz de se fazer isso? Tipo, sem correr o risco de deixar dados para traz? Obrigado, Edelson. 2009/6/1 Daniel Sobrinho Laporte daniel.lapo...@gmail.com Edelson o ClientDataSet possui dois estados internos. ClientDataSet.Data: contém os dados originais ClientDataSet.Delta: contém os dados que sofreram alteração A peristência na verdade é realizada pelo DataSetProvider de acordo com seu UpdateMode e com as configurações dos ProviderFlags. Tanto o Data quanto o Delta são OleVariants, desta forma você pode criar um array de variants e atribuir o valor, ou utilizar um outro ClientDataSet.Data em tempo de execução ok? []'s Daniel 2009/6/1 berdam berdamzi...@yahoo.com.br berdamzinho%40yahoo.com.br o dataset tem tuas propriedades o data e o delta, se n me engano o data possui o registro, já o delta possui todos os registros alterados. Edelson Regis de Lima escreveu: Olá galera! Alguém sabe como o ApplyUpdates do TClientDataSet reconhece internamente quais são os registros que foram alterados, e que operação ele precisa executar (se é insert, update, delete...). Estou perguntando isso porque estou desenvolvendo um componente herdado do TClientDataSet, que terá um ApplyUpdates modificado. Esse ApplyUpdates terá que fazer algumas outras coisas antes de persistir os dados. E se eu conseguir entender como o ApplyUpdates reconhece quais os registros/campos que precisam ser persistidos, irá facilitar muto a minha vida. Já ouvi falar que tem a ver com o Delta, mas não manjo muito sobre ele... Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas] -- - Uberdam Cavaletti Formado em Tecnologia da informação - Unoesc - Xxe Pós graduado em Desenvolvimento Java - Unoesc - Xxe Acesse http://www.curricular.com.br/berdam Acesse http://passandoveneno.blogspot.com - -- Daniel Sobrinho Laporte Analista de Sistemas e Desenvolvedor Delphi + Firebird. Colunista e Editor Técnico ClubeDelphi - DevMedia. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Funcionamento interno do ApplyUpdates
Valew pessoal! Vou fazer uns testes aqui, e depois posto o resultado. Abraços, Edelson. 2009/6/2 Daniel Sobrinho Laporte daniel.lapo...@gmail.com Exatamente Ricardo... através do Delta você consegue obter o valor antigo, e o novo valor dos campos através dos métodos NewValue e OldValue. Edelson para um pequeno teste você pode criar um projeto em branco colocar dois clientdataset's, um como tabela de memória e o outro com dados preenchidos, ao alterar os valores do primeiro e realizar o post, grave o delta no clientdataset de memória, desta maneira você pode realizar um FOR olhando os fields e comparando-os. É importante que você entenda bem o funcionamento de Variants para não ter supresas de como trabalhar com os OleVariants. []s Daniel 2009/6/2 Ricardo César Cardoso ricardo_engs...@yahoo.com.brricardo_engsoft%40yahoo.com.br Até onde lembro o Delta só tem as colunas e dados mudados. Não tem o registro todo. Se não me engano a matriz do Delta é algo assim: Field, OldValue, NewValue mas não tenho certeza absoluta. []'s Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em ter, 2/6/09, Edelson Regis de Lima edre...@ig.com.bredregis%40ig.com.br edregis%40ig.com.br escreveu: De: Edelson Regis de Lima edre...@ig.com.br edregis%40ig.com.bredregis% 40ig.com.br Assunto: Re: [delphi-br] Funcionamento interno do ApplyUpdates Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brdelphi-br% 40yahoogrupos.com.br Data: Terça-feira, 2 de Junho de 2009, 9:40 Entendi... E eu consigo enxergar as rows os Fields dentro do Data e do Delta? Ou tenho que fazer algum TypeCast para obter as informações? Pelo que você falou, eu preciso comparar tudo o que está diferente no Delta em relação ao Data, trabalhar essas informações e depois persistir no banco de dados. Vocês sabem de alguma maneira eficaz de se fazer isso? Tipo, sem correr o risco de deixar dados para traz? Obrigado, Edelson. 2009/6/1 Daniel Sobrinho Laporte daniel.laporte@ gmail.com Edelson o ClientDataSet possui dois estados internos. ClientDataSet. Data: contém os dados originais ClientDataSet. Delta: contém os dados que sofreram alteração A peristência na verdade é realizada pelo DataSetProvider de acordo com seu UpdateMode e com as configurações dos ProviderFlags. Tanto o Data quanto o Delta são OleVariants, desta forma você pode criar um array de variants e atribuir o valor, ou utilizar um outro ClientDataSet. Data em tempo de execução ok? []'s Daniel 2009/6/1 berdam berdamzinho@ yahoo.com. br berdamzinho% 40yahoo.com. br o dataset tem tuas propriedades o data e o delta, se n me engano o data possui o registro, já o delta possui todos os registros alterados. Edelson Regis de Lima escreveu: Olá galera! Alguém sabe como o ApplyUpdates do TClientDataSet reconhece internamente quais são os registros que foram alterados, e que operação ele precisa executar (se é insert, update, delete...). Estou perguntando isso porque estou desenvolvendo um componente herdado do TClientDataSet, que terá um ApplyUpdates modificado . Esse ApplyUpdates terá que fazer algumas outras coisas antes de persistir os dados. E se eu conseguir entender como o ApplyUpdates reconhece quais os registros/campos que precisam ser persistidos, irá facilitar muto a minha vida. Já ouvi falar que tem a ver com o Delta, mas não manjo muito sobre ele... Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas] -- - - - - - Uberdam Cavaletti Formado em Tecnologia da informação - Unoesc - Xxe Pós graduado em Desenvolvimento Java - Unoesc - Xxe Acesse http://www.curricul ar.com.br/ berdam Acesse http://passandovene no.blogspot. com - - - - - -- Daniel Sobrinho Laporte Analista de Sistemas e Desenvolvedor Delphi + Firebird. Colunista e Editor Técnico ClubeDelphi - DevMedia. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas
Re: [delphi-br] Funcionamento interno do ApplyUpdates
A quem possa interessar, conclusões sobre o Delta: Como os colegas já tinham dito, o Delta armazena somente os registros que foram modificados. Então para constatar o seu correto funcionamento, fiz um teste muito simples: - Criei um novo projeto e coloquei dois TClientDataSet na tela (cdsNormal e cdsDelta). - Com o cdsNormal linkado à minha tabela do banco de dados, inseri, alterei e deletei registros. - Depois atribui o Delta do cdsNormal ao Data do cdsDelta: cdsDelta.Data := cdsNormal.Delta; - Quando dei um Active := true no cdsDelta (mostrei os registros num DBGrid), o mesmo continha somente as alterações realizadas no cdsNormal. - Para saber o que tinha acontecido com cada registro, fiz o seguinte no evendo onCellClick do DBGrid linkado ao cdsDelta: procedure TForm1.DBGrid2CellClick(Column: TColumn); begin with cdsDelta do begin case UpdateStatus of usUnmodified: lblStatus.Caption := 'Não modificado'; usModified: lblStatus.Caption := 'Modificado'; usInserted: lblStatus.Caption := 'Inserido'; usDeleted: lblStatus.Caption := 'Deletado'; end; end; end; Simples não?! Abraços, Edelson. 2009/6/2 Edelson Regis de Lima edre...@ig.com.br Valew pessoal! Vou fazer uns testes aqui, e depois posto o resultado. Abraços, Edelson. 2009/6/2 Daniel Sobrinho Laporte daniel.lapo...@gmail.com Exatamente Ricardo... através do Delta você consegue obter o valor antigo, e o novo valor dos campos através dos métodos NewValue e OldValue. Edelson para um pequeno teste você pode criar um projeto em branco colocar dois clientdataset's, um como tabela de memória e o outro com dados preenchidos, ao alterar os valores do primeiro e realizar o post, grave o delta no clientdataset de memória, desta maneira você pode realizar um FOR olhando os fields e comparando-os. É importante que você entenda bem o funcionamento de Variants para não ter supresas de como trabalhar com os OleVariants. []s Daniel 2009/6/2 Ricardo César Cardoso ricardo_engs...@yahoo.com.brricardo_engsoft%40yahoo.com.br Até onde lembro o Delta só tem as colunas e dados mudados. Não tem o registro todo. Se não me engano a matriz do Delta é algo assim: Field, OldValue, NewValue mas não tenho certeza absoluta. []'s Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em ter, 2/6/09, Edelson Regis de Lima edre...@ig.com.bredregis%40ig.com.br edregis%40ig.com.br escreveu: De: Edelson Regis de Lima edre...@ig.com.br edregis%40ig.com.bredregis% 40ig.com.br Assunto: Re: [delphi-br] Funcionamento interno do ApplyUpdates Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brdelphi-br% 40yahoogrupos.com.br Data: Terça-feira, 2 de Junho de 2009, 9:40 Entendi... E eu consigo enxergar as rows os Fields dentro do Data e do Delta? Ou tenho que fazer algum TypeCast para obter as informações? Pelo que você falou, eu preciso comparar tudo o que está diferente no Delta em relação ao Data, trabalhar essas informações e depois persistir no banco de dados. Vocês sabem de alguma maneira eficaz de se fazer isso? Tipo, sem correr o risco de deixar dados para traz? Obrigado, Edelson. 2009/6/1 Daniel Sobrinho Laporte daniel.laporte@ gmail.com Edelson o ClientDataSet possui dois estados internos. ClientDataSet. Data: contém os dados originais ClientDataSet. Delta: contém os dados que sofreram alteração A peristência na verdade é realizada pelo DataSetProvider de acordo com seu UpdateMode e com as configurações dos ProviderFlags. Tanto o Data quanto o Delta são OleVariants, desta forma você pode criar um array de variants e atribuir o valor, ou utilizar um outro ClientDataSet. Data em tempo de execução ok? []'s Daniel 2009/6/1 berdam berdamzinho@ yahoo.com. br berdamzinho% 40yahoo.com . br o dataset tem tuas propriedades o data e o delta, se n me engano o data possui o registro, já o delta possui todos os registros alterados. Edelson Regis de Lima escreveu: Olá galera! Alguém sabe como o ApplyUpdates do TClientDataSet reconhece internamente quais são os registros que foram alterados, e que operação ele precisa executar (se é insert, update, delete...). Estou perguntando isso porque estou desenvolvendo um componente herdado do TClientDataSet, que terá um ApplyUpdates modificado . Esse ApplyUpdates terá que fazer algumas outras coisas antes de persistir os dados. E se eu conseguir entender como o ApplyUpdates reconhece quais os registros/campos que precisam ser persistidos, irá
Re: [delphi-br] Dbexpress - Vocês recomendam?
Olá Eduardo. Você já utiliza esses componentes multibanco? Estamos começando um projeto aqui na empresa, que deverá suportar Oracle, SqlServer, SyBase... e estamos num grande dilema sobre qual tecnologia usar. A principio decidimos pelo framework tiOPF, porém não sei se conseguiremos usar o data snap no servidor de aplicação, pois não sei se o mesmo trafega objetos... aí teríamos que usar algum framework para trafegar esses objetos, e teríamos mais uma vez que fazer inúmeros testes até achar um que funcione legal, e o prazo ta meio curto. Derrepente com esses componentes que você indicou dá para desenvolver o sistema com suporte a todos esses bancos, e ainda utilizar o data snap... Abraços, Edelson. 2009/6/1 Eduardo Silva dos Santos eduardo@gmail.com Se você um pacote componentes multibanco e com total compatiblidade use este aqui: http://www.devart.com/unidac/ 2009/6/1 Alexandre alexandresoare...@yahoo.com.bralexandresoaressp%40yahoo.com.br Outra dúvida, pessoal estou pensando em usar dbexpress em minhas aplicações, alguem recomenda usar esses componentes?funciona normalmente em rede?percebi que não usa TIBTransaction igual o TIBDATABASE, vocÊs recomendam? Alex __ Information from ESET NOD32 Antivirus, version of virus signature database 4117 (20090530) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas] -- ... Eduardo Silva dos Santos DRD SISTEMAS (27) 3218-4201 (27) 9961-7095 MSN: eduardo@gmail.com eduardo.drd%40gmail.com Site: http://www.drdsistemas.com.br/ ... [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Funcionamento interno do ApplyUpdates
Olá galera! Alguém sabe como o ApplyUpdates do TClientDataSet reconhece internamente quais são os registros que foram alterados, e que operação ele precisa executar (se é insert, update, delete...). Estou perguntando isso porque estou desenvolvendo um componente herdado do TClientDataSet, que terá um ApplyUpdates modificado. Esse ApplyUpdates terá que fazer algumas outras coisas antes de persistir os dados. E se eu conseguir entender como o ApplyUpdates reconhece quais os registros/campos que precisam ser persistidos, irá facilitar muto a minha vida. Já ouvi falar que tem a ver com o Delta, mas não manjo muito sobre ele... Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Dbexpress - Vocês recomendam?
No meu caso, como o sistema será em 3 ou mais camadas, o Servidor de Aplicação precisará trafegar os dados de qualquer maneira. Já ouvi falar muito bem do Data Snap, das suas vantagens e facilidades na hora de desenvolver... mas não sei se ele trafega objetos, pelo menos ainda não vi nenhum exemplo... e como estamos utilizando um framework de persistencia, tavez teríamos que usar alguma alternativa ao DataSnap para trafegar esses dados entre Client e Server. Mas se derrepente o UniDAC suportar todos os bancos que o sistema precisará trabalhar, e for compatível com o DataSnap, talvez seja uma boa opção... Edelson. 2009/6/1 Fellipe Henrique felli...@gmail.com Bom amigos, por experiência própria.. fuja do DBX...ele comparado a outros é bem ruizinho... tipo o UniDAC...este SIM é um ótimo componente, com acesso NATIVO a vários DBs... Quanto ao DataSnap, vai muito da aplicação, veja se realmente a aplicação necessita desta metodologia...se não, vai normal mesmo.. Att. Fellipe H. 2009/6/1 Edelson Regis de Lima edre...@ig.com.br edregis%40ig.com.br Olá Eduardo. Você já utiliza esses componentes multibanco? Estamos começando um projeto aqui na empresa, que deverá suportar Oracle, SqlServer, SyBase... e estamos num grande dilema sobre qual tecnologia usar. A principio decidimos pelo framework tiOPF, porém não sei se conseguiremos usar o data snap no servidor de aplicação, pois não sei se o mesmo trafega objetos... aí teríamos que usar algum framework para trafegar esses objetos, e teríamos mais uma vez que fazer inúmeros testes até achar um que funcione legal, e o prazo ta meio curto. Derrepente com esses componentes que você indicou dá para desenvolver o sistema com suporte a todos esses bancos, e ainda utilizar o data snap... Abraços, Edelson. 2009/6/1 Eduardo Silva dos Santos eduardo@gmail.comeduardo.drd%40gmail.com eduardo.drd%40gmail.com Se você um pacote componentes multibanco e com total compatiblidade use este aqui: http://www.devart.com/unidac/ 2009/6/1 Alexandre alexandresoare...@yahoo.com.bralexandresoaressp%40yahoo.com.br alexandresoaressp%40yahoo.com.br alexandresoaressp%40yahoo.com.br Outra dúvida, pessoal estou pensando em usar dbexpress em minhas aplicações, alguem recomenda usar esses componentes?funciona normalmente em rede?percebi que não usa TIBTransaction igual o TIBDATABASE, vocÊs recomendam? Alex __ Information from ESET NOD32 Antivirus, version of virus signature database 4117 (20090530) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas] -- ... Eduardo Silva dos Santos DRD SISTEMAS (27) 3218-4201 (27) 9961-7095 MSN: eduardo@gmail.com eduardo.drd%40gmail.com eduardo.drd% 40gmail.com eduardo.drd% 40gmail.com Site: http://www.drdsistemas.com.br/ ... [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- _ T.·.F.·.A.·. Fellipe Henrique Blog: www.digitumsoft.com.br/blogs/fellipeh -- CAMPANHA POR UMA INTERNET SEGURA Proteja o endereço de seus amigos como estou protegendo o seu. Ao enviar mensagens use SEMPRE o Cco (cópia oculta). Assim TODOS os endereços estarão preservados. E, claro, antes de encaminhar um e-mail, delete todas as informações que apareçam no corpo do e-mail e que possam ser usadas por hackers. ### [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] GetPropValue retornar conteúdo do t ipo TMemoryStream
Consegui usando o GetObjectProp. Tive que fazer assim: MinhaStream.LoadFromStream(TMemoryStream(GetObjectProp(MeuObjetoLocal, NomePropriedade,TMemoryStream))); Se eu não fizer o TypeCast com o TMemoryStream não compila, porque o retorno de GetObjectProp é um TObject. Obrigado pela ajuda! Abraços, Edelson. 2009/5/29 Edelson Regis de Lima edre...@gmail.com Então João, eu dei uma olhada na classe TTypeKink, e ela não suporta Stream TTypeKind = (tkUnknown, tkInteger, tkChar, tkEnumeration, tkFloat, tkString, tkSet, tkClass, tkMethod, tkWChar, tkLString, tkWString, tkVariant, tkArray, tkRecord, tkInterface, tkInt64, tkDynArray); Eu até consigo acessar as minhas propriedades da maneira que voce falou, mas quando é Stream ele não retorna corretamente. Tipo, os dados que estou utilizando tem mais de 70 mil bytes, e quando recupero isso usando VPropInfo^.PropType^.Kind ele me retorna apenas alguns bytes... Quando é string, float, integer... está vindo direito, mas quando é Stream ele não consegue recuperar corretamente. Edelson. 2009/5/28 Joao Morais jcmorai...@gmail.com 2009/5/28 Joao Morais jcmorai...@gmail.com jcmoraisjr%40gmail.com: VPropInfo := GetPropInfo(Owner, Metadata.Name); GetPropInfo(SeuObjeto, 'NomeDaPropriedade'); Joao Morais [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] GetPropValue retornar conteúdo do tipo TMemoryStrea m
Olá pessoal. Não sei se é possível, mas vamos lá... Tenho uma classe principal: TMinhaClasse, que tem algumas propertys básicas. Eu crio outra classe TMinhaClasseHerdada = class(TMinhaClasse) e acrescento mais algumas propertys... Implementei uma função usando RTTI que lê qualquer tipo de objeto herdado de TMinhaClasse e mostra suas propriedades e respectivos valores. Só que estou tendo problema quando a property é do tipo TMemoryStream, pois utilizo a function GetPropValue, que me retorna uma Variant, e os dados contidos nessa property, que seria um monte de binários, me retorna alguns números apenas. Será que tem outro jeito de fazer isso? Alguem sabe como ler uma propriedade genericamente, sem saber previamente qual o seu tipo, e se for do tipo TMemoryStream ou TStream, que retorne o seu conteúdo corretamente? Grato, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Boleto Bancário
Acho que todos os bancos tem a opção de gerar boleto para pessoa física. A diferença é que a taxa cobrada por boleto gerado é maior do que para PJ. Mas dá sim... Até mais, Edelson. 2009/5/21 JB josebened...@gmail.com Eu gero no bradesco e nunca tive problemas 2009/5/21 felipe govoni govoni.fel...@gmail.comgovoni.felipe%40gmail.com : no itau vc consegue gerar boeto como PF, porem tem alguns detalhes que vc deve verificar com o banco. 2009/5/21 Alessandro Magno informati...@bioextratus.com.brinformatica5%40bioextratus.com.br Galera, Tendo uma conta de pessoa física no banco, eu consigo gerar boleto bancário em meu nome ou somente pessoas jurídicas??? -- Felipe Govoni - GOVONI Sistemas Fone 8472-8718 www.govoni.com.br [As partes desta mensagem que não continham texto foram removidas] -- José Benedito Software Developer +55 19 8116-7826 msn: jb_holam...@hotmail.com jb_holambra%40hotmail.com skype:jb.sologix [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] importa dados do excel para o interbase
Uma solução é fazer um programa que lê o excel como um banco de dados, e insira os registros no Interbase... Edelson. 2009/5/11 rzzanatta rzzana...@yahoo.com.br Olá galera estou com alguns dados em excel e queria importar eles para o interbase como faço isso? Obrigado. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Traduzir textos no Rave Report
Eu acho que nem precisa ser por parametro, deve haver uma maneira de percorrer todos os ítens dentro da classe TRvProject e fazer a tradução. Alguém já criou alguma rotina para varrer os componentes dentro de um relatório no Rave? Att, Edelson. 2009/5/5 berdam berdamzi...@yahoo.com.br vc pode fazer por parâmetros, e passa esses valores de parâmetros pelo delphi, parecido com quick report Edelson Regis de Lima escreveu: Olá Pessoas! Estou desenvolvendo um sistema multi-idiomas. Nos Forms é fácil fazer a tradução... criei um componente que varre o form e traduz os captions, text, etc. Mas tenho que arrumar uma maneira de traduzir tambem os textos dentro dos relatórios do Rave Report, sem precisar fazer uma versão dos relatórios para cada Idioma. Mas não tenho muita idéia de como fazer isso, até mesmo porque não conheço muito sobre o Rave. Me disseram que dá para criar componentes para o Rave.. talvez aí esteja a solução. Alguém tem uma sugestão? Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas] -- - Uberdam Cavaletti Formado em Tecnologia da informação - Unoesc - Xxe Pós graduado em Desenvolvimento Java - Unoesc - Xxe Acesse http://www.curricular.com.br/berdam Acesse http://passandoveneno.blogspot.com - [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Propriedade do Componente tipo OpenDialog
Boa tarde! Uso Delphi 2007! Estou criando um componente, e uma das propriedades tipo published (editável no Object Inspector) deverá ser do tipo Open Dialog, para que a pessoa clique e escolha o caminho do arquivo. Pesquisei alguns exemplos na internet, mas acho que foram escritos em versões mais antigas do delphi, pois no 2007 não rola. Dei uma olhada no exemplo deste link: http://www.dpi.ufv.br/downloads/cursoKylix/Material/Apostilas/ccu09.htm Não está dando certo porque o exemplo pede para usar o tipo da classe como TStringProperty, que está na unit DesignEditors. Só que no delphi 2007 essa unit dá pau, porque encontra um monte de dependencias... Alguém tem uma luz? Grato, Edelson. [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Traduzir textos no Rave Report
Olá Pessoas! Estou desenvolvendo um sistema multi-idiomas. Nos Forms é fácil fazer a tradução... criei um componente que varre o form e traduz os captions, text, etc. Mas tenho que arrumar uma maneira de traduzir tambem os textos dentro dos relatórios do Rave Report, sem precisar fazer uma versão dos relatórios para cada Idioma. Mas não tenho muita idéia de como fazer isso, até mesmo porque não conheço muito sobre o Rave. Me disseram que dá para criar componentes para o Rave.. talvez aí esteja a solução. Alguém tem uma sugestão? Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Re: ComboBox de 2 colunas
Em que versão do Delphi voce criou o Exemplo? Estou tentando abrir o projeto aqui no Delphi 2007, e dá: Unable to load project Já fiz o download umas 3 vezes para ver se resolvia, mas nada... Só abre o MD_ItemCombo... e da Unit1.pas só abre o form e não mostra o código. Abraços, Edelson. 2009/4/30 Paulo Coutinho pa...@prsolucoes.com Postei um exemplo na sessão de arquivos do grupo, está funcionando perfeitamente. Obrigado a todos, vocês são os caras. Abraçam e fiquem com Deus. 2009/5/1 Paulo Coutinho pa...@prsolucoes.com paulo%40prsolucoes.com Hum, boa essa do AddObject, nunca havia testado. Posso no caso armazenar vários objetos de minha classe ItemCombo, que contém atributos como id/valor, ai depois recupero com o cast como você fez joão. Muito bom, obrigado pela ajuda, vou testar aqui. 2009/4/30 Joao Henrique Levada joaolev...@gmail.comjoaolevada%40gmail.com Meu caro, você pode armazenar um valor em cada item do combo: iNumero := 1981; {valor inteiro para armazenar} ComboBox1.Items.AddObject('meu nome', TObject(iNumero)); {usa a propriedade Objects para armazenar o integer} iIndice := Combobox1.ItemIndex;//iIndice é variável explicativa iValor := Integer(ComboBox1.Items.Objects[iIndice]); {recuperando o valor armazenado} -- Atenciosamente, Paulo Coutinho. Blog: www.prsolucoes.com/blog Site: www.prsolucoes.com Msn: pa...@prsolucoes.com paulo%40prsolucoes.com -- Atenciosamente, Paulo Coutinho. Blog: www.prsolucoes.com/blog Site: www.prsolucoes.com Msn: pa...@prsolucoes.com paulo%40prsolucoes.com [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Transferir arquivo com TIdTcpServer/TIdTcpClient
Bom dia pessoal. Estou tentando transferir os dados do meu Client no formato XML para o Server, e o Server pegar esse XML, fazer o que tiver que fazer, e devolver uma mensagem se deu tudo certo ou não. Eu peguei como base um exemplo do proprio Indy, de uma aplicação onde o Server envia uma imagem ao Client. Estou utilizando Indy 10, e tive que corrigir o exemplo, pois era em Indy 9. O Client se conecta com o Server direitinho, o Server dá um ReadStream, só que fica esperando a vida inteira e não recebe nada do Client. Segue o código abaixo com comentários nas linhas onde o processamento é interrompido... como é a primeira vez que trabalho com esses componentes, eu devo ter feito algo errado. CLIENT procedure TFormCliente.btnSalvarClick(Sender: TObject); var stream: TFileStream; s: string; begin inherited; CS.Enter; try with Client do begin if not Connected then Connect; stream := TFileStream.Create(ExtractFileDir(ParamStr(0)) + '\CLIENTE.XML', fmOpenRead+ fmShareDenyNone); IOHandler.WriteBufferOpen; IOHandler.Write(stream); IOHandler.WriteBufferClose; FreeAndNil(stream); s := IOHandler.ReadLn; //DEPOIS QUE O SERVER DÁ UM ReadStream, O CLIENT PROCESSA ATÉ AQUI E TRAVA Client.Disconnect; end; if s = 'OK' then ShowMessage('Operação com Servidor realizada com sucesso!') else ShowMessage('Houve uma falha na operação com o Servidor!' + #10 + 'Tente enviar novamente'); except on E:Exception do ShowMessage(e.Message); end; CS.Leave; end; SERVER procedure TForm1.ServerExecute(AContext: TIdContext); var stream: TFileStream; begin try CS.Enter; try if FileExists(ExtractFileDir(ParamStr(0)) + '\CLIENTE.XML') then DeleteFile(ExtractFileDir(ParamStr(0)) + '\CLIENTE.XML'); lbStatus.Items.Add('Recebendo arquivo...'); stream := TFileStream.Create(ExtractFileDir(ParamStr(0)) + '\CLIENTE.XML', fmCreate); AContext.Connection.IOHandler.ReadStream(stream, -1, false); // O PROCESSAMENTO DO SERVER TRAVA AQUI, E NÃO RECEBE RESPOSTA AContext.Connection.IOHandler.WriteLn('OK'); AContext.Connection.Disconnect; FreeAndNil(stream); // image1.Picture.Bitmap.LoadFromStream(stream); lbStatus.Items.Add('Arquivo CLIENTE.XML recebido com sucesso!'); lbStatus.Items.Add('Resposta OK enviada ao Client!'); except on E:Exception do ShowMessage('Erro ao receber XML' + #10 + e.Message); end; finally CS.Leave; end; end; [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Re: Cliente
Pode ser o nome da maquina, ao invés do IP MeuServer:c:/sistema/Projeto/dados/banco.gdb Edelson. 2009/4/23 dhsb dionata...@unijui.edu.br Nao posso colocar o ip pois e ip automotico na rede por isso (compartilhamento de internet, etc..)! --- Em delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br, Andrei Luís compuvale.softw...@... escreveu Dionatan, - troque a string de conexão para ip_do_servidor:c:/sistema/Projeto/dados/banco.gdb, faça isso também no servidor. - não precisa compartilhar a pasta onde está o banco de dados, aliás, é extramente recomendável que NÃO se faça isso, por motivos de segurança e pra evitar que algum usuário corrompa o arquivo 'sem-querer' (leia-se mexendo onde não deveria) - eu prefiro copiar o executável pras estações, gera menos tráfego na rede. [] Andrei 2009/4/23 dhsb dionata...@... Pessoal, desculpe a ignorancia mas e a primeira vez que fasso isso em rede... Como devo proceder para colocar o sistema em rede uso o firebird ... ja instalei o fire nass maquinas clientes o servidor tem a seguinte estrutura c:/sistema/Projeto/dados/banco.gdb ja compartlheio as pastas eu uso um arquivo ini [Banco] database=\\escritorio\!dados!\BANCO.GDB Minha pergunta. Preciso copiar o executavel do servidor para a maquina cliente junto com o ini ou posso criar apenas um atalho? Como devo proceder? [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] pouco por um sistema!!!
É pessoal, que falta faz um orgão regulamentador para a nossa tão indispensável profissão, tal como OAB, CREA, CRM, etc... Edelson. 2009/4/22 Leonardo Quinino leonardo.quin...@gmail.com Opnião Clara e sem rodeios 1- Programa quem faz é prostituta (poderia até usar outra palavra de baixo calão, mas para evitar ban do grupo) deixa a palavra prostituta. 2- Sisteminha até estudante iniciante faz, solução de software, não. 3- Ou é barato ou é bom !!! (essa é uma aplicabilidade que desde que começei a usar, as coisas melhoraram) * item 3 , salvo raras exceções deixa de ser verdade. 4- Ou nós, nos organizamos em sindicato , associação ou algo do genêro ou o mercado vai ficar eternamente, bagunçado. 2009/4/22 Alisson alss...@yahoo.com.br alssnco%40yahoo.com.br CAFÉ não tem acento, Sílvio? Você está doido? Se você não colocar acento, a sílaba tônica seria o CA. __ Faça ligações para outros computadores com o novo Yahoo! Messenger http://br.beta.messenger.yahoo.com/ -- Leonardo Quinino [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] FastMM
É isso aí pessoal, acho que já esclareceram as minhas dúvidas! Irei começar a utilizar o FastMM4 em um projeto, e como nunca tinha utilizado o mesmo, resolvi perguntar aqui na lista pra ver realmente em que situações poderei utiliza-lo. Obrigado! Abraços, Edelson. 2009/4/21 Joao Morais jcmorai...@gmail.com 2009/4/21 Silvio Clécio silviop...@yahoo.com.brsilvioprog%40yahoo.com.br : Olá galera, Edelson, até onde eu sei o FastMM é só para gerenciar memória. Um dica: quando vc for entregar o sistema ao cliente, remova FastMM4 da cláusula uses, pq se der um pepino o teu cliente vai achar a mensagem de erro um tanto _cabiluda_ :D Por padrão o FastMM só reporta vazamentos se encontrar a IDE na memória. Ainda assim vale a pena ter o FastMM no projeto por ser um gerenciador de memória melhor do que o da Borland, mas configurar o FastMMOptions.inc corretamente para não trabalhar em modo de depuração e não apresentar mensagens de erro. Joao Morais [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] FastMM
Olá Silvio. Não, pelo contrário, eu acho isso bom pra caramba!!! Um recurso indispensável para quem quer aumentar a performance da aplicação, eliminando possíveis vazamentos de memória, e consequentemente eliminando problemas futuros. A minha dúvida é se o FastMM tem mais algum recurso além do que voce mostrou no exemplo (o que já é muito). Tipo, tirando as configurações do FastMM4Options.inc, o qual podemos configurar a nosso gosto, há mais alguma coisa que podemos fazer com o FastMM? E obrigado pelo e-mail! Já recebi aqui. :-) Abraços, Edelson. 2009/4/20 Silvio Clécio silviop...@yahoo.com.br Olá galera, Preciso pesquisar sobre o assunto, e até agora o que eu vi na internet são exemplos em que o cara esqueceu de liberar um objeto da memória, e o FastMM o avisa sobre isso. Cara num leve a mal não, mas, vc acha isso pouco? Enviei o FastMM4 para teu email, veja o projeto teste na pasta Exemplo-PtBr. []'s, Silvio Clécio --- Linux User: #481900 Skype: silvioprog ICQ: 432519902 E-mail, Y! Messenger: silviop...@yahoo.com.br silvioprog%40yahoo.com.br Gmail, GTalk: silviop...@gmail.com silvioprog%40gmail.com BlogSite: http://silvioprog.blogspot.com/ BlogSpot: http://silvioclecio.blogspot.com/ VirtualDriver: http://silvioprog.4shared.com/ °oO| Seja livre, use Linux! |Oo° Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] FastMM
Salve Galera! O FastMM serve só para gerenciar, no período do desenvolvimento do sistema, se esquecemos de liberar algo da memória??? Ou tem outras funcionalidades? Como deixar a aplicação mais leve, alocar memória, etc... Preciso pesquisar sobre o assunto, e até agora o que eu vi na internet são exemplos em que o cara esqueceu de liberar um objeto da memória, e o FastMM o avisa sobre isso. E eu gostaria de saber se a finalidade é só essa mesmo... Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Calcular tempo restante
Eu resolvi da seguinte maneira: diferenca := TempoAtual - TempoInicial; TempoRestante := ((BarraProgresso.Max / BarraProgresso.Position) * diferenca) - diferenca ; Aí ficou certinho! Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Criar Add-in no Excel com o Delphi
Olá Reinaldo! Realmente não existe literatura sobre isso, o que dificulta muito as coisas. Mas voce chegou a dar uma olhada no link que eu passei? http://www.add-in -express.com/downloads/adxvcl.php É de uma empresa que criou os componentes que fazem exatamente o que eu quero, tem até algumas imagens lá mostrando, tutoriais sobre os componentes, etc., dá pra fazer coisas bem bacanas e personalizadas, e isso programando tudo em delphi! Só que é de $ 400 para cima, o que daria cerca de R$ 1.000,00... aí que complica, rs... e isso pra uma licença só se eu não me engano. Eu achei um outro artigo também (em inglês), que o cara diz que cria os add-ins para excel em C/C++ e Delphi. Eu peguei um paragrafo e joquei no tradutor do google, que diz o seguinte: * Uma das características menos conhecida Excel são os add-ins. Embora você possa criá-los com o VBA, você também pode escrever add-in Dlls em C + + e Delphi. Aqueles fazendo graves desenvolvimento tem de comprar o Excel 97 Developer's Kit (ISBN 1-57231-498-2) (EDK) livro, mas é claro que é C / C + + orientado, e há algumas armadilhas para o programador Delphi. Neste artigo eu irei mostrar o suficiente para que você caminhe. Como um desenvolvedor em um ambiente de trabalho Excel tenho desenvolvido com sucesso muitos add-ins com Delphi 3, e eu sei que ninguém mais está fazendo isso. Existe Financeiro CAD, uma empresa canadiana que os suplementos podem ser utilizados a partir do Delphi, mas acho que eles estão escritas em C + +. Ei, eu poderia ser a única pessoa no mundo a fazer isto!* Isso mostra que é um recurso pouco explorado, mas que também não é um bicho de 7 cabeças... o problema é saber por onde começar. No artigo desse cara ele mostra como dar os primeiros passos, só que infelizmente em C, e não em delphi. Derrepente, daria pra seguir os passos e tentar escrever os códigos em delphi. Caso voce queira dar uma olhada no artigo, segue o link: http://www.aspfree.com/c/a/Windows-Scripting/Writing-Excel-Addons/ Abraços, Edelson. 2009/4/15 Reinaldo Aparecido Pereira ctocv...@yahoo.com.br Olha amigo, Não quero te desanimar, mas precisei fazer algo parecido para o Outlook e desisti. (Outlook, Excel e Word é bem parecido. Apredeu a fazer pra um é fácil fazer noutro). Creio que para fazer algo assim em Delphi é muito difícil porque não existe literatura, mas principalmente porque o Delphi não é ferramenta para isso. Vb sim é a ferramenta correta nesse caso. O que você quer fazer é fácil usando macros do Excel ou talvez usando um pouco de Vba, mas posso afirmar que em Delphi é um buraco negro e, sem querer te desmotivar, sugiro não perder tempo com o assunto. Ainda assim se quiser se arriscar por esse terreno desconhecido, , existe um livro especifico para programação de add-ins para Office em inglês. Foi a única literatura que encontrei e pra piorar, todos os códigos de exemplos estão escritos em VB. Ah, antes de qualquer coisa, entre no Shell de programação do Excel, lá onde você escreve códigos para as planilhas e leia no help tudo sobre os objetos vba. Me mantenha informado sobre sua evolução. Abaixo alguns links que podem te ajudar: http://dimastr.com/babelfish/ - exemplo de desenvolvimento de de um addin para Outlook. http://www.swissdelphicenter.com/en/objekte.php http://www.swissdelphicenter.ch/en/showcode.php?id=881 http://edn.embarcadero.com/search?q=outlook http://edn.embarcadero.com/search?q=outlookallsites=yallwords=y allsites=yallwords=y http://www.delphikb.com/Default.aspx?db=122111 http://www.delphikb.com/Default.aspx?db=122111cat=0\43\46 cat=0\43\46 http://www.djpate.freeserve.co.uk/AutoOutl.htm#ComposeEmail http://www.imibo.com/imidev/delphi/les/index_3.html#Demo_Extended_MAPI_in_De lphi_projects http://www.borlandtalk.com/re-how-to-automate-outlook-vt56175.html http://msdn.microsoft.com/en-us/library/bb277365.aspx http://www.tech-archive.net/Archive/Development/microsoft.public.win32.progr ammer.messaging/2004-07/ Abçs, Reinaldo De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br] Em nome de Edelson Regis de Lima Enviada em: quarta-feira, 15 de abril de 2009 14:13 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: [delphi-br] Criar Add-in no Excel com o Delphi Olá pessoal! Eu postei essa pergunta há umas duas semanas, e como não obtive respostas vou tentar a sorte novamente... rs Derrepente alguém que manja do assunto não viu a mensagem anterior, e talvez veja essa nova. Preciso criar com o Delphi, um Add-in no Excel (um ítem personalizado no menu do Excel), que executa alguma rotina qualquer. Detalhe: não é exportar dados para o excel, é criar um ítem no menu do excel, onde eu possa extrair dados da minha aplicação, como por exemplo trazer a quantidade de produtos vendidos no mês. Essa rotina seria toda escrita no delphi, compilada, e executada nesse
[delphi-br] Calcular tempo restante
Olá pessoal. Digamos que eu uma ProgressBar com o Max = 1000. Faço um loop de 1 até ProgressBar.Max, e em cima dela eu quero calcular o Tempo Decorrido, e o Tempo Restante que falta para completar o loop (igual ao tempo restante em uma tela de download). O Tempo decorrido é fácil, faço da seguinte maneira: TempoDecorrido := FormatDateTime('hh:nn:ss', TempoAtual - TempoInicial); Para calcular o TempoRestante eu teria que fazer uma regrinha de três: para TempoDecorrido = ProgressBar.Position então X = ProgressBar.Max Aí fiz o seguinte: TempoRestante := (TempoDecorrido * BarraProgresso.Max) / BarraProgresso.Position ; Mas isso não dá certo... Já tentei transformar o TempoDecorrido em segundos antes de fazer a conta, mas dá uns tempos doidos... só no final que dá certo, que é quando a termina o loop e o TempoRestante fica igual a zero. Se alguém souber onde estou comendo bola... Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Criar Add-in no Excel com o Delphi
Olá pessoal! Eu postei essa pergunta há umas duas semanas, e como não obtive respostas vou tentar a sorte novamente... rs Derrepente alguém que manja do assunto não viu a mensagem anterior, e talvez veja essa nova. Preciso criar com o Delphi, um Add-in no Excel (um ítem personalizado no menu do Excel), que executa alguma rotina qualquer. Detalhe: não é exportar dados para o excel, é criar um ítem no menu do excel, onde eu possa extrair dados da minha aplicação, como por exemplo trazer a quantidade de produtos vendidos no mês. Essa rotina seria toda escrita no delphi, compilada, e executada nesse add-in criado no excel. Exemplo: estou digitando minha planilha no excel normalmente, e derrepente eu preciso do valor total das vendas de um determinado período. Vou lá no meu menu personalizado dentro do próprio Excel (add-in), e chamo essa rotina. Pode ser um form que me peça para selecionar o período, sei lá... Depois de selecionado o período, esse add-in busca na base de dados do meu sistema a informação necessária, que no caso é o total das vendas do período escolhido. Sei que isso é possível, inclusive tem um pacote de componentes pagos que faz algo assim, é o Add-in Express for Delphi VCL (http://www.add-in -express.com/downloads/adxvcl.php) Só que é meio salgadinho $$$ rs Se alguém tiver uma luz... Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Pesquisar registro em arquivo XML com TXMLDocument
Então, eu sei que com o clientDataSet dá fazer buscas usando o locate. Mas é que eu queria ver se tem como fazer isso utilizando o TXMLDocument, ou então algum outro recurso que não dependa do XML do clientDataSet, pois o clientDataSet cria uma estrutura própria, e eu quero conseguir ler qualquer estrutura. Nos arquivos da lista tem um material falando sobre XML, e parece que não usa o XMLDocument, mas eu não entendi direito... 2009/4/14 Alisson alss...@yahoo.com.br Esse arquivo não abre com clientdataset? __ Faça ligações para outros computadores com o novo Yahoo! Messenger http://br.beta.messenger.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Pesquisar registro em arquivo XML com TXMLDocument
Boa tarde a todos! Alguem sabe como posso fazer isso? Digamos que eu tenha um XML com a seguinte estrutura: ?xml version=1.0 encoding=UTF-8? CLIENTE rows row ID_CLIENTE = 1 TP_PESSOA = Fisica NM_CLIENTE = Joao da Silva NR_CNPJ_CPF = 111 NM_LOGRADOURO = Rua Vergueiro NR_LOGRADOURO = 500 DS_COMPLEMENTO = Casa 2 NM_BAIRRO = Vila Mariana NM_CIDADE = Sao Paulo NM_UF = SP NR_CEP = 04020001 NR_TELEFONE = 11 - NR_CELULAR = 11 - DS_EMAIL = j...@nexxus.com.br DS_SITE = www.nexxus.com.br/ row ID_CLIENTE = 2 TP_PESSOA = Fisica NM_CLIENTE = Maria da Silva NR_CNPJ_CPF = 222 NM_LOGRADOURO = Rua Vergueiro NR_LOGRADOURO = 200 DS_COMPLEMENTO = Casa 1 NM_BAIRRO = Vila Mariana NM_CIDADE = Sao Paulo NM_UF = SP NR_CEP = 04015000 NR_TELEFONE = 11 - NR_CELULAR = 11 - DS_EMAIL = ma...@nexxus.com.br DS_SITE = www.nexxus.com.br/ row ... / row ... / row ... / /rows /CLIENTE Como eu consigo pesquisar por exemplo o Cliente com com o atributo ID_CLIENTE = 2? Será que tenho que fazer um loop no arquivo XML todo e igualar IF ID_CLIENTE = 2 THEN... ou há uma maneira mais inteligente? Eu sei que dá para eu pesquisar um nó pelo seu nome, mas no caso eu tenho um monte de nó chamado row dentro do nó rows, e eu quero pesquisar pelo conteúdo dos atributos que estão em algum nó row qualquer. Grato, Edelson. [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Quantum Grid - Hierarquia dos level's
Bom dia a todos! Alguém que trabalha com o quantum grid, sabe como identificar o level pai? Isso independente de datasets, diretamente com as células do grid... Digamos que eu defini dois níveis no meu cxGrid, o levelPedido e levelPedidoItem, aí no grid ficaria: Pedido 1 - Item 1 - Item 2 Pedido 2 - Item 1 - Item 2 - Item 3 e assim vai... Eu gostaria de, quando clicar em algum Item do pedido, saber à qual Pedido esse ítem pertence. Tentei de várias maneiras aqui, e ainda não consegui fazer isso... já olhei em vários demos da DevExpress, mas tambem não consegui achar isso. Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Quantum Grid - Hierarquia dos level's
Bom dia Juliano. Bom, isso eu já estou fazendo... rs Eu já trabalho com o Quantum Grid da DevExpress, e fazer um master/detail é tranquilo. A minha dúvida é outra, o que eu quero saber é como identificar quem é o master quando algum detail for selecionado, independente de dataset... Tipo, digamos que eu tenha a tabela Pedido e ItemPedido... quando eu clicar em algum item do pedido, mostrar num ShowMessage por exemplo dizendo a qual Pedido aquele Item pertence. Não sei se consegui ser claro... rs (sem buscar isso no dataset linkado no grid, buscando somente nas proprias linhas do grid) Outra coisa que não consegui, é percorrer todas as linhas do cxGrid quando eu tenho um Master/Detail, usando um for por exemplo. Só consigo quando só tem um nível (level). Não consegui fazer o laço enxergar os subníveis. Abraços, Edelson. 2009/4/8 Juliano Silva - Yahoo smjjuli...@yahoo.com.br Bom dia Cara, o QuantumGrid da DevExpress faz exatamente o que você está precisando, de uma forma bem tranqüila, vou seja, em um único GRID você consegue colocar os resultados de um PAI e também de um FILHO, daí quando você clicar sobre o sinal de + (mais) ele expande o resultado do filho. Atenciosamente Marçal, Juliano Silva. De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br] Em nome de Edelson Regis de Lima Enviada em: terça-feira, 7 de abril de 2009 09:59 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: [delphi-br] Quantum Grid - Hierarquia dos level's Bom dia a todos! Alguém que trabalha com o quantum grid, sabe como identificar o level pai? Isso independente de datasets, diretamente com as células do grid... Digamos que eu defini dois níveis no meu cxGrid, o levelPedido e levelPedidoItem, aí no grid ficaria: Pedido 1 - Item 1 - Item 2 Pedido 2 - Item 1 - Item 2 - Item 3 e assim vai... Eu gostaria de, quando clicar em algum Item do pedido, saber à qual Pedido esse ítem pertence. Tentei de várias maneiras aqui, e ainda não consegui fazer isso... já olhei em vários demos da DevExpress, mas tambem não consegui achar isso. Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas] __ Informação do NOD32 IMON 3994 (20090407) __ Esta mensagem foi verificada pelo NOD32 sistema antivírus http://www.eset.com.br [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Criar Add-in no Excel com o Delphi
Bom dia a todos. Alguém já fez, ou sabe como fazer isso? Preciso criar com o Delphi, um Add-in no Excel (um ítem personalizado no menu do Excel), que executa alguma rotina qualquer. Detalhe: não é exportar dados para o excel, é criar um ítem no menu do excel, onde eu possa extrair dados da minha aplicação, como por exemplo trazer a quantidade de produtos vendidos no mês. Essa rotina seria toda escrita no delphi, compilada, e executada nesse add-in criado no excel. Sei que isso é possível, inclusive tem um pacote de componentes pagos que faz algo assim, é o Add-in Express for Delphi VCL ( http://www.add-in-express.com/downloads/adxvcl.php) Só que é meio salgadinho $$$ rs Se alguém tiver uma luz... Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Criar Add-in no Excel com o Delphi
Olá Pessoal. Se esta mensagem aparecer duas vezes na lista me desculpem... é que postei uma de manhã, e como até agora não apareceu resolvi postar novamente... Alguém já fez, ou sabe como fazer isso? Preciso criar com o Delphi, um Add-in no Excel (um ítem personalizado no menu do Excel), que executa alguma rotina qualquer. Detalhe: não é exportar dados para o excel, é criar um ítem no menu do excel, onde eu possa extrair dados da minha aplicação, como por exemplo trazer a quantidade de produtos vendidos no mês. Essa rotina seria toda escrita no delphi, compilada, e executada nesse add-in criado no excel. Sei que isso é possível, inclusive tem um pacote de componentes pagos que faz algo assim, é o Add-in Express for Delphi VCL ( http://www.add-in-express.com/downloads/adxvcl.php) Só que é meio salgadinho $$$ rs Se alguém tiver uma luz... Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Velocidade do Firebird 2.1
Olá Leonardo. Eu acesso via IBX. Eu nao usei o mesmo arquivo (fisico) do banco. Eu criei todas as tabelas novamente no Firebird, e fiz uma aplicação para converter os dados. O novo banco foi criado igualzinho, e todos os dados foram importados corretamente. A paginação do banco é 8192, no antigo e no novo. O servidor (hardware) tambem é o mesmo. Voce usa os dois bancos? Se usa, nas suas aplicações voce já notou alguma diferença? Os dois bancos tem o mesmo desempenho nas suas aplicações? Para mim o Firebird 2.1 iria até funcionar mais rapido do que o Interbase 7.5, pelos comentários que eu li na internet do pessoal que já fizeram testes. Eu estranhei dos usuários dizerem que o sistema ficou mais lento. Vou ver se descubro o motivo. Abraços, Edelson. Em 16/07/08, Leonardo Quinino [EMAIL PROTECTED] escreveu: Pode ser os métodos que faz o acesso. Que ferramenta usa para acessar os dados pelo seu aplicativo ? DBEXPRESS ? BDE ? MDO ? ADO ? IBX ? IBO ? Outra situação, é que não sei se vc teve o cuidado de observar, que o correto não é só trocar o servidor de dados (interbase para firebird), é bom fazer um backup e restaurar no firebird. Tem muita coisa que pode olhar, tamanho da página de dados, e por ae vai. 2008/7/15 Edelson Regis de Lima [EMAIL PROTECTED] edregis%40ig.com.br: Olá pessoal. Alguem já comparou a velocidade do Firebird 2.1 em relação ao Interbase 7.5? Eu migrei um sistema que usava o Interbase 7.5 para o Firebird 2.1, e os usários estao reclamando que ficou mais lento. A base é iguazinha, nao mudei nada... Será que é mais lento mesmo? Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas] -- Leonardo Quinino [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Velocidade do Firebird 2.1
Olá pessoal. Alguem já comparou a velocidade do Firebird 2.1 em relação ao Interbase 7.5? Eu migrei um sistema que usava o Interbase 7.5 para o Firebird 2.1, e os usários estao reclamando que ficou mais lento. A base é iguazinha, nao mudei nada... Será que é mais lento mesmo? Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Firebird 2.1
Olá pessoal. Tenho um sistema rodando em Interbase 2007, e preciso migrar para o Firebird 2.1 Para migrar, eu entrei no proprio IBExpert, na aba DDL, onde ele me dá todos os scripts de criação da tabela, contraints, trigers, etc... Estava tudo ocorrendo bem, até eu tentar criar a seguinte triger no Firebird 2.1 CREATE TRIGGER TRG_INSERT_DIREITO FOR USUARIO ACTIVE AFTER INSERT POSITION 0 AS begin INSERT INTO DIREITO (COD_USUARIO) VALUES (USUARIO.COD_USUARIO); end Essa triger é só para, quando for incluído um novo usuário, ele cria automaticamente um registro ligado à esse usuário na tabela de direitos. As tabelas e seus respectivos campos foram criados corretamente, porem insiste em dar o seguinte erro: Column does not belong to referenced table. Dynamic SQL Error. SQL error code = -206. Column unknown. USUARIO.COD_USUARIO. At line 5, column 51. Como se ele não encontrasse USUARIO.COD_USUARIO, mas o mesmo existe. Será que mudou a forma de se referenciar as tabelas no Firebird 2.1? Detalhe: eu uso o Dialect 3 tanto no Interbase quanto no Firebird. Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Firebird 2.1
Era isso mesmo... troquei o nome da tabela pelo NEW e deu certo! Obrigado pela ajuda! Edelson. Em 10/07/08, Sérgio [EMAIL PROTECTED] escreveu: O correto seria, ao meu ver, dessa forma, ja que a trigger está sendo criada na tabela USUARIO: INSERT INTO DIREITO(COD_USUARIO) VALUES (NEW.COD_USUARIO); Att, On Wed, 9 Jul 2008 23:30:24 -0300, Edelson Regis de Lima wrote Olá pessoal. Tenho um sistema rodando em Interbase 2007, e preciso migrar para o Firebird 2.1 Para migrar, eu entrei no proprio IBExpert, na aba DDL, onde ele me dá todos os scripts de criação da tabela, contraints, trigers, etc... Estava tudo ocorrendo bem, até eu tentar criar a seguinte triger no Firebird 2.1 CREATE TRIGGER TRG_INSERT_DIREITO FOR USUARIO ACTIVE AFTER INSERT POSITION 0 AS begin INSERT INTO DIREITO (COD_USUARIO) VALUES (USUARIO.COD_USUARIO); end Essa triger é só para, quando for incluído um novo usuário, ele cria automaticamente um registro ligado à esse usuário na tabela de direitos. As tabelas e seus respectivos campos foram criados corretamente, porem insiste em dar o seguinte erro: Column does not belong to referenced table. Dynamic SQL Error. SQL error code = -206. Column unknown. USUARIO.COD_USUARIO. At line 5, column 51. Como se ele não encontrasse USUARIO.COD_USUARIO, mas o mesmo existe. Será que mudou a forma de se referenciar as tabelas no Firebird 2.1? Detalhe: eu uso o Dialect 3 tanto no Interbase quanto no Firebird. Abraços, Edelson. [As partes desta mensagem que não continham texto foram removidas] Sérgio Tecnologia da Informação - TI Tel.: 16 3810 1060 e-mail: [EMAIL PROTECTED] sergio%40altamogiana.com.br Usina Alta Mogiana S/A - Acucar e Alcool [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]