Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Delphi Borderstyle einer Combobox? (https://www.delphipraxis.net/19173-borderstyle-einer-combobox.html)

Basic-Master 30. Mär 2004 14:28


Borderstyle einer Combobox?
 
Hi,
gibt es eine möglichkeit bei einer combobox den borderstyle auf bsNone umzustellen :roll:

DelphiDeveloper 30. Mär 2004 15:28

Re: Borderstyle einer Combobox?
 
es ist IMHO gar nicht so einfach.

Delphi-Quellcode:
 TComboBoxWithBorderStyle = class(TComboBox)
  private
    { Private-Deklarationen }
    FBorderStyle: TBorderStyle;
    procedure SetBorderStyle(const Value: TBorderStyle);
     protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    published
    { Published-Deklarationen }
     property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle default bsSingle;
  end;
Du kannst zwar schnell das Property ergaenzen aber dann geht die Arbeit im SetBorderStyle
erst richtig los. Du muss deine ComboBox ja jetzt anders zeichnen lassen. Das Edit den PfeilButton
und evtl. auch noch die aufgeklappte Box.
Ich wuerde mal nach FlatComboBox googlen und schauen wie die das dort gemacht
haben.

neolithos 30. Mär 2004 15:40

Re: Borderstyle einer Combobox?
 
Versuch mal das
Delphi-Quellcode:
SetWindowLong(ComboBox1.Handle, GWL_EXSTYLE, GetWindowLong(ComboBox1.Handle, GWL_EXSTYLE) and not WS_EX_CLIENTEDGE);
Geht das nicht muss ich stärkere geschütze Auffahren

SirThornberry 30. Mär 2004 15:44

Re: Borderstyle einer Combobox?
 
@neolithos: das geht nicht

neolithos 30. Mär 2004 15:47

Re: Borderstyle einer Combobox?
 
Und wie sieht es damit aus:

Delphi-Quellcode:
TFlatCombo = class (TComboBox)
protected
  procedure CreateParams(var Params : TCreateParams); override;
end;

procedure TFlatCombo.CreateParams(var Params : TCreateParams);
begin
  inherited;
  with Params do
    ExStyle := ExStyle and not WS_EX_CLIENTEDGE;
end;
:gruebel:

EDIT: Fehler beseitigt! Wer lesen kann ist klar im Vorteil! Vorallem die eigenen Texte!

SirThornberry 30. Mär 2004 16:01

Re: Borderstyle einer Combobox?
 
geht gar nicht:
1.) Das override musste hinter der implementation weg
2.) In der Zeile
Delphi-Quellcode:
Params := Params and not WS_EX_CLIENTEDGE
kommt die Fehlermeldung: "Operator not applicable to this operandtype

neolithos 30. Mär 2004 16:03

Re: Borderstyle einer Combobox?
 
Klappt es jetzt?

SirThornberry 30. Mär 2004 16:08

Re: Borderstyle einer Combobox?
 
Nein, bleibt weiterhin mit border, aber das war auch anzunehmen da setwindowlong ja eigentlich das gleiche macht

neolithos 30. Mär 2004 16:13

Re: Borderstyle einer Combobox?
 
Stimmt!

Aber es liegt daran, das ich einem Irtum aufgelaufen bin. Ich dachte die ComboBox funktioniert ähnlich der TextBox. Dummerweise zeichnet die ComboBox den Rahmen anders.

neolithos 30. Mär 2004 16:18

Re: Borderstyle einer Combobox?
 
In der ComboBox wird der Rahmen auf die ClientArea gezeichnet. Das bedeutet, wenn man ihn loswerden möchte müsste man da ansetzen. Das ist aber recht gefährlich und umfangreich!

> falls du eine Lösung gefunden hast, poste sie bitte mal <


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 Uhr.
Seite 1 von 2  1 2      

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