kazzx Posted December 23, 2009 at 11:56 AM Report Share #302002 Posted December 23, 2009 at 11:56 AM 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 More sharing options...
ribeiro55 Posted December 23, 2009 at 11:59 AM Report Share #302003 Posted December 23, 2009 at 11:59 AM Sim, um timer é uma ideia. Se percorreres todas as linhas da datagrid e fizeres a verificação do tempo por cada uma delas, é fácil obter o que pretendes. 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 More sharing options...
kazzx Posted December 23, 2009 at 12:01 PM Author Report Share #302005 Posted December 23, 2009 at 12:01 PM e como posso fazer isso ? :x ps: ultimamente ando constantemente no P@P a tirar dúvidas pois tenho em mãos um projecto que muitas das funcionalidades vão para além dos meus conhecimentos, por isso muitas das minhas questões são para vocês fáceis, mas como não sei, pergunto 😁 Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 12:13 PM Report Share #302010 Posted December 23, 2009 at 12:13 PM 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 More sharing options...
kazzx Posted December 23, 2009 at 12:22 PM Author Report Share #302012 Posted December 23, 2009 at 12:22 PM isso está definido para meia hora certo? Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 12:30 PM Report Share #302014 Posted December 23, 2009 at 12:30 PM Possas, não. 30000 msecs = 30 segundos. Não sei qual é a tua necessidade. A 30 segundos garante que a verificação corre em todos os minutos. 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 More sharing options...
kazzx Posted December 23, 2009 at 02:12 PM Author Report Share #302027 Posted December 23, 2009 at 02:12 PM a minha necessidade é para cada row, ou neste caso para cada pessoa, ao fim de meia hora apareça uma mensagem a dizer 'Hora de abandonar posto' .. Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 02:13 PM Report Share #302028 Posted December 23, 2009 at 02:13 PM A solução que te dei não faz outra coisa senão isso... 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 More sharing options...
kazzx Posted December 23, 2009 at 02:23 PM Author Report Share #302031 Posted December 23, 2009 at 02:23 PM portanto, eu no evento 'Tick' do timer coloquei o código que me deste, mas para ver a mensagem sem esperar meia hora eu mudei de meia hora para 1 minuto, ou seja, em vez de aparecer a hora com 30 minutos depois da hora do sistema, aparecer com 1 minuto depois da hora do sistema. e nenhuma mensagem me é apresentada :x Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 02:31 PM Report Share #302034 Posted December 23, 2009 at 02:31 PM 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 More sharing options...
kazzx Posted December 23, 2009 at 02:45 PM Author Report Share #302039 Posted December 23, 2009 at 02:45 PM 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 More sharing options...
ribeiro55 Posted December 23, 2009 at 02:58 PM Report Share #302042 Posted December 23, 2009 at 02:58 PM Então tens de controlar ao segundo. Trocas a diferença do span para "Seconds" e baixas o interval para 1000. 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 More sharing options...
kazzx Posted December 23, 2009 at 03:05 PM Author Report Share #302043 Posted December 23, 2009 at 03:05 PM eu mudei para Seconds e mudei o interval para 1000, e opah, a cada segundo aparecia uma mensagem e foi uma festa de mensagens aqui no monitor 😉🙂 Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 03:09 PM Report Share #302044 Posted December 23, 2009 at 03:09 PM É 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 More sharing options...
kazzx Posted December 23, 2009 at 03:18 PM Author Report Share #302045 Posted December 23, 2009 at 03:18 PM ahah, vou tentar vou tentar 😉 mudar em vez de aparecer tantas msgbox quantas rows existentes, para fazer aparecer uma msgbox após ter contado 30 segundos de cada nova row ter aparecido no datagrid x) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now