Code Monkey home page Code Monkey logo

mustangpeakeasylistview's Introduction

mustangpeakeasylistview's People

Contributors

jimkueneman avatar pyscripter avatar salvadorbs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

mustangpeakeasylistview's Issues

Several packages contain incorrect "requires" dependencies

in several packages the "requires" section contains incorrect dependencies:

- design-time packages instead of run-time ones
- design-time packages that require design-time packages (they require itself!)
- etc.

List of wrong packages:

EasyListviewD4D.dpk
EasyListviewD5D.dpk
EasyListviewD6D.dpk
EasyListviewD7D.dpk
EasyListviewD9D.dpk
EasyListviewD10D.dpk
EasyListviewD11D.dpk
EasyListviewD12D.dpk
EasyListviewD14D.dpk
EasyListviewD15.dpk (this one contains a reference to a D16 package!)
EasyListviewD15D.dpk
EasyListviewD16D.dpk

Regards
Salvatore

Original issue reported on code.google.com by [email protected] on 27 Jul 2012 at 12:00

Does not compile in XE2 64 bit.

Solution

In file EasyListView.pas replace

    Pt := SmallPointToPoint(TSmallPoint(Msg.lParam));

with

    {$IFDEF WIN64}
    Pt := SmallPointToPoint(TSmallPoint(Int64Rec(Msg.lParam).Lo));
    {$ELSE}
    Pt := SmallPointToPoint(TSmallPoint(Msg.lParam));
    $ENDIF}


Original issue reported on code.google.com by pyscripter on 26 Nov 2011 at 2:58

LGPL,beware!

You code is unusable in commercial projects, because LGPL not only requires to 
open library's modifications, but also the possibility for end-user to replace 
the library with a custom build:

effectively this legally means, that the Software Vendor either should link 
dynamically(like runtime packages) OR
 provide object files of HIS OWN (not only the library, but the PROPRIENTARY STUFF) to enable such user to RE-LINK the executable.

---
Bottom line:GPL infected, beware.


Original issue reported on code.google.com by [email protected] on 28 Jan 2014 at 4:55

Overlay on icons

In order for overlays to be drawn on icons:

EasyListview.pas, line 21054: 

if OverlayIndex > -1 then

  fStyle := FStyle or IndexToOverLayMask(OverlayIndex);


must be something like:

if OverlayIndex > -1 then begin
  ImageList_SetOverlayImage(Images.Handle, OverlayIndex, 1);
  fStyle := FStyle or IndexToOverLayMask(1);
end;

Original issue reported on code.google.com by [email protected] on 22 Nov 2011 at 1:30

Access Violation when using custom paint method

Hello,

Perhaps you can help me with this problem. I am using the following custom paint routine for elv (View = elsList):

  TCustomViewSmallIconItem = class(TEasyViewSmallIconItem)
  public
    procedure PaintBefore(Item: TEasyItem; Column: TEasyColumn; const Caption:
        string; ACanvas: TCanvas; RectArray: TEasyRectArrayObject; var Handled:
        Boolean); override;
  end;
....

procedure TCustomViewSmallIconItem.PaintBefore(Item: TEasyItem; Column:
    TEasyColumn; const Caption: string; ACanvas: TCanvas; RectArray:
    TEasyRectArrayObject; var Handled: Boolean);
var
  Icon: TIcon;
  PrevColor: TColor;
  R: TRect;
  TagInfo: TTagInfo;
  Text: string;
  TextLength: Integer;
  V_OFFSET: Integer;
  LStyle: TCustomStyleServices;
begin
  inherited;

  R := RectArray.TextRect;

  LStyle := TStyleManager.ActiveStyle;
  if not LStyle.IsSystemStyle then
  begin
    if not (esosSelected in Item.State) then
    begin
      ACanvas.Font.Color := LStyle.GetSystemColor(clWindowText);
      DrawTextW(ACanvas.Handle, PWideChar(Caption), Length(Caption),
        R, DT_CENTER or DT_VCENTER or DT_SINGLELINE or DT_END_ELLIPSIS or
        DT_MODIFYSTRING);
      Handled := True;
    end;
  end;

  if Item.Data = nil then
  begin
    ACanvas.Font.Style := [fsBold];
    ACanvas.Font.Color := $00CC6600;
    DrawTextW(ACanvas.Handle, PWideChar(Caption), Length(Caption), R, DT_CENTER or DT_VCENTER or 
DT_SINGLELINE);
    ACanvas.Font.Style := [];
    Handled := True;
  end
  else
  begin
    TagInfo := TTagInfo(Item.Data);
    Text := '(' + TagInfo.Count.ToString + ')';
    R.Left := R.Right + 6;
    R.Right := RectArray.BoundsRect.Right - 2;

    TextLength := R.Right + 2 - RectArray.TextRect.Left;
    begin
      PrevColor := ACanvas.Font.Color;
      ACanvas.Font.Color := clBtnShadow;
      DrawText(ACanvas.Handle, pChar(Text), Length(Text), R,
        {DT_CENTER or} DT_VCENTER or DT_SINGLELINE or DT_END_ELLIPSIS or
        DT_MODIFYSTRING);
      ACanvas.Font.Color := PrevColor;
    end;
  end;
