AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListView ColumnRightClick fehlerhaft ?

Ein Thema von fotohase · begonnen am 26. Dez 2005 · letzter Beitrag vom 15. Feb 2006
 
WaSa

Registriert seit: 31. Jan 2005
2 Beiträge
 
Delphi 2005 Professional
 
#2

Re: ListView ColumnRightClick fehlerhaft ?

  Alt 14. Feb 2006, 15:24
Hallo fotohase

Ich plage mich auch gerade damit herum.
Zitat:
Was muss ich machen um auch bei ColumnRightClick den richtigen Wert zu bekommen?
Eine Lösung habe ich nicht, nur einen sog. "Workaround". Zusätzlich habe ich noch ein Popup-Menu, das du getrost ignorieren kannst.

Delphi-Quellcode:
procedure TForm1.lvColumnRightClick(Sender: TObject; Column: TListColumn; Point: TPoint);
var xPoint : TPoint;

begin
   xPoint := ClientToScreen ( Point ); // Screen-Koordinaten zu Koordinaten der Applikation
   inc ( xPoint.X, lv.Left ); // Applikations-Koord. zu Komponenten-Koord.
   inc ( xPoint.Y, lv.Top );
  
   // fColInd -> index von lv.Columns (lv ist meine ListView)
   fColInd := CalcColumnInd ( -lv.Items [ 0 ].Left + Point.X ); // fColInd -> irgend int integer
   if fColInd >= 0 then PopupMenu2.popup ( xpoint.x, xpoint.y );
end;

Delphi-Quellcode:
// +10, -10: gewisser ungültiger Range spezifiziert um die Kolonnengrenzen herum
// result >= 0 für gültigen Kolonne, -1 wenn ungültig
function TForm1.CalcColumnInd(aX: integer): integer;
var xI, xSum : integer;
begin
   xSum := 0;
   result := -1;
   for xI := 0 to lv.Columns.Count - 1 do begin
      if xSum + 10 < aX then begin
         xSum := xSum + lv.Columns [ xI ].Width;
         if xSum - 10 > aX then begin
            result := xI;
            break;
         end;
      end;
   end;
end;
Den Tip mit "lv.items [0].left" habe ich von dsdt info. Ist also nicht alles auf meinem Mist gewachsen.
Aber trotzdem, das ganze ist ein riesen Murks, ein Paradebeispiel einer schlecht gestalteten und schlecht implementierten Komponente. Sorry.

Gruss
Walter
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz