Einzelnen Beitrag anzeigen

Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#3

AW: Verhinderung der Selektierung in ListView-Komponente

  Alt 3. Jan 2015, 23:27
Hallo,

Zitat:
ich habe [...] Die ReadOnly-Eigenschaft ist deshalb aktiviert. Trotzdem kann der Anwender einzelne Einträge in Spalten selektieren
himitsu erwähnte schon, dass die ReadOnly -Property nun gar nichts mit der Selektion von Listeneinträgen zu tun hat; diese Property beeinflusst nur das Verhalten - änderbar oder eben nicht - der Property Caption eines Listeneintrags.

Zitat:
Gibt es eine Möglichkeit, die Selektierung zu unterbinden? [...]
Ich sag mal: himitsus Vorschlag OnChanging wird vermutlich Dein Freund sein. Ein:

Delphi-Quellcode:
procedure TForm1.ListView1Changing(Sender: TObject; Item: TListItem; Change: TItemChange; var AllowChange: Boolean);
begin
  AllowChange := False
end;
unterbindet jede Änderung am entsprechenden Listeneintrag; und, wenn das "Hovering" (ich glaube ab Windows Vista) der Listeneinträge stören sollte, dann mit:
Delphi-Quellcode:
procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage; var DefaultDraw: Boolean);
var
  r : TRect;
  c : TCanvas;
begin
  if (cdsHot in State) and (Stage = cdPostPaint) then
    begin
      r := Item.DisplayRect (drSelectBounds);
      c := ListView1.Canvas;
      c.FillRect (r);
      Inc (r.Left, 2);
      Inc (r.Top, 2);
      c.TextOut (r.Left, r.Top, Item.Caption)
    end
end;
"abschalten".

Gruß
Volker Zeller
  Mit Zitat antworten Zitat