end;

image

It has worked fine for me on other occasions, however in this project it gives an error if I resize the main window after the app starts. Perhaps it is due to large number of items. If I first scroll through all items, and then resize the main window, then the AV does not occur. (perhaps some initialization is taking place that is required..) The AV also occurs after entering some search terms.

I am using the latest code from pyscripter Mustangpeak ELV and CommonLib, although I get the same problem using the TurboPack branch.
I'm using Tokyo on Window 10 x64.

Sample project attached.
EasyListView AV Test.zip

As to my last post

by past the problem by

 procedure TfrMain.FormCreate(Sender: TObject);
begin
EasyTaskPanelBand1.Groups[0].Expanded:=false;
EasyTaskPanelBand1.Groups[1].Expanded:=false;

Original issue reported on code.google.com by [email protected] on 30 Sep 2012 at 3:20

SWF and FLV Thumbnail previews show upside-down in the easylistview at some thumbnail resolutions

SWF and FLV Thumbnail previews provided by the software Icaros show upside down 
in the easylistview which is part of Cubicexplorer.

The strange thing is that if you change the resolution of the thumbnails, at 
some resolutions the thumbnail will be positioned upside down but at some 
resolution not.

We are using the easylistview that is part of the latest version of cubic 
explorer. 
This problem also occurs in the last version of Ultraexplorer.
So far this problem does not seem to occur in Windows xp explorer/windows 7 
explorer or any other filemanagers with thumbnail views.

See also the posts i made in this topic:

http://shark007.net/forum/Thread-About-Icaros?pid=30987#pid30987

I don't expect any fixes, but i would really appreciate it if you could give me 
some advise on what Icaros could do to fix this.



Original issue reported on code.google.com by [email protected] on 11 Jan 2013 at 10:36

crHandPoint not showing when HotTrack.Enabled = True

What steps will reproduce the problem?
1. Put new TEasyListView on a Form
2. Add some TEasyItems
3. EasyListview1.HotTrack.Enabled := True;
3. Leave HotTrack.Cursor as default setting (crHandPoint)

What is the expected output? What do you see instead?
When moving the mouse over an Item I expect the mouse cursor to change to
crHandPoint.  Instead, it remains as crDefault.

What version of the product are you using? On what operating system?
EasyListView version 2.1.0.
Delphi 7 Enterprise
Windows 7 Ultimate 64-bit

Please provide any additional information below.
This fixes the problem for me:

(Procedure at line 15638)

procedure TCustomEasyListview.DoItemHotTrack(Item: TEasyItem; State: 
TEasyHotTrackstate; MousePos: TPoint);
begin
  if HotTrack.Enabled then
    begin
      Self.Cursor := FHotTrack.Cursor;  // My change
      if Assigned(OnItemHotTrack) then
        OnItemHotTrack(Self, Item, State, MousePos);
    end;
end;

Original issue reported on code.google.com by [email protected] on 6 Dec 2012 at 1:38

With XE8: When calling RereadAndRefresh from VirtualExplorerEasyListview

What steps will reproduce the problem?
1. VirtualExplorerEasyListview1.RereadAndRefresh(False).Selected; generates AV 
in Easylisview.pas:
function TEasyCollectionItem.GetSelected: Boolean;
begin
  Result := esosSelected in State // AV here.
end;

What version of the product are you using? On what operating system?
XE8

Please provide any additional information below.
64-bit compilation issue. 32-bit is okay.

Original issue reported on code.google.com by [email protected] on 4 Jun 2015 at 4:12

Access Violation on MENU keypress and nothing selected

An access violation in "procedure TCustomEasyListview.WMContextMenu(var Msg: TMessage);" when there is nothing selected in a TEasyListView and the MENU key is pressed to open a popup menu:
c0000005 ACCESS_VIOLATION (Message)
c0000005 ACCESS_VIOLATION (Code)

The access violation occurs at the line "Menu.Popup(Msg.LParamLo, Msg.LParamHi);" near the end of the procedure. (Code line no. 17312 in the version I am using).

