Results 1 to 4 of 4

Thread: Border verwijderen in ComboBox

  1. #1

    Border verwijderen in ComboBox

    Hallo allemaal,

    Ik zou graag de border van een ComboBox willen verwijderen, zowel in de gesloten toestand als in de open toestand. De vraag is kan dit en hoe?

    Met een vriendelijke groet, Frans

  2. #2
    Voor de border in gesloten toestand:
    http://www.swissdelphicenter.ch/en/showcode.php?id=1760

    Delphi Code:
    1. uses Windows;
    2.  
    3. procedure TForm1.FormCreate(Sender: TObject);
    4. begin
    5.   SetWindowRgn(ComboBox1.Handle, CreateRectRgn(3, 3,
    6.     ComboBox1.Width - 3, ComboBox1.Height - 3), True);
    7. end;
    (voor Windows 10 moet het schijnbaar 3 zijn i.p.v. 2)

  3. #3
    *+E13818MU01F0F* Norrit's Avatar
    Join Date
    Aug 2001
    Location
    Landgraaf
    Posts
    967
    Of misschien een TComboBox afgeleide waarbij je in de OnPaint diezelfde truc uithaalt
    Dit zou dan ook meteen moeten werken voor de open toestand
    Dit ziet eruit alsof er je gewoon de border pixels niet tekent.

    Makkelijkst is deze afgeleide dezelfde naam te geven (TComboBox = class(TComboBox))
    Door deze dan eerder (dacht ik) in de uses te zetten wordt die code dan gebruikt voor TComboBox. Levert je ook meteen uniform gedrag op voor alle comboboxen.

    -edit-
    Voorbeeld van de WmPaint:
    http://delphidabbler.com/tips/84
    Alleen ipv de TNoBorderComboBox gewoon TComboBox aanhouden (zie eerdere opmerking).
    Objective reality is a delirium caused by lack of alcohol in blood

  4. #4
    Quote Originally Posted by Norrit View Post
    Of misschien een TComboBox afgeleide waarbij je in de OnPaint diezelfde truc uithaalt
    En laat er nou nét voor de TComboBox geen OnPaint te bestaan

    Waarschijnlijk omdat het een OS-component is.

    En als die er al zou zijn betwijfel ik of die voor de pulldown ook zou werken want dat is intern in Windows weer een apart component (dropdown).

    Edit: Je kunt toch wel de WM_PAINT afvangen maar die doet niets voor de pulldown.
    Delphi Code:
    1. type
    2.   TComboBox = class(StdCtrls.TComboBox)
    3.   public
    4.     procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
    5.   end;
    6. // ...
    7. procedure TComboBox.WMPaint(var Message: TWMPaint);
    8. begin
    9.   // inherited;
    10. end;

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •