Giter Site home page Giter Site logo

blikblum / virtualtreeview-lazarus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jam-software/virtual-treeview

48.0 18.0 15.0 9.63 MB

Virtual Treeview is a treeview control

Pascal 86.15% TeX 8.13% Batchfile 0.07% C++ 0.11% PHP 0.09% Assembly 5.45%

virtualtreeview-lazarus's Introduction

VirtualTreeView-Lazarus

This is the Lazarus port of Virtual Treeview control

Requirements

Versions 4.x or 5.x

  • Lazarus 1.6 or newer
  • fpc 2.6.4 or newer
  • LCL Extensions 0.6 or newer

Version 6.x (lazarus_master branch)

  • Lazarus 1.6 or newer
  • fpc 3.1 (trunk) or newer
  • LCL Extensions 0.6 or newer

Downloads

See [releases] (https://github.com/blikblum/VirtualTreeView-Lazarus/releases)

virtualtreeview-lazarus's People

Contributors

blikblum avatar longdirtyanimalf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

virtualtreeview-lazarus's Issues

OnClick node does not fire if last visible node is selected, and hoVisible = true

... given that there are enough nodes to fill the entire view window. VTV seems to have a "blind spot" approximately the height of the headers (just guessing ...) at the bottom of the VTV control's visible area. If I hide the headers, onClick works OK on all nodes.

Seems like the mouse hit test does not correctly take into account the size of the header. Observed on Windows 10, but also confirmed on QT/GTK2 by Theo and others (see German Lazarus Forum https://www.lazarusforum.de/viewtopic.php?f=18&t=13670)

Tested with Lazarus Built-in VTV and 5.5.3 - LCL2 and latest from SVN on Lazarus 2.0.12 / Windows 10

Steps to reproduce: use the enclosed sample. Klick any of the default nodes ans see onClick work in the status bar. Use the [+] button to add nodes until the last node (usually node 9) is inserted at the very bottom of the TreeView. Click it and you won't get any feedback from onClick in the status bar --> onClick has not fired.

There are variants like insert more nodes, scroll down the list to the very end and click the last node --> onClick won't fire.

Use the checkbox to hide the headers, and the problem is gone alltogether.

Armin.
VST Node onCLick problem
Source Code:
Last Node Hit Test.zip

Incorrect split caption in header multiline column

What is the VirtualTreeView version / branch?

I test to 5.5.3 and 5.5.3R2

What is the Lazarus and Freepascal version?

I test lazarus 2.0.6 (fpc 3.0.4) and lazarus 2.0.10 (fpc 3.2.0)

Does the bug occurs also in Delphi?

No test

colHeader
original caption "Наименование шлейфа"

  1. resize column and caption not fit in one line.
  2. component devide caption to 2 part
  3. on sample component devide char "и" to 2 part

most likely a problem because of encoding utf-8 is multibyte.

Visible Virtual Treeview causes multiple problems in other controls in Lazarus/Cocoa

case1.zip

Here is a demo project which demonstrates multiple issues when having a visible virtual treeview on Lazarus Mac/Cocoa (using fpcupdeluxe "trunk" which includes newest virtual treeview)

Issue was reported here: https://bugs.freepascal.org/view.php?id=34002

And together with Lazarus developers narrowed it down to be an issue with virtual treeview and cocoa.

The attached demo project demonstrates:

  1. Toolbuttons becoming invisible until clicked
  2. TPageControl tabsheets misdrawn until clicked
  3. TEdit looking very weird with black background until clicked
  4. Some captions/labels etc. are drawn upside down some places

All only when the two virtual treeviews are set to visible in the project.

...

To see all issues simply

  • run project
  • doubleclick window title bar (minimizes to dock)
  • open from mac dock.

VirtualTreeView shows Kanji characters half dissapeared on Ubuntu

Hello,

I'm pretty new to lazarus and github. And also English isn't my language, so please forgive me if I was doing something wrong.

As I posted at the forum, I think I've encountered a problem on Ubuntu. It displays fine on Windows and Mac.
https://forum.lazarus.freepascal.org/index.php/topic,40042.0.html

I'm using VirtualTreeView-Lazarus 5.5.3-r1

Ubuntu 17.10 & 16.04 LTS:
Lazarus 1.8.0 rc4+dfsg-1 FPC 3.0.2 x86_64-linux-gtk2

Windows 10:
Lazarus 1.8.0 r56594 FPC 3.0.4 x86_64-win64-win32/win64

MacOS 10.13.2 High Sierra:
Lazarus 1.8.0 rexported FPC 3.0.4 i386-darwin-carbon

Compile with<T>

What is the VirtualTreeView version / branch?

Main

What is the Lazarus and Freepascal version?

Lazarus 1.8

Does the bug occurs also in Delphi?

No

Lazarus will not compile VirtualTrees.pas with -

function GetNodeData<T>(pNode: PVirtualNode): T; overload; inline;
function GetNodeDataAt<T:class>(pXCoord: Integer; pYCoord: Integer): T;
function GetFirstSelectedNodeData<T>(): T;  

-I don't know what the does so my fix probable breaks some sort of functionality

FIx: Delete Code and Reference to compile

LCLCocoa "Range check error" in InitializeGlobalStructures

What is the VirtualTreeView version / branch?

latest lazarus-v5

What is the Lazarus and Freepascal version?

Lazarus 2.1.0 r61403 / FPC 3.0.4

Does the bug occurs also in Delphi?

No

With LCLCocoa the component fails to initialize. The problem seems to reside in the ClipboardRegister of custom formats inside InitializeGlobalStructures. More details and full discussion on Lazarus form: https://forum.lazarus.freepascal.org/index.php/topic,45432.0.html

Dragging nodes with "DragType" to "dtVCL" and "Right click select" cause erratic behavior

I'm implementing D&D to move nodes in VirtualTreeView and I think I've encountered a bug on both Linux and Windows when I set "DragType" to "dtVCL" and "Right click select" to "true".

On windows, right click sometimes does not work. Nothing happens. Some time, you have to double right click to select a node and show popup. On Linux(Ubuntu at least), it is bit worse. Right click some times triggers dragging. On Mac, it is similar to Ubuntu but, since Cocoa interface is currently unstable, other things did not work properly either. So I did not test it further on Mac.

I am aware dtVCL is sort of a deprecated option for the original VirtualTreeview. However, since there is no ActiveX for Linux, dtVCL is the only way to drag nodes around.

I've created the simplest project file to recreate the behavior.

VT-Test.zip (3.3 kB)
https://forum.lazarus.freepascal.org/index.php?action=dlattach;topic=40061.0;attach=25252

Windows 10:
Lazarus 1.8.0 r56594 FPC 3.0.4 x86_64-win64-win32/win64

Ubuntu 17.10:
Lazarus 1.8.0 rc4+dfsg-1 FPC 3.0.2 x86_64-linux-gtk2

MacOS 10.13.3 High Sierra:
Lazarus 1.8.0 rexported FPC 3.0.4 i386-darwin-carbon

bag: drawing columns

What is the VirtualTreeView version / branch?

5.5.3.1

What is the Lazarus and Freepascal version?

Lazarus 2.0.4 r61665 FPC 3.0.4 i386-win32-win32/win64

Bug?

When using the function procedure PaintTree(aTargetCanvas: TCanvas; const aWindow: TRect; aTarget: TPoint; aPaintOptions: TVTInternalPaintOptions; aPixelFormat: TPixelFormat = pfDevice); with parameters aPaintOptions=[..poUnbuffered..] and aTarget.x<>0 column locations are calculated incorrectly.

I think the error is located somewhere starting from line 30508, where the right and left borders of the column are calculated.

[Ubuntu] scrollbar(thumb) does not sync with mouse wheel event

Hello!

While testing it on Ubuntu, I realized that scrollbar' thumb does not sync with mouse wheel(in my case touch pad) event. In Windows, it works fine.

just FYI.
Cheers!

VirtualTreeView-Lazarus:
Version 5.5.3 - LCL Release 1

Ubuntu 17.10 & 16.04 LTS:
Lazarus 1.8.0 rc4+dfsg-1 FPC 3.0.2 x86_64-linux-gtk2
Lazarus 1.9.0 from trunk.

Windows 10:
Lazarus 1.8.2 r57369 FPC 3.0.4 x86_64-win64-win32/win64

Data column borders are no longer being drawn in LCL Cocoa

What is the VirtualTreeView version / branch?

virtualtreeview-5.5.3-R2.zip

What is the Lazarus and Freepascal version?

Version 2.1.0
Date: 2020-09-13
FPC Version: 3.3.1
SVN Revision: 63882
X86-64-darwin-cocoa

Does the bug occurs also in Delphi?

No

I believe there is a bug in the Mac version...? Data column borders are not drawn.

This problem did not persist about 6 months ago using old version virtual treeview and old Lazarus/LCL/FPC source - so I am not not sure what to blame at present, but I am happy to run some experiments.

Bug? Column header separators drawn incorrectly (no right border on last item)

On Delphi Virtual Treeview headers are drawn like this

header|header|header|
i.e. border is placed at right and you can resize all columns including rightmost by dragging separator.

On Mac/LCLCocoa/inspecting PaintHeader/seeing results it is instead drawn
|header|header|header

The reason I consider that a bug is how resizing columns work in virtual treeview. With the current Lazarus solution you can not resize the rightmost column by dragging a visible separator.

TLazVirtualDrawTree does not show hints

What is the VirtualTreeView version / branch?

5.5.3.1 shipped with Lazarus 3.4

What is the Lazarus and Freepascal version?

Lazarus 3.4, FPC 3.2

Does the bug occurs also in Delphi?

Supposedly no - don't have Delphi installed

Steps to reproduce:

  1. Open vst_advanced example, DrawTreeDemo unit
  2. Run the program, go to the Paint Tree, play around and see no hints are shown for the Thumbnail column
  3. Check Object inspector and make sure that VDT1.HintMode = hmHint, VDT1.ShowHint = True
  4. Add a breakpoint to TDrawTreeForm.VDT1DrawHint and see it does not get triggered
  5. Add a breakpoint to TDrawTreeForm.VDT1GetHintSize and see it gets triggered and returns correct value

Checking into the TBaseVirtualTree.CMHintShow, I found that the Hint property must be set as well. Fixing that in the example, I still don't get hints each time they should be shown - it's about 50/50.

Odd issue on Cocoa: Column separators not drawn (but do work for e.g. resize)

On my Mac 10.14.4 (standard theme - not dark) newest Lazarus SVN Cocoa + newest virtual treeview

My virtual treeview does not draw its column separators (those you grab and drag to resize columns)

I have tried fiddling with treeview.header.options and teeview.treeoptions.paintoptions but no luck.

Can anyone else get these to work? It is a bit confusing for people new to my software. They may think they can not resize the columns (when infact they can - mouse cursor also changes when hovering over the invisible splitter/separator)

FPC trunk compilation fails for Win32

What is the VirtualTreeView version / branch?

5.5.3.1

What is the Lazarus and Freepascal version?

fpc r.41348, laz r60440

Can't install subj with error message
VirtualTrees.pas(769,19) Error: No matching implementation for interface method "SetData(const tagFORMATETC;var TagSTGMEDIUM;LongBool):LongInt; StdCall;" found

because the changes in FPC ActiveX headers is causing compilation issue.

Pls, fix it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.