Ich glaube es gibt hier keinen Grund sich den Code mit hässlichen
API Befehlen oder FindWindow zu versaubeuteln.
Ich habe gerade keine Delphi zur Hand, ich denke aber mal, dass es auch in Delphi einen Event á la TListView.ItemCheck gibt.
Dort könntest du einfach ein Verändern des Wertes verhindern.
Da ich jetzt nicht weiß wie es in Delphi aussieht, habe ich's mal in C# geschrieben:
Code:
void lvTestItemCheck(object sender, System.Windows.Forms.ItemCheckEventArgs e)
{
// Irgendeine Liste, in der die Indizes der Items stehen,
// deren CheckBoxes nicht geändert werden dürfen
ArrayList Indices2BeDisabled = new ArrayList();
Indices2BeDisabled.AddRange(new int[3] { 1, 3, 5 });
if (Indices2BeDisabled.Contains(e.Index) )
e.NewValue = e.CurrentValue;
}