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

DBgrid com varias cores.


Arrais Júnior

Pergunta

tenho um DBgrid e nele e exibido frases com esse formato NOME [*****] (*****)

eu queria saber se existe como fazer com que o que tivesse entre [ ] ficasse vermelho e o que estivesse dentro de ( ) ficasse verde...

ex: NOME [*****] (*****)

aproveitando....

o WebBrowser possui uma margem padrão na parte superior e na parte esquerda, existe como eu retirar totalmente essas margens??

outra, tipo, eu uso isso para filtrar: adoquery1.Filter := 'NOMEDOCAMPO like ' + #39 + '%' + 'EDIT1.TEXT' + '%' + #39 ;

gostaria de saber como faço para aplicar dois filtros simultaneamente ....porque tipo, quando eu faço uma filtragem e vou passar pra segunda, o segundo filtro toma como base todo o banco de dados, e não apenas os que restaram do primeiro filtro.

obrigado.

Editado por Arrais Júnior
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

ok, muito obrigado pelas resposta jhonas, você como sempre, muito atencioso e rapido....

bom...eu li o que você me passou, porem, devido ao fato deu ter iniciado o uso de select agora...ainda não consigo perceber certas coisas....

não consegui resolver o problema de filtrar dentro de um filtro...

eu lembro que há algum tempo, uns 2 anos, eu utilizei um cod que tipo SALVAVA o primeiro filtro, e o segundo filtro era somente em cima dos dados filtrado inicialmente...

eu utilizo para filtrar

if edit1.text = '' then

exit;

adoquery1.Filter := 'nome like ' + #39 + '%' + Edit1.Text + '%' + #39 ;

adoquery1.Filtered := True;

se você puder, tem como me passar o cod de como ficaria para usar dois desses filtros, sendo que o segundo filtro seria aplicado apenas no resultado do primeiro..

obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0
se você puder, tem como me passar o cod de como ficaria para usar dois desses filtros, sendo que o segundo filtro seria aplicado apenas no resultado do primeiro..

a lógica é criar uma tabela temporaria com a mesma estrutura da tabela onde será aplicado o primeiro filtro

ao aplicar o filtro na tabela os registros desse filtro deverão ser copiados para a tabela temporaria

nessa tabela temporaria pode-se então aplicar um segundo filtro, onde conterão apenas os registros que voce precisa

OBS: tente fazer, se não conseguir depois eu posto um exemplo

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

2 maneiras:

a primeira usando o ClietDataSet

http://www.inf.ufsc.br/~prass/artigos/artigo07.html

na segunda maneira, voce copia a tabela e depois deleta todos os registros para poder usar ( essa será a tabela temporaria )

//- Coloque um Button no Form;
 //- Altere o evento OnClick deste Button conforme abaixo: }

procedure TForm1.Button1Click(Sender: TObject);
var
  SR: TSearchRec;
  I: integer;
  Origem, Destino: string;
begin
  I := FindFirst('c:\Origem\*.*', faAnyFile, SR);
  while I = 0 do begin
  if (SR.Attr and faDirectory) <> faDirectory then begin
  Origem := 'c:\Origem\' + SR.Name;
  Destino := 'c:\Destino\' + SR.Name;
  if not CopyFile(PChar(Origem), PChar(Destino), true) then
  ShowMessage('Erro ao copiar ' + Origem + ' para ' + Destino);
  end;
  I := FindNext(SR);
  end;
end;
OBS: isso é apenas um exemplo, voce terá que fazer as modificações para o seu uso Outra função que podera usar
function CopiaEstruturaTabela(TableEmpty:Boolean;FromDir,SrcTblName,ToDir, DestTblName:String): Boolean;
//
// Copia uma tabela podendo ou não levar seu conteúdo para outro lugar
//
// Requer a BDE declarada na clausula uses da unit
//
var
DBHandle        : HDBIDB;
ResultCode      : DBIResult;
Src, Dest       : Array[0..255] of Char;
SrcTbl, DestTbl : TTable;
begin
if (ToDir <> '') and (FromDir <> '') then
  begin
  if (FromDir[length(FromDir)]= '\') then
     begin
     delete(FromDir,length(FromDir),1);
     end;
  if (ToDir[length(ToDir)] = '\') then
     begin
     delete(ToDir,length(ToDir),1);
     end;
  SrcTbl := TTable.Create(nil);
  DestTbl := TTable.Create(nil);
  try
     SrcTbl.DatabaseName := FromDir;
     SrcTbl.TableName := SrcTblName;
     SrcTbl.Open;
     DBHandle := SrcTbl.DBHandle;
     SrcTbl.Close;
     ResultCode := DbiCopyTable(DBHandle,false,
     StrPCopy(Src,FromDir + '\' + SrcTblName),nil, StrPCopy(Dest,ToDir + '\' + DestTblName));
     if (ResultCode <> DBIERR_NONE) then
         begin
         Result := False;
     end
     else
         begin
         if TableEmpty then
            begin
            With DestTbl do
                 begin
                 Close;
                 TableName := DestTblName;
                 DataBaseName := ToDir;
                 Exclusive := True;
                 EmptyTable;
                 Exclusive := False;
                 end;
            end;
         Result := True;
         end;
  finally
     SrcTbl.Free;
     DestTbl.Free;
  end;
  end;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

ahhh dor de cabeça....kkkkk

tou usando o modelo

procedure TForm1.Button1Click(Sender: TObject);
var
  SR: TSearchRec;
  I: integer;
  Origem, Destino: string;
begin
  I := FindFirst('c:\Origem\*.*', faAnyFile, SR);
  while I = 0 do begin
  if (SR.Attr and faDirectory) <> faDirectory then begin
  Origem := 'c:\Origem\' + SR.Name;
  Destino := 'c:\Destino\' + SR.Name;
  if not CopyFile(PChar(Origem), PChar(Destino), true) then
  ShowMessage('Erro ao copiar ' + Origem + ' para ' + Destino);
  end;
  I := FindNext(SR);
  end;
end;

problemas....tipo...ele tah copiando o arquivo de banco de dados...porem copia o arquivo completo...

se eu filtrar a tabela...e depois salvar o banco temporario, ele ficara igual o arquivo original...

...bem...tou muito confuso com isso tudo...não tenho noçao de como fazer...

mesmo assim..obrigado pela ajuda jhonas vou levar a frente a aplicaçao sem utilizar dois filtros...

Link para o comentário
Compartilhar em outros sites

  • 0

TIPO...vou citar a aplicaçao que desejava fazer...

tipo....uma grid exibindo o banco de dados que possui 2 campos

NOME e TIPO

existe 3 radiobuttons, FILMES, SERIADOS e ANIMES

quando eu clicasse em um dos radiobuttons, seria aplicado o primeiro filtro...observando o campo TIPO

ok...ate ai ok..

ai teria um EDIT onde eu iria fazer o segundo filtro que observaria o CAMPO NOME....se limitando a filtrar apenas os dados que estao na grid, a qual já foi filtrada anteriormente.

bem..e isso...vlws

Link para o comentário
Compartilhar em outros sites

  • 0

Voce já disvirtuou complentamente do tópico inicial que era DBgrid com varias cores

problemas....tipo...ele tah copiando o arquivo de banco de dados...porem copia o arquivo completo...

'c:\Origem\*.*' usando coringas ele copia todos os arquivos

Ou voce faz assim usando tabela temporaria ou pode usar sql para filtrar os registros

abraço

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...