 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
mikelustosa Aprendiz

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 193
|
Enviada: Seg Dez 17, 2012 1:56 am Assunto: Colorir Dias em Calendário - Agenda Médica |
|
|
Moderadores do Active-Delphi escreveu: |
Tópico editado por: johnny-walker
Motivo: Regras do fórum
Título Original: COLORIR DIAS EM CALENDÁRIO - AGENDA MÉDICA |
Olá amigos,
Como posso colorir os dias de um TMonthCalendar de acordo com os dias que os médicos atendem?
Gostaria que se o médico atendesse por exemplo somente nas terças e sextas, o calendário mostrasse esses dias com uma cor diferente.
Já baixei o componente JEDI mas não sei como usar.
Ouvi dizer que com o TMonthCalendar só dá pra por negrito.
Mas como fazer isso??
Urgente!!
Obrigado. |
|
Voltar ao Topo |
|
 |
fernandovr Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012 Mensagens: 379 Localização: São Paulo
|
Enviada: Seg Dez 17, 2012 1:45 pm Assunto: Re: COLORIR DIAS EM CALENDÁRIO - AGENDA MÉDICA |
|
|
mikelustosa escreveu: | Olá amigos,
Como posso colorir os dias de um TMonthCalendar de acordo com os dias que os médicos atendem?
Gostaria que se o médico atendesse por exemplo somente nas terças e sextas, o calendário mostrasse esses dias com uma cor diferente.
Já baixei o componente JEDI mas não sei como usar.
Ouvi dizer que com o TMonthCalendar só dá pra por negrito.
Mas como fazer isso??
Urgente!!
Obrigado. |
Pra colocar negrito, da pra fazer do seguinte modo no evento OnGetMonthInfo
Código: | procedure TForm1.MonthCalendar1GetMonthInfo(Sender: TObject;
Month: Cardinal; var MonthBoldInfo: Cardinal);
begin
if Month = 12 then { Dezembro}
MonthCalendar1.BoldDays([3,21,28, 10, 20, 25, 31],MonthBoldInfo);
if Month = 1 then { Janeiro}
MonthCalendar1.BoldDays([1,15,18, 30, 20],MonthBoldInfo);
end; |
No exemplo coloquei os meses de dezembro e janeiro, é só seguir a mesma lógica pros outros meses, e outros dias.
Agora sobre colorir eu nunca pesquisei sobre isso não, se eu encontrar algo eu aviso, ou se outro membro do forum souber e poder responder eu tb gostaria de saber como q faz.
Espero ter ajudado, abraços |
|
Voltar ao Topo |
|
 |
mikelustosa Aprendiz

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 193
|
Enviada: Seg Dez 17, 2012 2:15 pm Assunto: |
|
|
Certo.
O porém é que eu preciso disso ai, só que tem que ser de forma dinâmica.
Ou seja, os dias que devem estar em negrito são os dias que o médico atende, gravado no meu BD e não em um parâmetro como você postou!
Mas mesmo assim já está me ajudando muito ! valeu!
UP! |
|
Voltar ao Topo |
|
 |
fernandovr Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012 Mensagens: 379 Localização: São Paulo
|
Enviada: Seg Dez 17, 2012 2:23 pm Assunto: |
|
|
Ahh sim, mas ai agora é só vc implementar o código
Ali ja está um exemplo da onde coloca os dias, é só substituir pelos do seu BD.
Ai você q vai ver como é melhor, se através de loops por mês, ou se todo mês será igual, ai depende muito do seu uso mesmo.
Sobre as cores ainda estou procurando se eu achar uma forma melhor eu posto aqui.
Abraços |
|
Voltar ao Topo |
|
 |
mikelustosa Aprendiz

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 193
|
Enviada: Seg Dez 17, 2012 3:19 pm Assunto: |
|
|
Blz. Vou fazer a adaptação e depois coloco o resultado!
valeu amigo! |
|
Voltar ao Topo |
|
 |
