ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Colorir Dias em Calendário - Agenda Médica
Ir à página 1, 2, 3  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
mikelustosa
Aprendiz
Aprendiz


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 193

MensagemEnviada: Seg Dez 17, 2012 1:56 am    Assunto: Colorir Dias em Calendário - Agenda Médica Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
fernandovr
Membro Junior
Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012
Mensagens: 379
Localização: São Paulo

MensagemEnviada: Seg Dez 17, 2012 1:45 pm    Assunto: Re: COLORIR DIAS EM CALENDÁRIO - AGENDA MÉDICA Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
mikelustosa
Aprendiz
Aprendiz


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 193

MensagemEnviada: Seg Dez 17, 2012 2:15 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
fernandovr
Membro Junior
Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012
Mensagens: 379
Localização: São Paulo

MensagemEnviada: Seg Dez 17, 2012 2:23 pm    Assunto: Responder com Citação

Ahh sim, mas ai agora é só vc implementar o código Very Happy

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
Ver o perfil de Usuários Enviar Mensagem Particular
mikelustosa
Aprendiz
Aprendiz


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 193

MensagemEnviada: Seg Dez 17, 2012 3:19 pm    Assunto: Responder com Citação

Blz. Vou fazer a adaptação e depois coloco o resultado!

valeu amigo!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fernandovr
Membro Junior
Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012
Mensagens: 379
Localização: São Paulo

MensagemEnviada: Seg Dez 17, 2012 3:27 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Diegohilario3
Aprendiz
Aprendiz


Registrado: Sábado, 17 de Novembro de 2007
Mensagens: 143

MensagemEnviada: Seg Dez 17, 2012 6:41 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Seg Dez 17, 2012 8:06 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
mikelustosa
Aprendiz
Aprendiz


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 193

MensagemEnviada: Seg Dez 17, 2012 8:26 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Seg Dez 17, 2012 8:37 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Diegohilario3
Aprendiz
Aprendiz


Registrado: Sábado, 17 de Novembro de 2007
Mensagens: 143

MensagemEnviada: Ter Dez 18, 2012 1:20 am    Assunto: Responder com Citação

johnny-walker, qual componente você usa para melhorar a parte gráfica dos componentes do Delphi ?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Ter Dez 18, 2012 8:42 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Ter Dez 18, 2012 11:35 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Ter Dez 18, 2012 11:42 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
fernandovr
Membro Junior
Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012
Mensagens: 379
Localização: São Paulo

MensagemEnviada: Ter Dez 18, 2012 12:30 pm    Assunto: Responder com Citação

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 Very Happy
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página 1, 2, 3  Próximo
Página 1 de 3

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB