Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Existe algum botão que me retorne True/False?


Duduh_Capixaba

Pergunta

Olá!

Pelo título acho que já deu pra sacar o que eu quero né?! Um botão que, ao ser pressionado, retorne um valor. Eu sempre usei um componente de terceiros, o RxSwitch, que funciona muito bem, retorna True/False em sua propriedade StateOn. Só que esse botão tem a aparência de um interruptor, e eu estou trabalhando no projeto de outra pessoa, que já tem botões normais do Delphi (Button, BitBtn). Ou seja, se eu colocar esse botão que eu costumo usar, o projeto vai ficar "estranho".

Preciso de uma solução nativa do Delphi, um botão que tenha a aparência dos botões padrões. Eu estava pensando em algo tipo:

- Botão clicado

aparência: afundado, com a cor mais clara

valor: true

- Botão não clicado

aparência: normal, com a cor normal

valor: false

Será que não dá pra configurar isso em um dos botões do próprio Delphi? Vlw!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

perfeito cara! do jeito que eu queria :)

só pra entender melhor...

a propriedade AllowAllUp permite que o botão se mantenha na posição de pressionado e depois permite voltá-lo ao normal;

a propriedade Down é a que identifica se ele está pressionado ou não;

a propriedade GroupIndex eu não faço a mínima idéia! mas as outras duas propriedade acima só funcionam se esta estiver setada com um valor maior que 0.

se alguém puder explicar, eu agradeço. do mais, o problema foi resolvido. vlw Micheus!

Link para o comentário
Compartilhar em outros sites

  • 0

voce pode fazer algo assim para qualquer botao para retornar true ou false

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  n : integer;
  tipo : boolean;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
   n := n + 1;
   if n = 1 then
      begin
         tipo := true;
         label1.Caption := 'true';  // mostra o resultado
      end
   else
      begin
         tipo := false;
         label1.Caption := 'false'; // mostra o resultado
         n := 0;
      end;
end;

end.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

funcionou tb! mas no esquema do SpeedButton eu não preciso de código, já que ele já possui uma propriedade que me indica se ele está pressionado ou não.

esse código acima seria mais pra saber se um botão foi pressionado alguma vez, ou algo do tipo. mas funciona beleza! vlw pela resposta

Link para o comentário
Compartilhar em outros sites

  • 0
só pra entender melhor...

a propriedade AllowAllUp permite que o botão se mantenha na posição de pressionado e depois permite voltá-lo ao normal;

a propriedade Down é a que identifica se ele está pressionado ou não;

a propriedade GroupIndex eu não faço a mínima idéia! mas as outras duas propriedade acima só funcionam se esta estiver setada com um valor maior que 0.

Exato. Isso porque, a princípio o speedbutton é quase um botão comum. A funcionalidade de operação em grupo, implica na definição de um grupo. Que é o que você faz quando atribui um número a propriedade GroupIndex.

Isse quer dizer que você pode ter vários speedbuttons em um form, sendo que cada qual opera de acordo com a configuração daquele grupo.

Bom acho que vai ficar mais claro com um exemplo (veja anexo).

O SpeedButton só tem um "problema": não recebe foco, ou seja, você não chega nele via teclado - só com o mouse.

Tentando contornar isto, e mantendo suas características, o que costumo fazer é definir "atalhos" que executam a ação down do botão (trato o evento OnKeyDown do form).

Abraços

SpeedButton.zip

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...