fernandovr Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012 Mensagens: 379 Localização: São Paulo
|
Enviada: Seg Dez 17, 2012 3:27 pm Assunto: |
|
|
mikelustosa escreveu: | Blz. Vou fazer a adaptação e depois coloco o resultado!
valeu amigo! |
Blz amigo, só não te ajudo com o banco de dados pq não tenho experiência com BD, mas se tiver mais duvidas posta ai q tem outros usuários no forum com experiências nessa área.
Abraços |
|
Voltar ao Topo |
|
 |
Diegohilario3 Aprendiz

Registrado: Sábado, 17 de Novembro de 2007 Mensagens: 143
|
Enviada: Seg Dez 17, 2012 6:41 pm Assunto: |
|
|
Cara, eu estou no início de um projeto e faço algo mais ou menos que você citou mas no meu caso monto um calendário dentro de um stringgrid a partir de um Tcalendar.Depois trabalho em cima do evento onDrawCell do stringgrid para pintar os dias de forma dinâmica que for necessário.
Código: | StringGrid1.Canvas.Brush.Color := clAqua;
StringGrid1.Canvas.Font.Color := clHighlightText;
StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[Acol,Arow]); |
 |
|
Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Seg Dez 17, 2012 8:06 pm Assunto: |
|
|
Se vc quer minha opinião, vc não pode fazer desta forma.
Visto que em um dia vc tem mais de uma consulta e várias especialidades, assim vc não consegue mostrar todas.
Eis aí como resolvi tal, a propósito tudo que vc vê é uma stringgrid que customizei de acordo com minhas necessidades.
Falta customizar os dois calendários do lado que são bem feios.
Não nego que deu muito trabalho e se eu tivesse utilizado algum componente da tms tinha sofrido bem menos.
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I
Editado pela última vez por johnny-walker em Seg Dez 17, 2012 8:32 pm, num total de 2 vezes |
|
Voltar ao Topo |
|
 |
mikelustosa Aprendiz

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 193
|
Enviada: Seg Dez 17, 2012 8:26 pm Assunto: |
|
|
Eu faço da seguinte forma:
Primeiro eu testo qual é o dia da semana, após verificado eu preencho um ComboBox com os horários disponível.
Segue parte do código:
if lbl_diaDaSemana.Caption = 'domingo' then
begin
with dataModule1.adoq_horarios do
if (fields.FieldByName('Hi_dom').Value = Null) or (fields.FieldByName('Hf_dom').Value = Null) or (fields.FieldByName('In_dom').Value = Null) or (fields.FieldByName('Hi_dom').Value = '') or (fields.FieldByName('Hf_dom').Value = '') or (fields.FieldByName('In_dom').Value = '') then
begin
application.MessageBox('Não existem horários neste dia','Mensagem',MB_OK + MB_ICONEXCLAMATION );
cbox_horario.Items.Clear;
abort;
end else
begin
vHi := fields.FieldByName('Hi_dom').AsString;
vHf := fields.FieldByName('Hf_dom').AsString;
vIn := '00'+ ':' + fields.FieldByName('In_dom').AsString;
hInicio := strToTime(Copy(vHi,1,5));
hFim := strToTime(Copy(vHf,1,5));
hIntervalo := strToTime(Copy(vIn,1,5));
hHora := hInicio;
cbox_horario.Items.Clear;
repeat
cbox_horario.Items.Add(TimeToStr(hHora));//Preenche os Horarios
hHora := hHora + hIntervalo;
until (hHora >= hFim);
marcacaoSQL;
O que eu preciso é que pelo menos fique em negrito os dias da semana que o Médico atende. |
|
Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Seg Dez 17, 2012 8:37 pm Assunto: |
|
|
Que Delphi é este e qual componente vc está utilizando?
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
Voltar ao Topo |
|
 |
Diegohilario3 Aprendiz

