Treeview virtual

Este controle usa um paradigma diferente para a gestão de árvores do que outros controles desse tipo
Baixe Agora

Treeview virtual Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • LGPL
  • Nome do editor:
  • Mike Lischke
  • Sistemas operacionais:
  • Windows All
  • Tamanho do arquivo:
  • 707 KB

Treeview virtual Tag


Treeview virtual Descrição

O Virtual TreeView foi projetado para ser um controle TreeView construído a partir do solo. Mais de 5 anos de desenvolvimento tornaram um dos mais flexíveis e avançados controles de árvores disponíveis hoje. A Virtual TreeView começa com a reivindicação para melhorar muitos aspectos das soluções existentes e introduz algumas novas tecnologias e princípios que não estavam disponíveis antes. Como o nome já indica, esse controle usa um paradigma diferente para o gerenciamento de árvores do que outros controles desse tipo. Não sabe nada sobre os dados que gerencia (exceto seu tamanho), nem mesmo as legendas de um nó. Tudo é recuperado do aplicativo por meio de eventos (ou descendentes por métodos substitutos). TreeView virtual foi cuidadosamente projetado e totalmente testado. O controle provou seu conceito, bem como o uso diário já em muitos produtos comerciais e projetos freeware. Principais características: Geral: Virtual TreeView como Propriedade do Documento EditorVirtual TreeVirejo é extremamente rápido. Adicionando um milhão de nós leva apenas 700 milissegundos *! Isso torna atualmente o TreeView mais rápido disponível publicamente no mercado Delphi / BCB. Virtual TreeView tem uma impressão de pé de memória muito pequena. Ao alocar apenas cerca de 60 bytes por nó (na árvore de string, a árvore de base usa apenas 56 bytes) é bem preparado para realizar um milhão deles. Virtual TreeView é otimizado para acesso de alta velocidade. Leva apenas 0,5 segundos para atravessar um milhão de nós *, dependendo da validação necessária e dos estados de validação do nó. A multisselection é suportada, incluindo seleção restrita para que apenas os nós de um determinado nível inicial possam ser selecionados. Muito esforço foi colocado no desenvolvimento de algoritmos eficazes, e. Para permitir a modificação de um conjunto de seleção já grande ainda interativamente. Desenhar a árvore inteira para um bitmap ou a impressora é suportada pelo método central TBASevirtualtree.paintree. As mensagens wm_print e wm_printclient são tratadas corretamente, que permitem que as coisas como desenhe uma árvore em um bitmap (por exemplo, para janelas em camadas ou para implementar a queda animada download de controles que usam vt como controle suspenso). Há um evento tbasevirtualtree.hint para exibir dicas específicas do nó. Há um evento tbasevirtualtree.ongethelpcontext para recuperar os IDs de contexto de ajuda específica do nó. Isso inclui a travessia automática da árvore e do controle pai da janela, como é invocado quando o usuário pressionou F1 Há um evento tbasevirtualtualtree.ongetpopupmenu para recuperar menus pop-up específicos do nó, inclui travessia de árvore automática. Os botões do mouse médio e direito podem ser usados além do botão esquerdo e suporte tudo o que é possível com o botão esquerdo (arrastamento, seleção etc.). Esses botões alternativos podem ser trocados, é claro. Uma imagem de fundo fixa pode ser usada na árvore e pode receber um determinado deslocamento, e. para simular fundos compartilhados. Estilo quente para nós é suportado (assim como links em uma janela do navegador). Um cursor especial pode ser atribuído para esta tarefa. String Trees Suporte Texto estático Socalled que aparece após a legenda de um nó (em todas as colunas) e que pode ser formatado de forma diferente para a legenda, mas não pode ser editada, selecionada etc. Um modo de coluna de Auto Span é suportado, o que permite que uma coluna ocupa mais espaço para sua legenda se houver colunas vazias à sua direita. Isso evita o recorte de legendas longas, mas ainda permite usar várias colunas. Um nó pode ser selecionado em todas as colunas (isso é comutável), bem como editado, tornando o TreeView virtual de um tipo de grade também. A tecla tabulador pode ser usada para alternar o foco entre as células. Existe uma opção especial (toentextensions) para suportar tarefas específicas de grade. Os nós podem ter alturas individuais e o alinhamento vertical das imagens e linhas de um nó podem ser ajustados individualmente. Virtual TreeView expõe seus estados internos como pendente de arrastar ou editar eventos, seleção multi ou expansão em andamento. Usando esta informação, um aplicativo pode otimizar sua execução de código (atualizações de estado etc.). Classificando um nó é suportado por meio de uma chamada definida em comparação de volta. Além disso, uma árvore pode ser definida para o tipo automático. Dicas podem conter várias linhas de texto e espelhar o alinhamento e direcionalidade do nó ou coluna que eles são exibidos. Para sua animação deslizamento e mistura alfa está disponível. Pesquisa incremental com várias opções e direções também está disponível. Auto rolagem da área do cliente acontece quando o mouse fica perto das fronteiras ao arrastar e desenhar selecionar (seleção multi). tbasevirtualtree.defaultNodeheight e tvirttualstringtree.defaultText pode ser usado para evitar definir muitos nós explicitamente para o mesmo valor de início. A implementação da coluna Virtual TreeView também permite colunas fixas, tornando-a uma boa substituição de grade também. mais recentes tecnologias: Para animações suaves (por exemplo, desvanecimento de dica) O Virtual TreeView usa rotinas de montador MMX otimizadas manuais. Este código também é usado para desenhar o retângulo de seleção translúcido no modo de seleção multi. Isso é muito parecido com o suporte ao Windows 2000 e do Windows XP, mas também funciona no Windows 95/98 / ME. Uma imagem alfa mistrada da janela da árvore é mostrada ao fazer arrastar e soltar. No Windows 2000 e no Windows XP IDRopTargethelper e interfaces IDRAGSourceHelper são suportados, que permitem alguns efeitos muito interessantes (conforme usado pelo Explorer). Nas versões mais antigas do Windows, a imagem de arrasto é simulada pela árvore, mas sublinha lá algumas pequenas limitações. Virtual TreeView suporta temas do Windows XP. Ele age corretamente em alterações e usos temáticos para todos os elementos visuais que são temáticos a imagem correta usando APIs nativas. Em outros sistemas Windows, esses estilos são suportados pelo código legado separado. A consciência do tema pode ser trocada. Unicode: TVirttualstringtree é implementado usando strings unicode / ampla exclusivamente. A árvore salva e lê todas as propriedades Unicode (por exemplo, legendas de coluna, texto de nó padrão e similares) corretamente de / para dfm. Todo o desenho Unicode suporta totalmente a bidirecionalidade (isto é, desenho à direita), alinhamento de coluna (esquerda, centro, direita) e dicas corretamente alinhadas. Claro que também este recurso está disponível no Windows 95/98 / ME. Drag'n Drop e Suporte de Área de Transferência: OLE arrastar e soltar e os transferências da área de transferência são suportados com a árvore como fonte e destino. Alternativamente, a queda de Drag'n VCL ainda pode ser usada para compatibilidade. Esses formatos são suportes pela implementação padrão: Formato serializado nativo (cf_virtualtree e cf_vtreference), que é um formulário compacto para trocar dados entre o Virtual TreeViews (também entre aplicativos). Dois formatos de armazenamento estão disponíveis: HGLobal e Istream. Formato de string de texto ANSI simples. Formato de string de texto Unicode Plain. Rich Text (RTF) Formato de string (com texto Unicode). Formato de string de texto HTML (UTF-8). Este é o formato preferencial da área de transferência para o Word 2000 etc. e permite copiar e colar conteúdo de árvore para um documento do Word com quase nenhum código de aplicativo. Existe um esquema de registro (RegisterVtClipboardFormat), que permite que os descendentes especifiquem e implementem seus próprios formatos de área de transferência. Por meio de um manipulador de gota, o aplicativo pode aceitar qualquer formato OLE sem derivar uma própria classe de árvore. A fim de auxiliar o processamento dos dados de dados nativos, os métodos especializados são implementados. Veja também: tbasevirtualtree.processoledata e tbasevirtualtree.processdrop. DropMarks mostram durante a queda de Drag'n, onde os dados serão inseridos. Isso também funciona com a queda do VCL. O modelo de destino da queda foi estendido para permitir que as ações de queda acima, abaixo ou em um nó. Enquanto isso, os fornecedores de outros controles TreeView começaram a usar essa idéia pequena, mas poderosa. Auto Expandir de nós que são o alvo de queda para mais do que um intervalo de tempo ajustável é executado se ativado. cabeçalho e colunas: várias colunas são suportadas por uma implementação de cabeçalho próprio. Este cabeçalho ocupa espaço na área não-cliente do controle de árvores e suporta vários estilos de botões (botões padrão de grosso, botões planos, placas, estilo Windows XP e sorteio). . colunas podem aparecer em todas as encomendas na janela da árvore. Cada coluna pode ser escondida, incluindo a coluna principal que mantém a árvore real. Cada coluna pode se tornar a coluna principal. colunas também podem ser mostradas sem o cabeçalho. colunas podem ter várias opções (visível, clicável, redimensionável, arrastável etc.). Você pode definir alinhamentos individuais para cada coluna, bem como direcionalidade à direita ou à esquerda ou à esquerda (novamente: disponível também em sistemas de consumo não médio e mais antigos do Windows). Cada coluna pode ter uma cor própria. o cabeçalho, bem como a classe Coll Colheds e as classes de coluna reais suportam streaming. Isso é independente do streaming treeview. Verifique o suporte: Cada nó na árvore pode ter seu próprio tipo de cheque. Isso pode ser a caixa de seleção (também tristar), botão de opção ou botão de nó. Esses tipos podem ser misturados livremente para que você possa, por exemplo, ter um nó com 10 nós, dos quais 5 compreendem um grupo de rádio (onde apenas um desses 5 nós pode ser marcado) e os outros 5 nós podem ter uma caixa de seleção (ou sem verificação Tipo em tudo). caixas de seleção mista (tri-state) com manuseio adequado para a verificação parcial de nós infantis são suportados (como frequentemente usados em programas de instalação e backup). A automaticamente a propagação de mudança de estado para o tipo de botão de verificação mista é possível (se habilitada). Verifique os eventos que ligam e os eventos oncheck também são fornecidos. Para fins especiais Um pequeno botão plana pode ser usado, o que é chamado de botão de nó. 7 tipos diferentes de imagens de verificação são possíveis. Marcas de verificação escuras e claras, marcas escuras e claras, iluminação plana, imagens do Windows XP Verifique as imagens e o aplicativo definido verifique imagens. Para uma visão geral, veja a propriedade tbasevirtualtree.checkimagekind. Tempo de design: As propriedades e métodos da Virtual TreeView são registrados em categorias Delphi (Delphi 5 e BCB 5 ou superior). Um editor de propriedades especiais para os formatos de área de transferência está incluído, o que permite uma escolha de formato simples. Isso é particularmente importante, uma vez que os formatos disponíveis de área de transferência devem ser dados como seqüências de caracteres e também é bastante útil ter uma lista de formatos disponíveis, mesmo que eles não estiverem ativados ainda (para saber o que pode ser ativado). . Personalização: Desenhar personalizado e ciclos de tinta são suportados através de eventos de tinta (para toda a árvore e para cada nó). Além dos tipos de verificação embutidos Uma imagem de verificação definida pelo usuário pode ser usada, que é suportada por uma lista de imagens separada (TBASevirtualtree.CustomCheckimages). Cada botão no cabeçalho pode ser desenhado individualmente. Três estilos de linhas diferentes estão disponíveis: linhas pontilhadas, linhas sólidas e linhas definidas pelo aplicativo. Aplicativos e descendentes podem fornecer ao seu próprio editor de nós (que não necessariamente de ser um único controle) lidando com o evento TbasevirtualTree.oncreateEtitor ou substituindo tbasevirtualtree.DocreateEtitor. Isso permite substituir completamente a edição de nó por regras próprias (business). Aplicações e descendentes podem fornecer sua própria interface do Drag Manager lidando com o evento TBASevirtualTree.oncreatedragmanager ou tbasevirtualtree.Docreatedragmanager. Isso permite personalizar todo o manuseio de arrasto OLE da árvore. Nota: O VCL Drag'n Drop é gerenciado pelo VCL, então isso não pode ser personalizado. Aplicações e descendentes podem fornecer sua própria interface de objeto de dados lidando com o evento TBASevirtualTree.oncreatedataObject ou substituir Tbasevirtualtree.DocreatedataObject. Isso permite fornecer formatos próprios de prancheta. Há uma função de registro (RegisterVtClipboardFormat), que permite registrar descendentes de árvore com os próprios formatos de prancheta e / ou armazenamento. Os aplicativos podem fornecer formatos próprios de área de transferência (sem derivar novas classes de árvores) lidando com o evento TBASevirtualTree.getuserclipboardformats. Aplicativos e descendentes podem modificar completamente o manuseio de chaves da árvore manipulando o evento TbasevirtualTree.OnkeyAction ou substituindo tbasevirtualtree.dokeyaction. Isso também funciona para pesquisa incremental. Aplicações e descendentes podem personalizar o plano de fundo da árvore que não é coberto por nós, lidando com o evento TbasevirtualTree.onpaintbackground ou substituindo tbasevirtualtree. Para nós, há mais eventos para personalização. Aplicações e descendentes podem personalizar como a árvore de string encurta demasiado longas legendas, lidando com o evento tcustomvirtualstringtree.onortensstring ou substituindo TCustomVirtualstringtree. rolagem: Barras de rolagem plana são suportadas. Mas como eles entram em conflito com o Windows XP, este suporte é desligado por um símbolo do compilador (Useflatscrollbars). Ative este símbolo se você realmente quiser usar barras de rolagem plana antes de compilar a unidade de árvore. Cada operação de rolagem desencadeia um evento tbasevirtualtree.onscroll. Isso permite sincronizar árvores com outros controles. Existem propriedades (por exemplo, tbasevirtualtree.offsetxy) que permitem rolar o conteúdo da árvore para qualquer posição no código sem enviar mensagens. Panning de roda e rolagem é suportado. Isto é, ao clicar na roda do mouse ou pressionando e segurando-o enquanto move o mouse ao redor da janela da árvore está rolando suavemente. Streaming: Serialização de conteúdo de árvore sofisticada foi implementada para permitir salvar e restaurar uma árvore de / para fluxos. Isso inclui também dados do usuário, desde que possa ser gravado em um fluxo. Virtual TreeView permite também adicionar dados do fluxo, substituindo todo o conteúdo. O formato interno do fluxo é baseado em pedaços que torna muito flexível para melhorias futuras, mas ainda mantém compatibilidade com implementações mais antigas. Há um pedaço de usuário que leva dados gravados no fluxo no evento tbasevirtualtree.onavenode. Os dados desse pedaço de usuário podem ser lidos no tbasevirtualtree.onloadNode. Apoio desenvolvedor: Cuidado especial foi tomado para formatar o código-fonte do Virtual TreeView consistentemente. Uma grande parte de toda a implementação são comentários que descrevem o funcionamento interno. Os métodos e propriedades são, consequentemente, ordenados alfabeticamente dentro do seu escopo (privado, protegido, público, publicado). A única exceção são os construtores e destruidores que sempre aparecem no topo da seção pública na declaração de classes e são sempre os primeiros métodos na implementação de classe. Para cada evento Há um método virtual que chama o manipulador de eventos. Isso permite que os descendentes obtenham notificação de cada evento sem atribuir um manipulador. Os nomes desses métodos correspondem diretamente aos eventos usando o padrão: DoeventName. Muitas medidas foram tomadas para garantir a compatibilidade Borland C ++ Builder. Isso é particularmente difícil porque a tradução automática do código Delphi para C ++ no BCB é buggy. Existe um mecanismo fácil e poderoso para os escritores de descendentes para alocar seus próprios dados por uma base por nó. Simplesmente ligue para tbasevirtualtree.LocateInternaldata para registrar suas necessidades. Isso não influenciará o código de aplicativos existente ou futuro, se consequentemente usar o tbasevirtualtree.getNodeData para acesso a dados do usuário. Edição: Os editores definidos pelo aplicativo são suportados por meio de uma interface de link de edição. Uma implementação do editor genérico (não unicode) também está disponível. Cada coluna da árvore é editável se habilitada (ver tCustomvirttualtreeoptions.selectionoptions.Toextendedfocus). utilitários: Para sua conveniência Algumas das funções usadas internamente são de interesse geral exposta. AldeLend: um procedimento de uso geral para misturar uma fonte em um bitmap de destino usando vários modos diferentes. DrawTextw: Uma implementação parcial da API de DrawText que suporta Unicode. Este método só tem um stub no Windows 95/98 / ME. Shortenstring: uma função de uso geral que faz uma dada encaixe de aversão em um determinado espaço. Isto é parcialmente implementado pela API de DrawText do Windows, mas também se preocupa com o alinhamento da direita para a esquerda e funciona com Unicode também no Windows 95/98 / ME.


Treeview virtual Software Relacionado