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

[resolvido] Fazendo Um Dicionario


vms

Pergunta

ola pessoal

aqui estou com mais uma duvida

seguinte:

estou tentado fazer um dicionario,fiz uma tabela

com os seguites campos:

_________Type

codigo ___| + | |* |

Palavra __| A | 30 | |

Significado| A | 30 | |

deu certo usando um (BDEdit) como significado

mas queria usar um memo, já tentei colocar memo no Type

mas não funcionou, quando digito o significado no memo

ele é substituido pela a palavra (Memo)

Editado por vms
Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
mas queria usar um memo, já tentei colocar memo no Type

mas não funcionou, quando digito o significado no memo

ele é substituido pela a palavra (Memo)

vms, a visualização no grid vai ficar mesmo desta forma: '(memo)'; Há meios de contornar isto, se você manipular o desenho da célula do DBGrid.

Só acho que do ponto de vista de busca pode ficar um pouco complicado utilizando o tipo memo. Nesta questão, uma palabra será sinônimo da outra e se você vai cadastrar o significado como um memo, não será simples obter o contrário - digitar uma palavra que encontra-se no memo e achar seu sinônimo no campo Palavra. Não sei se me expressei corretamente.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
ola pessoal

aqui estou com mais uma duvida

seguinte:

estou tentado fazer um dicionario,fiz uma tabela

com os seguites campos:

_________Type

codigo ___| + | |* |

Palavra __| A | 30 | |

Significado| A | 30 | |

deu certo usando um (BDEdit) como significado

mas queria usar um memo, já tentei colocar memo no Type

mas não funcionou, quando digito o significado no memo

ele é substituido pela a palavra (Memo)

Hey vms. Um modo muito facil de você exibir um campo do tipo memo e usando o DBMemo basta você indicar na propriedade "DataSet" com o nome da Query ou do DataSet (no caso da palheda Inter Base IBQuery ou IBDataSet)

Um abraço... espero ter ajudado!!!

Link para o comentário
Compartilhar em outros sites

  • 0

valeu Michel e Ruyfreis, consegui

agora queria usar um edit para fazer a busca no DBLookupListBox, vocês sabem como fazer isso?

Det.:a lista de palavra a ser traduzida estar no DBLookupListBox e o significado estar no DBMemo

ah! é possivel adicionar uma palavra no DBGrid entre duas já adicionada? EX: tenho 5 palavras com letra A e cinco com B, quero adicionar uma outra palavra com letra A antes de B

Link para o comentário
Compartilhar em outros sites

  • 0
agora queria usar um edit para fazer a busca no DBLookupListBox, vocês sabem como fazer isso?
Bom, para que você posicione a lista do DBLookupListBox, a propriedade KeyValue do mesmo deve receber o valor a ser pesquisado. Mas, não estou certo de que você conseguirá fazer buscas parciais com esta abordagem - teria que dar uma abaliada.

Det.:a lista de palavra a ser traduzida estar no DBLookupListBox e o significado estar no DBMemo
Não é problema, uma vez que o datasource do DBMemo é o mesmo do DBLookupListBox (propriedade ListSource), ao posicionar na lista, automaticamente o memo mostrará o respectivo valor.

ah! é possivel adicionar uma palavra no DBGrid entre duas já adicionada? EX: tenho 5 palavras com letra A e cinco com B, quero adicionar uma outra palavra com letra A antes de B
se entendi direito, o fato de você definir um índice na tabela, para o referido campo, resolverá este problema. Pelo que você postou inicialmente, você tem apenas o índice primário (pelo campo Codigo - aquele com o "*"). Voce precisará criar um índice secundário, utilizando o campo "Palavra" e no seu programa, você utiliza a propriedade IndexFieldNames ou IndexName para selecionar este índice.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Bom, para que você posicione a lista do DBLookupListBox, a propriedade KeyValue do mesmo deve receber o valor a ser pesquisado. Mas, não estou certo de que você conseguirá fazer buscas parciais com esta abordagem - teria que dar uma abaliada.
a propriedade KeyValue é do DBLookupListBox?

é o mesmo nullValueKey? se for isso é uma lista de atalho(ctrl+A,ctrl+B...)

não encontrei essa propriedade KeyValue

que valor seria esse se eu tenho uma lista de palavra?

se entendi direito, o fato de você definir um índice na tabela, para o referido campo, resolverá este problema. Pelo que você postou inicialmente, você tem apenas o índice primário (pelo campo Codigo - aquele com o "*"). Voce precisará criar um índice secundário, utilizando o campo "Palavra" e no seu programa, você utiliza a propriedade IndexFieldNames ou IndexName para selecionar este índice.

eu fiz isso mas a palavra continua indo pro final da lista e não entra uma e outra

____________________

Alterado por: Micheus

Motivo: Por questão de legibilidade, utilize a opção quote (selecione o texto e utilize o botão que comtém um balãozinho) para comentar o que outro usuário postou.

Link para o comentário
Compartilhar em outros sites

  • 0