Registrado: Sábado, 17 de Novembro de 2007 Mensagens: 143
|
Enviada: Ter Dez 18, 2012 1:20 am Assunto: |
|
|
johnny-walker, qual componente você usa para melhorar a parte gráfica dos componentes do Delphi ? |
|
Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Ter Dez 18, 2012 8:42 am Assunto: |
|
|
realmente ficou show sua tela, jhonny.
pode dar umas dicas de quais componentes ta usando?
to tentando fazer uma agenda com DevXpress, mas nao to gostando mto nao. é mto complicado configurar, e se vc muda alguma coisa, se nao marcar o q foi alterado, pra voltar ao estado anterior, baubau rsrsrs, apesar de ser um otimo componente, precisa de mta customizacao _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Ter Dez 18, 2012 11:35 am Assunto: |
|
|
Tudo que vc vê é uma stringgrid e uma paintbox que utilizo para desenhar os horários da agenda.
O restante foi feito tudo na mão mesmo pessoal e no caso do paintbox foi feito as demarcações começando de 00:00 com divisões a cada 30 minutos, claro que poderia fazer um interválo menor, mas não considerei este fato tão relevante.
Inclusive o calendário foi feito com um stringrid tb, mas deu trabalho chegar onde chegou, mas o paintbox pode ser substituido por uma celula do stringgrid que pode ser mesclada, claro que tive outras idéias.
No caso onde tem um compromisso na hora, tb é um stringgrid, só que ASSUNTO, CLIENTE, CONTATO estão numa única célula em cor amarela, e a seleção está em cor rosea.
Exceto o planejador de agenda que foi feito utilizando-se do componente jedi jvcl JvTFDays com adaptações por minha parte, visto que o demo dele é um pouco ruim e adaptado ao paradox em vez de firebird/interbase.
Eu já tinha mostrado esta tela antes, há bastante tempo atrás, mas não era funcional todos os recursos, este é bem dizer completo.
Mas sinceramente não sabia que um planejador era tão complicado de se fazer, pois bem dizer não utilizei componentes de terceiros, excetuando-se pelo JvTFDays.
Esta agenda inclusive tem bastante semelhança com a do Outlook, falta implementar a lixeira de eventos que deixei para depois.
Outra, a semana de trabalho tb utiliza um stringgrid de segunda a sexta e tb mostra os eventos em cada dia da semana, tb mostrando os dias do mes do cabeçalho, assim 17 - SEGUNDA, 18 - TERÇA...
E na semana completa utilizo listbox todas flats, assim abordo tudo e facilita bastante para o usuário ter seus compromissos em mãos.
Há os contatos que vai de 0 a 9 e de A..Z, além de ter um botão que fecha a conexão com o banco.
Tenho ainda tarefas e anotações que tem funcionamennto bem parecido com o Outlook, mas adaptei vários conceitos, ficou até bom.
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I
Editado pela última vez por johnny-walker em Ter Dez 18, 2012 10:10 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Ter Dez 18, 2012 11:42 am Assunto: |
|
|
Diegohilario3 escreveu: | johnny-walker, qual componente você usa para melhorar a parte gráfica dos componentes do Delphi ? |
A propósito, tudo que vc vê é componente free ou que veio no delphi, sendo que a parte em azul é um JvNavPanelHeader do jedi.
O que percebi quando estava desenvolvendo tal, vi que o delphi 7 é muito limitado em termos de componentes, com o 2010 teria bem mais recursos com menos programação, além de um visual ainda melhor no 2010.
Demora-se bem mais para ter resultados bons e sua customização é difícil.
Outra coisa que esqueci de mensionar é que utilizo o xpmanifest, mas background color para a toolbar do jedi tem de ser desativada, caso contrário fica negra, como se fosse uma máscara.
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I
Editado pela última vez por johnny-walker em Ter Set 23, 2014 8:45 pm, num total de 2 vezes |
|
Voltar ao Topo |
|
 |
fernandovr Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012 Mensagens: 379 Localização: São Paulo
|
Enviada: Ter Dez 18, 2012 12:30 pm Assunto: |
|
|
Ficou muito loco mesmo, eu tb prefiro criar sem utilizar componentes de terceiros, da muito mais trabalho, mas fica independente e mais fácil de atualizar para outras versões depois.
Parabéns Johnny, ficou show.
Um dia quero aprender a fazer tudo isso tb. Ja tenho em q me inspirar  |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|