Jump to content

Objecto TIMER para datagrid


kazzx

Recommended Posts

no datagridview tenho 3 colunas.

exemplo: uma coluna apresenta irá apresentar nomes, com várias rows, outra coluna serão combobox's, e outra coluna é a hora, onde cada row apresenta por exemplo 12H30 (sempre mais meia hora do que a hora do sistema) . irão aparecer N rows.

eu queria saber como fazer aparecer uma MSGBOX com o nome da primeira coluna a dizer " O utilizador tal tem de abandonar o PC", quando chegar à hora apresentada na coluna.

se na linha 5 a hora for igual à hora do sistema então faz aparecer uma msgbox, e para cada row.

para isso precisarei de um timer?

fiz-me entender?

Link to comment
Share on other sites

No timer, com um intervalo largo (não precisa de ser muito apertado. 30000 no interval é suficiente):

        For DRI As Integer = 0 To DGView.Rows.Count - 2
            Dim TempHora As Date = CDate(DGView.Rows(DRI).Cells(1).Value.ToString)
            Dim TempSpan As TimeSpan = TempHora - CDate(Now.ToShortTimeString)
            If TempSpan.Minutes < 0 Then
                MsgBox(DGView.Rows(DRI).Cells(0).Value.ToString & ", baza do pc")
            End If
        Next

Assumindo que a coluna 0 é o nome e a coluna 1 é a hora.

Vê lá se entendes, o que aí está. Não tenhas problemas em tirar dúvidas.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

30000 msecs não é meia hora. São 30 segundos.

Usa breakpoints. É fácil de entenderes o problema se seguires o fluxo do código.

Por o sim e por o não, verifica também se por acaso não deixaste o timer Enabled=False 😉

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

oh esquece, eu não tinha mudado o número da coluna, tens razão.

mas tipo, ao fim de 30 segundos aparece uma msgbox, mas aparecem tantas msgbox quantas rows tenho.

por exemplo, se na row do nome tiver o nome 'Manel' passado 30 segundos aparece uma msgbox, mas se estiveram lá mais rows com os nomes, aparece uma msbox para cada row e não deveria.

só deveria aparecer uma msgbox ao fim de 30 segundos (neste caso) para cada row. faço-me entender?

por exemplo: faço aparecer um novo nome no datagridview às 14h:40m:00s e faço aparecer outro nome às 14h:40m:10s, aparecem duas msgbox's seguidas, e não deveria. deveria sim aparecer uma msgbox às 14:40:30s e outra às 14:40:40s , tipo isso.

Link to comment
Share on other sites

É normal.

Tu agora é que tens de controlar o que tens de fazer com isso.

Podes sacar o gajo da lista, ou marcar como "Já avisado" para evitar que o ciclo o volte a apanhar.

Tu é que sabes o que isso está a fazer e tu é que sabes o que queres que aconteça depois e mais importante, tu é que sabes o que isso é.

Já chega de peixe pah, agarra mas é na cana e faz-te ao lago 😉

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.