Ir para conteúdo
Fórum Script Brasil

Rodrigo Flores

Membros
  • Total de itens

    16
  • Registro em

  • Última visita

Tudo que Rodrigo Flores postou

  1. x_Vovo_x Este deve ser um componente de terceiro, ou então uma "gambiarra" feita com um panel + grid + botão. Creio que existem componentes na Web bem mais bonitos que este, mas tu podes fazer algo parecido utilizando o evento click do combobox para realizar essa tarefa. []'s
  2. Bom dia, Micah. Creio que esse Tbl em TblAluno, identifique que tu está utilizando um TTable. Se a afirmação for verdadeira, tu não fez como o informado. Na mensagem anterior, eu disse que a consulta necessita de componentes especificados no prórpio exemplo, no caso a TQuery. Tu não vais conseguir montar uma consulta SQL em uma Table. Tu podes até usar o Locate da table, para localizar pelo nome e/ou o Filter e Filtered para "filtrar" pelo sexo, mas não creio que seja a melhor opção. Se tu entende um pouco de SQL, Faça testes com a Query, se não entende, aconcelho que estude SQL, porque em sistemas grandes tu vais usar, e muito. []'s
  3. Boa tarde, jedinaru. Tu podes tentar assim: No evento OnShow do formulário MenuQueTuQuerDesabilitar.Enabled := NomeDaTabela.FieldByName('TIPO').AsString = A; Faça isso para todos os botões/menus que tu quiser testar. []'s
  4. Tu podes criar variáveis globais para guardar os valores. Assim tu podes recuperar esse valor a qualquer momento no form. Por exemplo: private { Private declarations } Coluna_Atual, Coluna_Anterior, Linha_Atual, Linha_Anterior : Integer; No On Create do formulário, tu zera as variáveis: procedure TForm1.FormCreate(Sender: TObject); begin Coluna_Atual := 0; Coluna_Anterior := 0; Linha_Atual := 0; Linha_Anterior := 0; end; e no evento onclick, do StringGrid, tu altera as posições: procedure TForm1.StringGridClick(Sender: TObject); begin Coluna_Anterior := Coluna_Atual; Linha_Anterior := Linha_Atual; Coluna_Atual := StringGrid.Col; LinhaAtual := StringGrid.Row; end; Tu podes até colocar um botão no form e testar o retorno dos dados: procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(StringGrid.Cells[Coluna_Anterior,Linha_Anterior]); end; PS.: Deu pra perceber que eu gosto do ShowMessage, né? hehehe Qualquer dúvida, posta aí. []'s
  5. Boa tarde, Manoel. Faz no onclick do StringGrid. procedure TForm1.StringGridClick(Sender: TObject); begin ShowMessage(StringGrid.Cells[StringGrid.Col, StringGrid.Row]); // StringGrid.Col - Coluna atual // StringGrid.Row - Linha Atual end; []'s
  6. Tu podes utilizar o evento OnExit do StringGrid. Para pegar o valor da célula tu tens que saber qual célula deseja buscar, por exemplo. Coluna 1, linha 1 StringGrid1.Cells[1,1]; Coluna 10, linha 5 StringGrid1.Cells[10,5]; []'s
  7. Creio que não seja isso Manoel, afinal o clGray apenas pinta a fonte de cinza, ele quer o efeito "vazado" que o label fica quando o enabled está false. Como sujestão eu diria para ti colocar label no panel e controlar o enabeld deles pelo enabels do panel. Label1.Enabeld := Panel1.Enabeld; Label2.Enabeld := Panel1.Enabeld; Label3.Enabeld := Panel1.Enabeld; Assim tu teria o efeito desejado e teria certeza que somente quando o panel estivesse com o enabled em false.
  8. Bom dia Micah, Supondo que o nome de sua tabela seja ALUNO. Inclua um Query (BDE) e um DataSource (Data Access). Renomeie a Query para QAluno e o DataSource para DSQAluno. No DataSource sete a propriedade DataSet para QAluno. Coloque os seguintes componentes no seu Form: - RadioGroup (Standard) - Edit (Standard) - Button (Standard) - DBGrid (Data Controls) - StatusBar (Win32) No RadioGroup configure as seguintes propriedades: - Caption: Sexo - Items: 1ª linha - Feminino 2 ª linha - Masculino - Name: rgSexo Obs.: Na propriedade Columns tu podes definir quantas colunas terá teu radiogroup. No Edit configure as seguintes propriedades: - Name: edName - Text : "Apague o valor que tiver aqui" No Button configure as seguintes propriedades: - Name: btPesquisa - Caption: Pesquisa *Evento OnClick: A consulta que irá dentro do onclick do botão será a seguinte: QAluno.SQL.Clear; QAluno.SQL.Add('SELECT * FROM ALUNO'); // Recupera todos os campos da tabela para a sua pesquisa QAluno.SQL.Add('WHERE SEXO = :SEXO'); // Onde o sexo seja definido na váriavel bind QAluno.SQL.Add('AND NOME LIKE :NOME'); // e o nome seja consultado pela parte digitada QAluno.SQL.Add('ORDER BY NOME'); // ordenando a pesquisa por nome do aluno case rgSexo.ItemIndex of 0 : QAluno.ParamByName('SEXO').AsString := 'F'; 1 : QAluno.ParamByName('SEXO').AsString := 'M'; end; QAluno.ParamByName('NOME').AsString := '%' + edNome.Text; QAluno.Open; No DBGrid configure as seguintes propriedades: - DataSource: DSQAluno * Dê 2 cliques ou clique na propriedade columns. Nessa caixa você deve colocar os campos que deseja que apareça no Grid. Eu colocarei apenas o nome: > Pressione o botão Add New (ou pressione Insert), > Clique sobre o novo campo que surgiu (0 - TColumn), > no campo FieldName escreva NOME, Aqui tu podes "brincar" com as configurações da coluna, faça alterações e testes. > Na propriedade Title, tem o Caption. Escreva: Nome > A propriedade Width seta a largura da coluna. Pode fechar a caixa e a nova coluna irá aparecer no grid. Na StatusBar configure as seguintes propriedades: - Name: Barra - Panels: > Pressione o botão Add New (ou pressione Insert), Na propriedade text digite: 'Total de registros 0' No Evento AfterOpen da QAluno digite o seguinte Barra.Panels[0].Text := 'Total de registros ' + QAluno.RecordCount; // RecordCount conta a quantidade de registros trazidos pela consulta. Agora é só dar uma organizada. Esse exemplo é muito básico e tu podes melhorar e muito, mas já é uma idéia. qualquer dúvida posta aí. []'s
  9. Eu, particularmente, prefiro criar uma sequence a criar um campo auto-incremento. Uma sequence e uma trigger pra rodá-la e pronto. Sem muito trabalho, mas como a tabela do amigo é dbf, aí fica difícil, sem SGDB.
  10. O problema está porque na edição você não especifica o código. Faça algo mais ou menos assim: QRLogin.Sql.clear; QRLogin.Sql.add('SELECT * FROM TAB_USUARIOS'); QRLogin.Sql.add('WHERE LOGIN = :LOGIN'); QRLogin.Sql.add('AND CODUSUARIO <> :CODUSUARIO'); QRLogin.ParamByName('LOGIN').AsInteger := Login.Text; // Deve ser informado a partir do Edit na tela de alteração QRLogin.ParamByName('CODUSUARIO').AsInteger := CodUsuario; // Deve ser recuperado da tabela que mostra os registros QRLogin.Open; Assim, tu impede que a busca, na alteração, faça referência ao registro que está sendo editado. []'s
  11. Jéssica, fiz os exercícios em Delphi e não nomeei os componentes. Espero que realmente te interesse pela matéria, afinal os exercícios são para praticar e consequentemente entender a matéria Exercício 1) begin if StrToInt(Edit1.Text) > StrToInt(Edit2.Text) then Edit3.Text := IntToStr(StrToInt(Edit1.Text) - StrToInt(Edit2.Text)) else Edit3.Text := IntToStr(StrToInt(Edit2.Text) - StrToInt(Edit1.Text)); end; Exercício 2) begin Edit5.Text := IntToStr(Abs(StrToInt(Edit4.Text))); end; Exercício 3) var Media : Real; begin Media := (StrToInt(Edit6.Text) + StrToInt(Edit7.Text) + StrToInt(Edit8.Text) + StrToInt(Edit9.Text)) / 4; if Media >= 5 then Edit10.Text := 'Aprovado. Média ' + FormatFloat('0.00', Media) else Edit10.Text := 'Reprovado. Média ' + FormatFloat('0.00', Media); end; Exercício 5) begin if Edit11.Text > Edit12.Text then if Edit11.Text > Edit13.Text then if Edit12.Text > Edit13.Text then Edit14.Text := Edit13.Text + ', ' + Edit12.Text + ', ' + Edit11.Text else Edit14.Text := Edit12.Text + ', ' + Edit13.Text + ', ' + Edit11.Text else Edit14.Text := Edit12.Text + ', ' + Edit11.Text + ', ' + Edit13.Text else if Edit12.Text > Edit13.Text then if Edit11.Text > Edit13.Text then Edit14.Text := Edit13.Text + ', ' + Edit11.Text + ', ' + Edit12.Text else Edit14.Text := Edit11.Text + ', ' + Edit13.Text + ', ' + Edit12.Text else Edit14.Text := Edit11.Text + ', ' + Edit12.Text + ', ' + Edit13.Text; end; Não fiz o 4º exercício porque é bem parecido com o 3º e fica como um "exercício" pra ti, já que te dei uma "mãozinha". []'s e tenha um pouco mais de força de vontade, é para teu próprio bem.
  12. Já tentou usar o debug? Coloca uns BreakPoint na aplicação, onde tu acredita que pode ocorrer um erro e vai pressionando F8. Tenta verificar o código no projeto (.dpr)
  13. Bom dia Pablo. Não sei se é isto que você realmente quer, mas tu podes somar e mostar no label a cada alteração do Edit ou cada vez que o cursos sair do edit. Supondo que eu esteja correto, tu podes somar os gols sofridos e mostrar assim procedure TForm1.GolsVisitante1Change(Sender: TObject); begin TotalGolsVisitante.Caption := IntToStr(StrtoInt(GolsVisitante1.Text) + StrtoInt(GolsVisitante2.Text) + StrtoInt(GolsVisitante3.Text)); end; ou assim procedure TForm1.GolsVisitante1Exit(Sender: TObject); begin TotalGolsVisitante.Caption := IntToStr(StrtoInt(GolsVisitante1.Text) + StrtoInt(GolsVisitante2.Text) + StrtoInt(GolsVisitante3.Text)); end; Isso tu faz em cada edit. Ou ainda tu podes utilizar um TTimer (aba System) e a cada X segundos refazer o cálculo (meio sem futuro). []'s
  14. Bom dia, Não vejo a necessidade de criar uma função para mostrar mensagens ao usuário, visto que o Delphi possui o Application.MessageBox, que é possível alterar o caption do form, a mensagem do corpo e os botões possuem seu caption em português (Ok, Cancela, Sim, Não), podendo ser tratado da mesma forma que os demais. Procure no Help do Delphi por MessageBox. []'s
  15. Rodrigo Flores, em um documento no Excel, com esta situação que você postou (celulas mescladas + autofit), o autofit não funciona. Como os recursos que usamos no Delphi, são provenientes do próprio Excel, então não haverá como fazê-lo (pelo menos até o Office 2000) - o jeito será ajustar a altura da célula via código (propriedade RowHeight). Abraços Era justamente isso que eu temia. Tenho algumas informações que variam muito de tamanho. Mas muito obrigado pela ajuda, Micheus. []'s
  16. A função autofit ...Columns.AutoFit funciona perfeitamente, ajustando o tamanho da coluna ao tamanho da palavra adicionada a ela, mas o mesmo não acontece com as linhas ...Rows.AutoFit, que apenas mantém a linha com o mesmo tamanho das demais. Gostaria de saber se existe uma forma de ajustar o tamanho das linhas automaticamente, a partir do que existe dentro da mesma, visto que uso o WrapText para ajustar as palavras dentro das células mescladas. Já consultei Nika-soft, Microsoft developer network e até mesmo algumas páginas do próprio fórum como esta. Se alguém já passou por este caso e possa me ajudar. Agradeço. PS.: Comecei a utilizar a exportação para Excel essa semana. Abraço.
×
×
  • Criar Novo...