procedure TCustomEasyListview.WMContextMenu(var Msg: TMessage);
var
  Item: TEasyItem;
  Group: TEasyGroup;
  Pt: TPoint;
  HitInfoGroup: TEasyHitInfoGroup;
  HitInfoItem: TEasyHitInfoItem;
  Menu: TPopupMenu;
  Handled, SkipHitTest, MenuKey: Boolean;
begin
  if not EditManager.Editing and not (Gesture.Enabled and (Gesture.Path <> '')) then
  begin
    Handled := False;
    MenuKey := False;
    if not (ebcsCancelContextMenu in States) then
    begin
      SkipHitTest := False;
      // Support Dual monitors with SmallPointToPoint
      Pt:= SmallPointToPoint(SmallPoint(Msg.LParamLo, Msg.LParamHi));
      if ((Pt.X = 65535) and (Pt.Y = 65535)) or ((Pt.X = -1) and (Pt.Y = -1)) then
      begin
        MenuKey := True;
        Pt := ScreenToClient(Mouse.CursorPos);
        if not PtInRect(ClientRect, Pt) or (Selection.Count = 0) then
        begin
          Pt.X := 0;
          Pt.Y := 0;
          SkipHitTest := True;
        end;
        Pt := ClientToScreen(Pt);
      end;

      if MenuKey and (Selection.Count > 0) then
      begin
        HitInfoItem.Item := Selection.First;
        Pt := ClientToScreen(HitInfoItem.Item.DisplayRect.TopLeft);
        Pt.Y := Pt.Y + Header.RuntimeHeight;
        HitInfoItem.Column := nil;
        HitInfoItem.Group := HitInfoItem.Item.OwnerGroup;
        HitInfoItem.HitInfo := [ehtOnLabel, ehtOnIcon];
        DoItemContextMenu(HitInfoItem, Pt, Menu, Handled)
      end else
      if not SkipHitTest then
      begin
        if IsHeaderMouseMsg(PointToSmallPoint( ScreenToClient(Pt))) then
        begin
          Pt := ClientToScreen(Pt);
          Header.WMContextMenu(Msg);
          Handled := True;
        end else
        begin
          Menu := nil;
          Exclude(FStates, ebcsDragSelectPending);
          Exclude(FStates, ebcsDragPending);

          Handled := False;
          Group := Groups.GroupByPoint(Scrollbars.MapWindowToView(ScreenToClient(Pt)));
          if Assigned(Group) then
          begin
            // The hit was in a group so now see if it was in an item
            Item := Group.ItembyPoint(Scrollbars.MapWindowToView( ScreenToClient(Pt)));
            if Assigned(Item) then
            begin
              if Item.HitTestAt(Scrollbars.MapWindowToView( ScreenToClient(Pt)), HitInfoItem.HitInfo) then
              begin
                HitInfoItem.Column := nil;
                HitInfoItem.Group := Group;
                HitInfoItem.Item := Item;
                DoItemContextMenu(HitInfoItem, Pt, Menu, Handled)
              end
            end;
            if not Assigned(Menu) and not Handled then
            begin
              HitInfoGroup.Group := Group;
              Group.HitTestAt(Scrollbars.MapWindowToView(ScreenToClient(Pt)), HitInfoGroup.HitInfo);
              DoGroupContextMenu(HitInfoGroup, Pt, Menu, Handled)
            end
          end
        end
      end;
      if not Handled then
        DoContextMenu(Pt, Handled);

      if Assigned(Menu) and not Handled then
      begin
        Menu.Popup(Msg.LParamLo, Msg.LParamHi);
        Msg.Result := 1
      end else
      if not Handled then
        inherited  // Use the PopupMenu property from TControl
    end;
  end else
  begin
    Msg.Result := 1;
    inherited
  end;
  Exclude(FStates, ebcsCancelContextMenu);
end;

I resolved the issue by adding "Menu := nil;" near the top of the code block, just after the "Handled" and "MenuKey" vars are initialized.

    Handled := False;
    MenuKey := False;
    Menu := nil;

However, I noticed that regardless of the change, the popup behaves normally when opened with a mouse right-click, but opens at the top left corner of the listview itself when opened with the MENU key.

Should it not open over the currently selected/focused item? It could in this instance be aligned to the bottom-left corner of the item...

TPopupMenu doesn't open over item on menu keypress

Improve Vcl Styling.

Currently support for VCL styles is incomplete and rudimentary. Also, themes should be replaced with VCL styling. No need to have both since the System VCL style is identical to the old themes.

