GARANTIR DESCONTO

Fórum SpeedButton com enabled = true ou enabled = false? #338010

17/02/2007

0

Pessoal, eh o seguinte, tenho varios sppedbuttons com o caption ja escrito, ai quando uso este codigo abaixo
procedure TForm6.SpeedButton1Click(Sender: TObject);
begin
dm.tagenda.append;
dm.tagenda.fieldbyname(´horaini´).value:=speedbutton1.caption;
dm.tagenda.Post;
speedbutton1.enabled:=false;
end;
Ele transporta para uma coluna de um dbgrid, e depois fica com o enabled=false, para nao transportar novamente para o dbgrid. Ok tudo certo ateh aki, o problema esta quando preciso deletar dentro do dbgrid assim
procedure TForm6.BitBtn1Click(Sender: TObject);
begin
if application.messagebox(Pchar(´Deseja Excluir:´+ #13+ dm.tagenda.FieldByName(´horaini´).AsString), Pchar(´Excluir Associado ´+Self.Caption), MB_ICONQUESTION
+ MB_YESNO) = IDYES then begin

dm.tagenda.delete;
end;
end;
Gostaria de fazer no caso se aquela coluna nao tem mais o caption que esta no sppedbutton, o speedbutton voltar a ficar com o enabled = true.

Bom eh o seguinte, o que eu quero inventar eh um tipo de agenda que tenha ja os horarios no caption do sppedbuton por isso quando transporto para o dbgrid ele fica com o enabled=false, mais se alguem quiser desmarcar aquele horario gostaria de o speedbutton ficar livre(enabled=true) novamente para poder agendar outra pessoa.


Bom a ideia eh + ou - isso.

Pode ateh ser simples de fazer, mas to sem ideia como fazer :D

Grato a ajuda de todos
Adriano.


Adriano_servitec

Adriano_servitec

Responder

Posts

19/02/2007

Adriano_servitec

Tambem to com uma duvida sobre no caso esse speedbutton ficar enabled=false, no caso se eu fechar o programa e abrir novamente ele nao vai mais ficar com o enabled=false, outra coisa no caso teria que comparar o horario e a data tambem, pois se eu quiser usar o dia 15/02 e no dbgrid ja estiver alguns horarios agendados o speedbutton deve permanecer com o enabled=false daqueles que ja estao agendado, mais se eu abrir o dia 17/02 por exemplo e nao tiver nada agendado naquele horario os mesmos speedbuttons devem estar diponiveis

A ideia tambem a principio seria usar o componente monthcalendar, para jogar as datas para o dbgrid, mais aceito ideias Very Happy

Obs: Estou falando do speedbutton, mais pode ser outro componente que ao clicar fazer o mesmo efeito
Seria algo + ou - assim

 if NOT query1.isEmpty then
  begin
    with Query1 do
    begin
      close;
      sql.clear;
      sql.text := ´select * from teste WHERE data = :pdata  and hora = :phora order by hora´; 
      parambyname(´pdata´).asdate := strtodate(dbedit1.text);
      ParamByName(´phora´).astime := strtotime(speedbutton1.caption);//o correto seria TSpeedbutton eu acho
      speedbutton1.enabled:=false; //se tiver gravado no banco, tem que ficar com o enabled false
      open;
    end;


Mais acho que nao esta correto assim e alem do mais acho que deve usar o nome do TComponente tipo TSpeedButton e nao os nomes de cada um, bom eh soh uma ideia, mais acho que nao eh por aqui ainda.

Se alguem puder me dar uma dica, fico agradecido. :D

Adriano


Responder

Gostei + 0

20/02/2007

Marco Salles

vamos por partes , não que eu não queira estender o assunto, é que stou muito sem tempo...

Tambem to com uma duvida sobre no caso esse speedbutton ficar enabled=false, no caso se eu fechar o programa e abrir novamente ele nao vai mais ficar com o enabled=false,


Uma saida talves para isto é usar um arquivo Ini de configuraçaões

[CONFIG]
Pspeedbutton1=True
Pspeedbutton2=False
Pspeedbutton3=False
Pspeedbutton4=True

Para ler

uses
IniFiles


var
Config:TIniFile;
Pspeedbutton1,Pspeedbutton2,Pspeedbutton3,Pspeedbutton4:String;
i:integer;
begin
Config:=TIniFile.Create(CaminhoDoSeuArquivoIni);
Pspeedbutton1:=ReadString(´Config´,´Pspeedbutton1´,Pspeedbutton1);
Pspeedbutton2:=ReadString(´Config´,´Pspeedbutton1´,Pspeedbutton2);
Pspeedbutton3:=ReadString(´Config´,´Pspeedbutton1´,Pspeedbutton3);
Pspeedbutton4:=ReadString(´Config´,´Pspeedbutton1´,Pspeedbutton4);
Config.free
form1.speedbutton1.enabled:=StrToBool(Pspeedbutton1);
form1.speedbutton2.enabled:=StrToBool(Pspeedbutton2);
form1.speedbutton3.enabled:=StrToBool(Pspeedbutton3);
form1.speedbutton4.enabled:=StrToBool(Pspeedbutton4);


com esta idéia voce recupera ascondiçoes do TspeedButon..

[b:59d88fb951]Para persistir as alterações Grave no Arquivo Config.Ini[/b:59d88fb951]

Se interrou na idéia Pesuise sobre Gravar a Idéia é a mesma

[b:59d88fb951]P:S ... Use Try Finally para proteger o código[/b:59d88fb951]


Responder

Gostei + 0

21/02/2007

Adriano_servitec

Olah amigo, bom a ideia parece boa, mas como seria para rastrear o banco de dados todo? Tipo se eu tiver assim

os captions do sppedbt assim

sb1.caption 08:00
sb2.caption 09:00

ai no dbgrid gravado assim
hora---------data-----------tipo
08:00-------21/02/2007----0

Bom no dia 21/02/2007 tenho agendado somente as 08:00 ai automaticamente o SB1 teria que ficar com o enabled = false neste dia, mais passando pela data do computador para outro dia que seja 25/02/2007 ele deve voltar a ficar com o enabled = true. Bom a ideia eh a principio verificar a data e o horario ja gravado no banco de dados que vou agendar para deixar o sbutton com enabled = true ou false.

Me parece estar meio complicado, ou eu nao estou entendendo.
:(


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar