Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Property Read Only bei Combobox hinzufügen (Style = csSimple)

  Alt 24. Okt 2011, 19:05
Hallo zusammen,

da ich eine Combobox suche, die eine Read Only Eigenschaft hat und bis jetzt keine passende gefunden habe, die für 32Bit & 64Bit funktioniert habe ich mal in meinen alten Beispielen gesucht und auch etwas gefunden.

Delphi-Quellcode:
type
  TComboBoxReadOnly = class(TComboBox)
  private
    FReadOnly: Boolean;
    procedure SetReadOnly(const Value: Boolean);
  public
    { Public-Deklarationen }
  published
    property ReadOnly: Boolean read FReadOnly write SetReadOnly default False;
  end;

implementation

procedure TComboBoxReadOnly.SetReadOnly(const Value: Boolean);
begin
  if FReadOnly <> Value then
  begin
    FReadOnly := Value;
    if HandleAllocated then
      SendMessage(EditHandle, EM_SETREADONLY, Ord(Value), 0);
  end;
end;
Wenn der Style der Combobox auf csDropDown steht, funktioniert das Read Only zumindest für die Texteingabe hervorragend. Jetzt gibt es noch zwei kleine Problemchen. Ich hätte die Option Read Only auch beim Style csSimple. Ich habe noch nicht so viele Komponeten abgeleitet und verändert. Was müsste ich noch hinzufügen oder ändern, dass die Read Only Option auch im Style csSimple funktioniert ?
Das zweite Problem ist, dass wenn ich die Property ReadOnly auf True setze im Style csDropDown, kann ich den Wert aus der Combobox immer noch ändern. Wie kann ich da die Auswahl der Werte abstellen ?

Es können auch ein paar Links sein, wo ich mir das ganze nachlesen kann.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat