AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DateTimePicker ohne Border

Ein Thema von DCoderHH · begonnen am 17. Mär 2017 · letzter Beitrag vom 17. Mär 2017
Antwort Antwort
DCoderHH

Registriert seit: 4. Feb 2015
Ort: Hamburg
84 Beiträge
 
Delphi 10 Seattle Professional
 
#1

DateTimePicker ohne Border

  Alt 17. Mär 2017, 08:42
Delphi-Version: 5
Wie kann ich die Border vom TDateTimePicker entfernen? Es soll vollkommen flach aussehen.
  Mit Zitat antworten Zitat
Headbucket

Registriert seit: 12. Dez 2013
Ort: Dresden
172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: DateTimePicker ohne Border

  Alt 17. Mär 2017, 09:46
Hallo,

da gibt es meines Wissens nach (noch) keine simple Lösung. Man kommt also wohl leider nicht um das Selbstzeichnen herum.

Folgenden Code habe ich z.B. hier gefunden: http://dxdelphi.blogspot.de/2016/04/...rame-from.html

Delphi-Quellcode:
unit DateTimePickerBorderless;

interface

uses
  System.SysUtils, System.Classes, Vcl.Controls, Vcl.ComCtrls, Vcl.Graphics,
  Winapi.Messages, Winapi.Windows;

type
  TDateTimePickerBorderless = class(TDateTimePicker)
  private
    { Private declarations }
    FInnerBorderColor: TColor;
    FOuterBorderColor: TColor;
    procedure WMPaint (var Message: TWMPaint); message WM_PAINT;
    procedure SetInnerBorderColor(const Value: TColor);
    procedure SetOuterBorderColor(const Value: TColor);
  protected
    { Protected declarations }
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; Override;
  published
    { Published declarations }
    property InnerBorderColor: TColor read FInnerBorderColor Write SetInnerBorderColor;
    property OuterBorderColor: TColor read FOuterBorderColor Write SetOuterBorderColor;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('emarti', [TDateTimePickerBorderless]);
end;

{ TDateTimePickerBorderless }

constructor TDateTimePickerBorderless.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ParentColor:= false;
  FInnerBorderColor:= clWhite;
  FOuterBorderColor:= clWhite;
end;

destructor TDateTimePickerBorderless.Destroy;
begin
  inherited;
end;

procedure TDateTimePickerBorderless.SetInnerBorderColor(const Value: TColor);
begin
  FInnerBorderColor:= Value;
  Invalidate;
end;

procedure TDateTimePickerBorderless.SetOuterBorderColor(const Value: TColor);
begin
  FOuterBorderColor:= Value;
  Invalidate;
end;

procedure TDateTimePickerBorderless.WMPaint(var Message: TWMPaint);
var
  OuterBrush, InnerBrush: HBRUSH;
  DC: hdc;
  R: TRect;
begin
  inherited;
  DC:= GetWindowDC(Handle);
  try
    OuterBrush:= CreateSolidBrush(FOuterBorderColor);
    InnerBrush:= CreateSolidBrush(FInnerBorderColor);
    try
      GetWindowRect(Handle, R);
      OffsetRect(R, -R.Left, -R.Top);
      FrameRect(DC, R, OuterBrush);
      InflateRect(R, -1, -1);
      FrameRect(DC, R, OuterBrush) ;
      InflateRect(R, -1, -1);
      FrameRect(DC, R, InnerBrush);
    finally
      DeleteObject(InnerBrush);
      DeleteObject(OuterBrush);
    end;
  finally
    ReleaseDC(Handle, DC);
  end;
end;

end.
Grüße
Headbucket
  Mit Zitat antworten Zitat
DCoderHH

Registriert seit: 4. Feb 2015
Ort: Hamburg
84 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: DateTimePicker ohne Border

  Alt 17. Mär 2017, 12:25
Danke, das läuft.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:45 Uhr.
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