a propriedade KeyValue é do DBLookupListBox?
Sim
é o mesmo nullValueKey? se for isso é uma lista de atalho(ctrl+A,ctrl+B...)
Não. Esta propriedade indica que tecla ao ser pressionada, limpa o conteúdo de KeyValue, desfazendo a seleção.
não encontrei essa propriedade KeyValue
Ela é uma propriedade não publicada (published), ou seja, não está disponível em desing-time via Object Inspector - você a utiliza em run-time (na linha de código). Uma olhadinha no help já resolveria. ;)
que valor seria esse se eu tenho uma lista de palavra?
este valor seria um dos existentes na sua lista (aquela no ListSource). Se você digitar no edit 'bananas' e ela existir na sua lista, ao atribuí-la à KeyValue, seu LookupComboBox deverá ser posicionado nesta palavra (por conseguinte, o registro no dataset em ListSource, o que resultará em mostrar no Memo os significados outrora cadastrados)

se entendi direito, o fato de você definir um índice na tabela, para o referido campo, resolverá este problema. Pelo que você postou inicialmente, você tem apenas o índice primário (pelo campo Codigo - aquele com o "*"). Voce precisará criar um índice secundário, utilizando o campo "Palavra" e no seu programa, você utiliza a propriedade IndexFieldNames ou IndexName para selecionar este índice.
eu fiz isso mas a palavra continua indo pro final da lista e não entra uma e outra
Se a ordem é alfabética, isto não tem lógica - há algo errado.

- Que tipo de dataset você ligou ao DBGrid? Table ou Query?

- Está indo para o fim da lista? Voce fala do DBGrid?

Link para o comentário
Compartilhar em outros sites

  • 0

na verdade eu quero que a lista de nomes do DBLookupListBox, fiquem em ordem alfabetica,

por isso que eu quero colocar as palavras entre outras, porque quando tiver palavras "novas"

vou insirindo no dicionario

cara vlw pela tua paciencia!

Link para o comentário
Compartilhar em outros sites

  • 0

eu fiz dessa forma ve se algo errado

seguinte:

criei uma Tabela(paradox)

3campos

codigo(+)(*),palavra(A),significado(M)

salvei como portugues-ingles.db

no programa:criei um datamodule

inseri um datasource e uma table

na propriedade DATASET do datasource setei a table

na propriedade do table:

databasename - nome do banco criado (no BDE)

indexfildname - codigo

tablename - portugues-ingles.db

adicionei os campos no form

adicionei DBNavigator - DATASOURCE=DataModule1.DPortugues_Ingles

adicionei DBGrid - DATASOURCE=DataModule1.DPortugues_Ingles

Adicionei DBLookupListBox

KeyField = codigo

ListField = Palavra em Portugues

Listsouce = DataModule.DPortugues_Ingles

DataSet = TPortugues_Ingles

Adicionei DBMemo

DataField = Significado em Ingles

DataSource = DataModule1.DPortugues_Ingles

DataSet = TPortugues_Ingles

existe alguma forma colacar as palavras em ordem alfabetica no DBLookupListBox sem precisar organizar no DBgrid

Link para o comentário
Compartilhar em outros sites

  • 0
no programa:criei um datamodule

inseri um datasource e uma table

na propriedade DATASET do datasource setei a table

na propriedade do table:

databasename - nome do banco criado (no BDE)

indexfildname - codigo

tablename - portugues-ingles.db

Veja que aqui você definiu como índice o campo Código - sem problemas.

adicionei os campos no form

adicionei DBNavigator - DATASOURCE=DataModule1.DPortugues_Ingles

adicionei DBGrid - DATASOURCE=DataModule1.DPortugues_Ingles

Aqui vemos que sua "navegação" ocorrerá sobre uma tabela ordenada pelo campo Código - sem problemas.

Adicionei DBLookupListBox

KeyField = codigo

ListField = Palavra em Portugues

Listsouce = DataModule.DPortugues_Ingles

DataSet = TPortugues_Ingles

Aqui, se não estou interpretando errado o que você colocou, temos um problema. Voce está ao mesmo tempo utilizando o mesmo dataset para duas coisas: inserção/edição e lookup. Quando você utiliza o lookup, o dataset de onde são obtidos os dados da lista (ListSource) devem ser provenientes de outro dataset que não o utilizado no DataSource ou qualquer outro que venhamos a manipular (no seu caso o DataSource do DBGrid).

existe alguma forma colacar as palavras em ordem alfabetica no DBLookupListBox sem precisar organizar no DBgrid
Posto as observações acima, para fazer isto o que você precisa é, como já mencionei nos outros posts, utilizar um outro dataset para a propriedade ListSource, com ordenação pelo campo Palavra. Pode ser um outro Table, mas você precisará criar um índice secundário pelo campo Palavra e selecioná-lo em IndexName deste dataset. Ou, poderá utilizar uma query, ordenando pelo campo através da cláusuala ORDER BY e, neste caso, você precisará estar atendo ao fato de que, após cada inclusão ou alteração do dataset principal, você precisará fechar e abrir esta query para que a lista seja atualizada.

Este comentário de um post anterior seu:

agora queria usar um edit para fazer a busca no DBLookupListBox, vocês sabem como fazer isso?

Voce ainda pretende utilizar um edit para posicionar o lookup?

Há uma dúvida ainda. Parece-me que você quer selecionar no DBLookupComboBox e posicionar o registro no DBGrid. É isto mesmo? Se for, após a seleção de um item no lookup, você utiliza o valor em KeyValue para posicionar o DBGrid, através de FindKey do dataset ligado ao DBGrid.

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...