XE2 compiler errors

What steps will reproduce the problem?
1. Compile EasyListviewD16.dpk
2. [DCC Fatal Error] EasyListviewD16.dpk(1): E2225 Never-build package 
'EasyListviewD16' must be recompiled
[DCC Fatal Error] EasyListviewD16D.dpk(40): E2202 Required package 
'EasyListviewD16' not found

What is the expected output? What do you see instead?
-

What version of the product are you using? On what operating system?
Windows 7 32 bit, Delphi XE2


Please provide any additional information below.
-


Original issue reported on code.google.com by [email protected] on 9 Nov 2011 at 6:24

SelectGroupItems does not work inside OnGroupClick event

What steps will reproduce the problem?
Add the following to the OnGroupClick event of a TEasyListView:

  TEasyListView(Sender).Selection.SelectGroupItems(Group, True);



What is the expected output? What do you see instead?
One would expect that the item within the group would be selected, except they 
ar not

What version of the product are you using? On what operating system?
Version 2.1.0

Please provide any additional information below.
I the code at the end of

   procedure TCustomEasyListview.HandleMouseUp;

from

"DoGroupClick(Group, KeyState, GroupHitInfo)"

to

"DoGroupClick(Group, KeyState, GroupHitInfo) else"

in order to resolve the selection problem. 

Original issue reported on code.google.com by [email protected] on 28 Feb 2012 at 10:16

Compilation error with XE8

Hello
I get this compilation error with XE 8. Is there something wrong with the 
packages?

[dcc32 Fatal Error] MPCommonObjects.pas(2811): E2411 Unit EasyTaskPanelForm in 
package EasyListviewD22 refers to unit MPCommonObjects which is not found in 
any package.  Packaged units must refer only to packaged units

In the distribution are missing the dpk and res files for XE8. Only the 
Compilers.inc files have been updated!

Sincerely

Peter

Original issue reported on code.google.com by [email protected] on 4 Jul 2015 at 8:30

Attachments:

Long form

In the demo TaskPanel which i adapted
if the form is long above 500-600 the
TEasyTaskPanelFormSearch dose not load to task panel

Original issue reported on code.google.com by [email protected] on 30 Sep 2012 at 3:05

Works scroll in a touchscreen

What steps will reproduce the problem?
1.My notebook has a touchscreen , and i will like that the scroll works with my 
finger, but only scrollbar works,I enabled TEasyGestureManager, but dont works, 
i use delphi xe7 up1 
2.
3.

What is the expected output? What do you see instead?
Works scroll in a touchscreen

What version of the product are you using? On what operating system?
Delphi Xe7 up1 Windows 8.1 64bits Dell 5047 Touch Screen


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 26 Jun 2015 at 1:48

IncrementalSearch crashes the project if compiled with 64-Bit in Delphi XE2

What steps will reproduce the problem?
-------------------
1. Use custom item classes based on "TEasyItemVirtual"
2. Pre-Initialize the listview IncrementalSearch  properties before adding items
3. When using the keyboard cursor keys to change selections, the application 
crashes (regardless of view style, Thumbnail or Report). This does not happen 
when using the mouse.

What is the expected output? What do you see instead?
-------------------
Incremental Search speaks for itself, but when I compile my application as 
64-bit, the project crashes out entirely, requiring me to use CTRL+F2 to reset 
the running application.

What version of the product are you using? On what operating system?
-------------------
EasyListview.pas says version 2.1.0, but in order to clarify, I'm using the SVN 
trunk that I downloaded maybe 3 days before reporting this issue. I'm using 
Windows 7 Ultimate x64.

Please provide any additional information below.
-------------------
The following code is a portion of a "procedure 
InitListView(AELV:TEasyListView)" from my application:

  AELV.IncrementalSearch.Direction := eisdForward;
  AELV.IncrementalSearch.Enabled   := True;
  AELV.IncrementalSearch.ItemType  := eisiAll;
  AELV.IncrementalSearch.ResetTime := 500;
  AELV.IncrementalSearch.StartType := eissLastHit;

The code with InitListView also initializes varies properties for "GroupFont", 
"Font", "PaintInfoGroup", "Selection", "BackGround", "PaintInfoItem" and 
"CellSizes", and each have been tested while debugging this problem. The crash 
issue occurs only when compiled in 64-Bits, and IncrementalSearch.Enabled is 
set to TRUE.

Original issue reported on code.google.com by [email protected] on 11 Aug 2012 at 12:55

XE5

Hi. Need support delphi XE5


Original issue reported on code.google.com by [email protected] on 13 Oct 2013 at 3:04

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.