DBGrid
Qual é evento no DBGrid para quando se muda de registro, independente de ser através do click do mouse ou pela barra lateral?
Gandalf
Curtidas 0
Respostas
Marcelo.c
28/11/2003
Experimente utilizar o evento AfterScrool do DataSet exibido no DBGrid.
GOSTEI 0
Gandalf
28/11/2003
cara o problema e que eu tenho que fazer isso na form por causa de um loop e eu to usando data module
se tiver outro jeito me fala senão um ponho um dataset na form
muito obrigado!!!
se tiver outro jeito me fala senão um ponho um dataset na form
muito obrigado!!!
GOSTEI 0
Marcelo.c
28/11/2003
Você pode declarar o Form onde está o DBGrid no uses do DataModule e criar o código no evento AfterScrool.
Você pode, por exemplo, utilizar este código:
FormGrid.DBgrid1.Visible:=False;
Assim você está indicando que deseja alterar o DBGrid1 do Formulário FormGrid.
Você pode, por exemplo, utilizar este código:
FormGrid.DBgrid1.Visible:=False;
Assim você está indicando que deseja alterar o DBGrid1 do Formulário FormGrid.
GOSTEI 0
Gandalf
28/11/2003
o problema e que eu preciso modificar o valor de uma string que esta na form
GOSTEI 0
Marcelo.c
28/11/2003
o problema e que eu preciso modificar o valor de uma string que esta na form
Se for uma variável, você pode declará-la como global.GOSTEI 0
Gandalf
28/11/2003
como eu fao iss^?
GOSTEI 0
Marcelo.c
28/11/2003
Você declara a variável logo acima da chamada [b:b13f3a79bc]implementation[/b:b13f3a79bc], juntamente com a declaração do Form:
Então, com o formulário declarado no uses, você pode utilizar esta variável em qualquer outro Form.
var F_Menu: TF_Menu; variavel: String; implementation uses ... ($R *.DFM)
Então, com o formulário declarado no uses, você pode utilizar esta variável em qualquer outro Form.
GOSTEI 0
Gandalf
28/11/2003
cara, a varialvel ja esta neste local porque varias procedures trabalham com ela. no data module eu coloquei assim e deu erro:
FormProducaoPecaConsulta.loop := ´a´;
esta errado esse codigo?
FormProducaoPecaConsulta.loop := ´a´;
esta errado esse codigo?
GOSTEI 0
Marcelo.c
28/11/2003
FormProducaoPecaConsulta.loop := ´a´;
Só por esta linha não dá para dizer o que pode estar errado.Coloque aqui o código da procedure loop e também a mensagem de erro emitida.
GOSTEI 0
Gandalf
28/11/2003
vamos la:
essa loop é uma varial tipo string.
tenho um componente Time que verifica a cada meio segundo se na tabela PECA foi mudado de registro. se foi ele chama uma outra tabela de nome OPX(onde x é o codigo da peça). para saber se o registro foi mudado, eu coloquei no evento BeforeAction do DBNavigator da tabela peça uma procedure que grava como ´a´ a variavel loop. o componente time verifica se loop é igual a ´a´. se for executa uma rotina que muda a prorriedade tablename do ibtableOPx para o novo codigo da peça em que se esta o registro. depois grava com ´b´ a variavel loop. Isso para que nao fique executando essa rotina a cada meio segundo, o que inviabilizaria a navegação pela tabela OPx, ja que ficaria trocando de tabela a cada meio segundo.
Para facilitar a procura das peças coloquei um componente DBGrid na form, por isso preciso saber como faço para o programa perceber que foi mudado de registro pela dbgrid e gravar a varialvel como ´a´.
essa loop é uma varial tipo string.
tenho um componente Time que verifica a cada meio segundo se na tabela PECA foi mudado de registro. se foi ele chama uma outra tabela de nome OPX(onde x é o codigo da peça). para saber se o registro foi mudado, eu coloquei no evento BeforeAction do DBNavigator da tabela peça uma procedure que grava como ´a´ a variavel loop. o componente time verifica se loop é igual a ´a´. se for executa uma rotina que muda a prorriedade tablename do ibtableOPx para o novo codigo da peça em que se esta o registro. depois grava com ´b´ a variavel loop. Isso para que nao fique executando essa rotina a cada meio segundo, o que inviabilizaria a navegação pela tabela OPx, ja que ficaria trocando de tabela a cada meio segundo.
Para facilitar a procura das peças coloquei um componente DBGrid na form, por isso preciso saber como faço para o programa perceber que foi mudado de registro pela dbgrid e gravar a varialvel como ´a´.
GOSTEI 0
Rafael Heise
28/11/2003
Você está usando uma DBGrid certo?
se você está usando DBGrid, com certeza você teve de associar a ela um DataSource. Se você associou um DataSource então associou um TQuery ou TTable ou algum TDataSet. Pois bem... no TDataSource, existe uma propriedade OnDataChange, que é a cada mudança de registro do TDataSet, ou seja, da sua tabela. Use lá ao invés do AfterScroll e talz, porque o AfterScroll comigo não funcionou muito bem... sei lá porque...
Se você usar esse evento, cada vez que você mudar de registros, ele vai disparar esse evento, e ai você pode mudar sua variável para ´a´.
Beleza?
é isso ae...
Pessoal, temos que conhecer os componentes que trabalhamos... dessa forma, acharemos mais rápido a solução de nossos problemas!!!!!
Valeu!!! =)
se você está usando DBGrid, com certeza você teve de associar a ela um DataSource. Se você associou um DataSource então associou um TQuery ou TTable ou algum TDataSet. Pois bem... no TDataSource, existe uma propriedade OnDataChange, que é a cada mudança de registro do TDataSet, ou seja, da sua tabela. Use lá ao invés do AfterScroll e talz, porque o AfterScroll comigo não funcionou muito bem... sei lá porque...
Se você usar esse evento, cada vez que você mudar de registros, ele vai disparar esse evento, e ai você pode mudar sua variável para ´a´.
Beleza?
é isso ae...
Pessoal, temos que conhecer os componentes que trabalhamos... dessa forma, acharemos mais rápido a solução de nossos problemas!!!!!
Valeu!!! =)
GOSTEI 0
Marcelo.c
28/11/2003
Gandalf,
Você não indicou qual a mensagem de erro aparece, mas...
Experimente utilizar apenas:
loop:= ´a´;
Como é uma variável Global, não é necessário indicar o Form de origem.
[quote:0b4453aad6=´zerneo não mediu suas palavras mas ´]Pessoal, temos que conhecer os componentes que trabalhamos... dessa forma, acharemos mais rápido a solução de nossos problemas!!!!![/quote:0b4453aad6]
O evento AfterScrool funciona perfeitamente comigo, o fato de você não ter conseguido utilizá-lo não quer dizer que não funcione.
Talvez o comentário acima também se aplique a você.
Acredito que as pessoas que freqüêntam este fórum o fazem em busca de conhecimento, não sendo, portanto, obrigados a saber tudo. Na minha opinião, comentários deste tipo servem apenas para criar uma aura de desconforto e deixar o autor mal visto entre os membros.
Você não indicou qual a mensagem de erro aparece, mas...
Experimente utilizar apenas:
loop:= ´a´;
Como é uma variável Global, não é necessário indicar o Form de origem.
[quote:0b4453aad6=´zerneo não mediu suas palavras mas ´]Pessoal, temos que conhecer os componentes que trabalhamos... dessa forma, acharemos mais rápido a solução de nossos problemas!!!!![/quote:0b4453aad6]
O evento AfterScrool funciona perfeitamente comigo, o fato de você não ter conseguido utilizá-lo não quer dizer que não funcione.
Talvez o comentário acima também se aplique a você.
Acredito que as pessoas que freqüêntam este fórum o fazem em busca de conhecimento, não sendo, portanto, obrigados a saber tudo. Na minha opinião, comentários deste tipo servem apenas para criar uma aura de desconforto e deixar o autor mal visto entre os membros.
GOSTEI 0
Gandalf
28/11/2003
pois é
não sei o quanto esse cara sabe de delphi
eu não tenho dinheiro para fazer um curso de delphi
esse ano eu tava servindo o exercito, iso quer dizer que ninguem contrata um cara que ta fazendo exercito
minha mae é aposentada publica e meu pai e desempregado, não posso ficar parado dando dispesa para eles
ai aparece uma boa alma e diz: vc quer fazer um softer que controle o meu estoque e controle minhas ordens de serviço.
o que eu deveria fazer, não aceitar efalar para ele passar daqui uns dois anos, quem sabe la eu ja saberia alguma coisa de programação. mas eu aceitei, mesmo sem saber nada de delphi
por isso venho aqui para fazer perguntas cretinas
um abraço para os atenciosos com moloides como eu, aos demais obrigado.
não sei o quanto esse cara sabe de delphi
eu não tenho dinheiro para fazer um curso de delphi
esse ano eu tava servindo o exercito, iso quer dizer que ninguem contrata um cara que ta fazendo exercito
minha mae é aposentada publica e meu pai e desempregado, não posso ficar parado dando dispesa para eles
ai aparece uma boa alma e diz: vc quer fazer um softer que controle o meu estoque e controle minhas ordens de serviço.
o que eu deveria fazer, não aceitar efalar para ele passar daqui uns dois anos, quem sabe la eu ja saberia alguma coisa de programação. mas eu aceitei, mesmo sem saber nada de delphi
por isso venho aqui para fazer perguntas cretinas
um abraço para os atenciosos com moloides como eu, aos demais obrigado.
GOSTEI 0
Marcelo.c
28/11/2003
Não esquenta, Gandalf. Há muitas pessoas no fórum dispostas a ajudar. A melhor coisa que você faz é ignorar e continuar perguntando, afinal ninguém nasceu sabendo. :wink:
Aliás, você não disse se resolveu o problema. Conseguiu ?
Aliás, você não disse se resolveu o problema. Conseguiu ?
GOSTEI 0
Rafael Heise
28/11/2003
Bom, em primeiro lugar não quis fazer esse comentário para ofender ninguém.
Realmente, não nasci sabendo nada, e nunca fiz um curso de delphi. Aprendi tudo sozinho! Trabalhei 1 ano e meio com delphi no início da minha ´carreira profissional´ sem internet. Tive que aprender tudo na marra lendo o help do delphi e os helps que eu tinha na máquina (os que vem com as instalações de componentes e com a instalação do delphi) e nem sabia tanto de ingles. Ainda não sei muito, mas aprendi bastante lendo os helps. Eu não me queimo quando falam algo assim a meu respeito, mas me queimo quando eu vejo que eu consegui aprender me batendo um monte e não desejo isso pra ninguém e pra CONHECIMENTO DE TODOS, eu tento ao máximo ajudar a todos aqui do fórum. (Vejam no fórum a quantidade de mensagens que eu coloquei e a quantidade que eu respondi se duvidam disso!!!). Quando falei que devemos conhecer os componentes, não ACHAM VERDADE??? Você marcelo., se você não conhece os componentes que você trabalha, como faria os seus programas? Eu disse isso para estimular que todos aqueles que programam, que conheçam a sua ferramenta de trabalho, pois assim vai ficar muito mais muito mais fácil fazer, ou você não concordo comigo?? Pense bem e me responda. Não estou chamando ninguém de burro. Nunca fiz isso. Mas quero apenas que as pessoas vejam e repassem isso para todos, pois não é por mim que falo isso, e sim para todos que programam. Quer satisfação maior pra você mesmo do que ter que fazer uma coisa e conseguir fazer sem depender de ninguém. Ou você não se sente bem quando tem um desafio ou um pr
Se ofendi com alguma coisa, me desculpe. E eu realmente não conheço todos os componentes, mas sempre que tenho tempo, leio o help para ver as propriedades que tem, faço programinhas teste simplesmente para ver a funcionalidade de cada evento e cada propriedade. E gostaria apenas de mostrar e estimular isso a todos, pois vejo por mim, que é uma coisa boa!
abraços a todos, e mais uma vez, desculpe por qualquer ofensa.
ps: não sei tudo de delphi!
Realmente, não nasci sabendo nada, e nunca fiz um curso de delphi. Aprendi tudo sozinho! Trabalhei 1 ano e meio com delphi no início da minha ´carreira profissional´ sem internet. Tive que aprender tudo na marra lendo o help do delphi e os helps que eu tinha na máquina (os que vem com as instalações de componentes e com a instalação do delphi) e nem sabia tanto de ingles. Ainda não sei muito, mas aprendi bastante lendo os helps. Eu não me queimo quando falam algo assim a meu respeito, mas me queimo quando eu vejo que eu consegui aprender me batendo um monte e não desejo isso pra ninguém e pra CONHECIMENTO DE TODOS, eu tento ao máximo ajudar a todos aqui do fórum. (Vejam no fórum a quantidade de mensagens que eu coloquei e a quantidade que eu respondi se duvidam disso!!!). Quando falei que devemos conhecer os componentes, não ACHAM VERDADE??? Você marcelo., se você não conhece os componentes que você trabalha, como faria os seus programas? Eu disse isso para estimular que todos aqueles que programam, que conheçam a sua ferramenta de trabalho, pois assim vai ficar muito mais muito mais fácil fazer, ou você não concordo comigo?? Pense bem e me responda. Não estou chamando ninguém de burro. Nunca fiz isso. Mas quero apenas que as pessoas vejam e repassem isso para todos, pois não é por mim que falo isso, e sim para todos que programam. Quer satisfação maior pra você mesmo do que ter que fazer uma coisa e conseguir fazer sem depender de ninguém. Ou você não se sente bem quando tem um desafio ou um pr
Se ofendi com alguma coisa, me desculpe. E eu realmente não conheço todos os componentes, mas sempre que tenho tempo, leio o help para ver as propriedades que tem, faço programinhas teste simplesmente para ver a funcionalidade de cada evento e cada propriedade. E gostaria apenas de mostrar e estimular isso a todos, pois vejo por mim, que é uma coisa boa!
abraços a todos, e mais uma vez, desculpe por qualquer ofensa.
ps: não sei tudo de delphi!
GOSTEI 0
Rafael Heise
28/11/2003
ograma pra fazer e consegue fazê-lo, sem que um monte de gente tenha que vir fazer pra você? Se você não se sente bem, então o que você sente quando compila alguma coisa e a mesma funciona? Ou você faz isso simplesmente para ´ter o seu´ [salário] no fim do mês??? Se você pensa assim, você não trabalha nisso com amor. Eu digo com orgulho, que estou nessa profissão porque gosto muuuuuito de programar. E me sinto bem com isso. Então, quando falo algumas coisas, que para alguns que não conseguem VER o lado bom disso, é para estimular o aprendizado, e fazer com que a pessoa aprenda a se virar sozinha, para não depender de outros, pois se algum dia ele tiver que trabalhar sem internet, e numa tarde ele tiver que resolver alguma coisa, como ele vai fazer? Ele vai ter que se virar sozinho. Como dizem por isso, [b:5212ebcd49]´deve se ensinar a pescar e não dar o peixe´[/b:5212ebcd49]. Então, é isso ae.
GOSTEI 0
Marcelo.c
28/11/2003
zerneo,
Me desculpe, você tem toda a razão quando diz que devemos ´ensinar a pescar e não apenas dar o peixe´.
Também tem toda razão quanto ao conhecimento dos componentes, aliás este é um dos motivos que me fazem freqüêntar este fórum. Aprendo muito respondendo e observando as respostas postadas.
Estou ciente do quanto você ajuda os membros do fórum, e isto despertou em mim muito respeito em relação a você.
Eu comecei na programação em uma época em que a internet apenas engatinhava no Brasil, então entendo perfeitamente quando você fala a respeito do prazer de descobrir, sozinho, como implementar as soluções imaginadas ou escritas no papel.
Talvez a minha interpretação da sua mensagem tenha sido equivocada, mas acredito que a forma como você colocou tenha induzido a isto. De toda forma eu não precisava ter comentado nada sobre isso, pelo menos não publicamente.
Me desculpe mais uma vez e se precisar de qualquer coisa...
Estamos aí...
Me desculpe, você tem toda a razão quando diz que devemos ´ensinar a pescar e não apenas dar o peixe´.
Também tem toda razão quanto ao conhecimento dos componentes, aliás este é um dos motivos que me fazem freqüêntar este fórum. Aprendo muito respondendo e observando as respostas postadas.
Estou ciente do quanto você ajuda os membros do fórum, e isto despertou em mim muito respeito em relação a você.
Eu comecei na programação em uma época em que a internet apenas engatinhava no Brasil, então entendo perfeitamente quando você fala a respeito do prazer de descobrir, sozinho, como implementar as soluções imaginadas ou escritas no papel.
Talvez a minha interpretação da sua mensagem tenha sido equivocada, mas acredito que a forma como você colocou tenha induzido a isto. De toda forma eu não precisava ter comentado nada sobre isso, pelo menos não publicamente.
Me desculpe mais uma vez e se precisar de qualquer coisa...
Estamos aí...
GOSTEI 0
Aroldo Zanela
28/11/2003
Colegas,
Parabéns a ambos pela maturidade em que demonstraram ao resolver este ´conflito´. Um bom profissional precisa ter inteligência emocional além da competência técnica.
Lembrem-se que erros honestos fazem parte de nosso crescimento e a nossa habilidade em resolve-los é que nos diferenciam no mercado de trabalho.
Parabéns a ambos pela maturidade em que demonstraram ao resolver este ´conflito´. Um bom profissional precisa ter inteligência emocional além da competência técnica.
Lembrem-se que erros honestos fazem parte de nosso crescimento e a nossa habilidade em resolve-los é que nos diferenciam no mercado de trabalho.
GOSTEI 0