Página 1 de 1
Centralizar dados no TextBox e outros
Enviado: Janeiro 24th, 2012, 9:32 am
por Ligeirinho
Como centralizar, dados no testbox?
Como forçar aos formularios à abrir na aba de Manutenção?
Como forçar o Foco para o botão salvar após o último campo escolhido?
Como colocar o foco no botão incluir (adicionado na barra de botões inferior), ao clicar no botão salvar, após o registro ser salvo?
Como fazer para; ao abrir o form fazer com que o foco esteja no botão incluir, ativo, (não precisando dar dois cliques) na barra de botões inferior (o botão foi adicionado)
Como centralizar a escrita em um label?
Como eu faria para escrever o dia da semana automáticamente em um textBox, relacionado à uma data num (TextBox) campo anterior?
Desculpem se forem perguntas de iniciante, mas eu tentei pesquisar e não encontrei estas informções, obrigado!
Re: Centralizar dados no TextBox e outros
Enviado: Janeiro 25th, 2012, 9:34 am
por Ligeirinho
1- Para centralizar dados no TextBox eu encontrei esta solução, mas não sei onde colar e nem como usar no campo, agradeço qualquer ajuda.
// para texto a esquerda
function AlinhaE(Texto : String; Tamanho : Integer) : String;
begin
Texto := Trim(Texto);
while length(Texto) < Tamanho do
Texto := Texto + ' ';
Result := Texto;
end;
//para texto centralizado
function AlinhaC(Texto : String; Tamanho : integer) : String;
var
metade: integer;
begin
Texto := Trim(Texto);
metade := ((Tamanho-Length(Texto)) div 2);
while Length(Texto)+metade < Tamanho do
Texto := ' ' + Texto;
result := Texto;
end;
// para texto a direita
function AlinhaD(Texto : String; Tamanho : Integer) : String;
begin
Texto := Trim(Texto);
while length(Texto) < Tamanho do
Texto := ' ' + Texto;
Result := Texto;
end;
2 - Os tipos de form que me agradaram abrem na Pesquisa, ainda gostaria de abrir na aba Manutenção, não consegui...
3 - Este me parece que eu consegui
4 - Como nos forms, que tem uma botoeira superior, existe o atalho, para incluir, o problema(a meu ver) é contornável
5 - mesma situação da 4
6 - não é tão necessária...
7 - por enquanto ainda não descobri...
Re: Centralizar dados no TextBox e outros
Enviado: Janeiro 25th, 2012, 2:56 pm
por Gustavo
Olá,
1- Como centralizar, dados no testbox?Segue um código exemplo que foi usado em um edit e pode ser usado para a sua situação.
Coloque no evento OnChange do textbox.
procedure EditChange(Sender: TObject);
var
vl_label : TLabel; //variável do tipo Label
begin
vl_label := TLabel.Create(self); //criamos um label
WITH vl_label DO
BEGIN
Font.Name := TEdit(sender).Font.Name; //pegamos a fonte usada no edit
Caption := TEdit(sender).Text; //pegamos o conteúdo do edit
SendMessage(TEdit(sender).Handle, EM_SETMARGINS, EC_LEFTMARGIN,
(TEdit(sender).Width-vl_label.Width) div 2); //centraliza no label e retorna para o edit
END;
vl_label.Free;
end;2-Como forçar os formularios à abrir na aba de Manutenção?Existem duas maneiras:
Primeira: existe um formulário chamado Modelo_MDI_CS que abre na aba Manutenção.
Segunda: Em outro tipo de formulário faça isso:
No formshow comente as linhas:
//InicializaConsultasSalvas(TabelaPrincipal, AbaConsulta, ConsultasSalvas);
//TelaConsulta;
//GridConsulta.SetFocus;E coloque abaixo de GridConsulta.SetFocus as duas linhas abaixo;
telamanutencao;
incluir(self);Já irá para inclusão automaticamente.
3- Como forçar o Foco para o botão salvar após o último campo escolhido?No evento OnExit do campo que você queira coloque:
btnsalvar.setfocus;4- Como colocar o foco no botão incluir (adicionado na barra de botões inferior), ao clicar no botão salvar, após o registro ser salvo?
O botão incluir é um speedbutton e não permite ser focado, porém você pode fazer assim.
No botão Salvar coloque acima da linha GridConsulta.SetFocus:
SalvarRegistro := False; // essa linha se encontra um pouco mais abaixo, apenas recorte e cole aqui
if EInclusao then //Apenas se for inclusão
incluir(self);
exit;
GridConsulta.SetFocus;// Essa linha permanece aqui, o código acima é a alteração "nova"5- Como fazer para; ao abrir o form fazer com que o foco esteja no botão incluir, ativo, (não precisando dar dois cliques) na barra de botões inferior (o botão foi adicionado).
Ver resposta da pergunta número 2.
6- Como centralizar a escrita em um label?Em propriedades da label vá em Alignment e selecione a opção taCenter.
7- Como eu faria para escrever o dia da semana automáticamente em um textBox, relacionado à uma data num (TextBox) campo anterior?Se entendemos direito, você quer que o text box receba por extenso a data do campo anterior.
Duas maneiras:
Primeira: No evento OnExit do seu campo data coloque o seguinte código:
var
data: TDateTime;
formatada: string;
begin
{codificação...}
// vamos obter a data do campo do tipo data
data := strtodate(xdateedit1.text);
// vamos formatar
formatada := FormatDateTime('dddd, dd "de" mmmm "de" yyyy',
data);
// vamos exibir a data por extenso no edit
edit2.text:= formatada;
end;
A outra maneira seria você usar as funções: Função Dia, Função Mes, Função Ano.
Transforme o campo que você quer que receba a data por extenso em calculado e atribua as funções nele.
Essas Funcões se encontram no manual do Xmaker e Métodos Pré-definidos
Segue um link do forum para baixar 800 Dicas Delphi, que acreditamos que será muito útil para você e outros usuários.
Contém várias funções e dicas muito interessantes.viewtopic.php?f=4&t=286Qualquer outras dúvidas volte a postar.
Conte Sempre Conosco!
Re: Centralizar dados no TextBox e outros
Enviado: Janeiro 27th, 2012, 5:15 pm
por Ligeirinho
Bem, desculpe a insistência mas agora só falta o dia da semana, não consegui do jeito ensinado, claro que eu não estou conseguindo dizer o que preciso, vou tentar de novo;
Tenho um campo data, 'DES_DATA', e um campo string; 'DIA_DA_SEMANA'
no lostfocus do campo 'DES_DATA' preciso atribuir o nome do dia da semana ao campo; 'DIA_DA_SEMANA', automáticamente.
nas 800 dicas achei esta Função que é a ideal, porém não sei usá-la eu tentei mas não consegui...
Function DiadaSemana(Data : String) : string;
const
semana : array[1..7] of string = ('Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira', 'Sábado');
begin
Result := semana[DayOfWeek(strtodate(Data))]
end;
Obrigado pela ajuda!
Re: Centralizar dados no TextBox e outros
Enviado: Janeiro 29th, 2012, 10:27 pm
por Ligeirinho
TabGlobal.DDesignacao.DIA_DA_SEMANA.Conteudo := DiadaSemana(DES_DATA.TEXT);
Designacao.Past(1053) Error: Declaration expected but identifier 'TabGlobal' found Designacao.Pas(1098) Warning: Text after
Veja só eu, coloquei da forma acima a tentativa de usar a function citada acima, coloquei a function no final de toda a escrita de códigos do formulário, e depois em OnExit do campo DES_DATA, tentei fazer funcionar a função para estrair o dia da semana da data, deu o erro abaixo, já tinha a validação do campo e eu coloquei imediatamente abaixo, se alguém puder me ajudar agradeço, Obrigado!
Re: Centralizar dados no TextBox e outros
Enviado: Janeiro 31st, 2012, 8:12 am
por Ligeirinho
procedure DES_DATAKeyPress(Sender: TObject;var Key: Char);
if (dayofweek(strtodate(DES_DATA.text)))=1 then
DIA_DA_SEMANA = 'Domingo';
else if (dayofweek(strtodate(DES_DATA.text)))=7 then
DIA_DA_SEMANA = 'Sábado';
else if (dayofweek(strtodate(DES_DATA.text)))=2 then
DIA_DA_SEMANA = 'Segunda - Feira';
else if (dayofweek(strtodate(DES_DATA.text)))=3 then
DIA_DA_SEMANA = 'Terça - Feira';
else if (dayofweek(strtodate(DES_DATA.text)))=4 then
DIA_DA_SEMANA = 'Quarta - Feira';
else if (dayofweek(strtodate(DES_DATA.text)))=5 then
DIA_DA_SEMANA = 'Quinta - Feira';
else if (dayofweek(strtodate(DES_DATA.text)))=6 then
DIA_DA_SEMANA = 'Sexta - Feira';
Tentei deste jeito, aproveitando uma dica encontrada na NET, e deu o seguinte erro:
Designacao.Pas(1090): Declaration expected but 'IF' found Designacao.Pas: ';' expected but '.' fou
não sei do que se trata, mas vou continuar tentando, se alguém quiser me ajudar agradeço!
Re: Centralizar dados no TextBox e outros
Enviado: Janeiro 31st, 2012, 9:15 am
por Gustavo
Re: Centralizar dados no TextBox e outros
Enviado: Fevereiro 1st, 2012, 2:23 pm
por Ligeirinho
Desisti de tentar, usei o format, e aceitei do jeito que é, aumentei o tamanho do campo para 40 e cabeu tudo:
begin
DIA_DA_SEMANA.Text := FormatDateTime('dddddd', TabGlobal.DDesignacao.DES_DATA.Conteudo);
end;
por exemplo: SEGUNDA-FEIRA, 12 DE FEVEREIRO DE 2012
A PROP??SITO O ADAPTER FUNCIONOU DIREITINHO!
Mas eu vou aprender ainda a usar function's (funções e procedures) com certesa....