Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Property Read Only bei Combobox hinzufügen (Style = csSimple) (https://www.delphipraxis.net/163992-property-read-only-bei-combobox-hinzufuegen-style-%3D-cssimple.html)

Bummi 25. Okt 2011 18:56

AW: Property Read Only bei Combobox hinzufügen (Style = csSimple)
 
Ich verstehe die letzte Frage nicht ganz...
Du rufst Du
if not readonly then inherited;
auf die Procedure ist ja mit override und nicht ohne alles oder mit overload oder reintroduce deklariert

RWarnecke 25. Okt 2011 19:05

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

Zitat von Bummi (Beitrag 1132513)
Ich verstehe die letzte Frage nicht ganz...
Du rufst Du
if not readonly then inherited;
auf die Procedure ist ja mit override und nicht ohne alles oder mit overload oder reintroduce deklariert

Ok, vergiss meine letzte Frage. Habe die Procedure KeyPress mit dem Ereignis OnKeyPress der Komponente verwechslet, weil nicht richtig gelesen. :wall: Deshalb erübrigt sich meine Frage nach dem KeyPress.

Koloss 10. Jan 2019 15:21

AW: Property Read Only bei Combobox hinzufügen (Style = csSimple)
 
Gibt es hier ein Lösung? Weil das ganze hier ist keine Lösung.

Das man KeyPress nichts macht kann man doch einfacher auch lösen, es geht doch auch darum das er beim auswählen eines Eintrags den Text nicht reinschreibt. Ich möchte aber trotzdem die Einträge sehen. Nur beim auswählen sollte nichts passieren !

Koloss 11. Jan 2019 10:42

AW: Property Read Only bei Combobox hinzufügen (Style = csSimple)
 
Meine Lösung:

Code:
unit ComboBoxReadOnly;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type
  TComboBox = class(StdCtrls.TComboBox)
  private
    FReadOnly: Boolean;
    LastItemIndex : Integer;
    procedure SetReadOnly(const Value: Boolean);
    procedure KeyPress(var Key: Char); override;
    Procedure CreateWnd; Override;
  public
    { Public-Deklarationen }
  published
    procedure DropDown; override;
    procedure CloseUp; override;
    property ReadOnly: Boolean read FReadOnly write SetReadOnly default False;
  end;

implementation

procedure TComboBox.CloseUp;
begin
  inherited;
  ItemIndex := LastItemIndex;
end;

procedure TComboBox.CreateWnd;
begin
  inherited;
  ReadOnly := FReadOnly;
end;

procedure TComboBox.DropDown;
begin
  inherited;
  if readonly then
    LastItemIndex := ItemIndex;
end;

procedure TComboBox.KeyPress(var Key: Char);
begin
  if not readonly then
    inherited;

end;

procedure TComboBox.SetReadOnly(const Value: Boolean);
begin
  FReadOnly := Value;
  if HandleAllocated then
    SendMessage(EditHandle, EM_SETREADONLY, Ord(Value), 0);
end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz