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/)
-   -   Delphi WordWrap für RadioGroup? (https://www.delphipraxis.net/71704-wordwrap-fuer-radiogroup.html)

Helmi 8. Jan 2008 23:02

Re: WordWrap für RadioGroup?
 
Danke

Hat funktioniert!

Bei BS_TOP überschneiden sich die Texte

taaktaak 8. Jan 2008 23:03

Re: WordWrap für RadioGroup?
 
Moin, Moin,
wieso soll der Text nach "oben wandern"? Der RadioButton mittig vor dem mehrzeiligen Text ist doch nicht übel anzusehen?

Übrigens, eine Alternative ist natürlich, eine eigene Komponente vom RadioButton abzuleiten, die WordWrap implementiert. Ich persönlich nutze die RadioGroup nicht, sondern stelle das lieber selber zusammen - da habe ich mehr "optische Gestaltungsfreiheit".

Die eigene Komponente ist mit wenigen Zeilen erstellt:

Delphi-Quellcode:

.
..
...

TWWRadiobutton      = class(TRadioButton)
                         private
                           FWordWrap : Boolean;
                           procedure SetWordWrap(Value:Boolean);
                         protected
                           procedure CreateParams(var Params:TCreateParams); override;
                         public
                           constructor Create(AOwner:TComponent); override;
                         published
                           property WordWrap : Boolean read FWordWrap write SetWordWrap default true;
                         end;

...
...

constructor TWWRadiobutton.Create(AOwner:TComponent);
begin
  inherited Create(AOwner);
  FWordWrap:=true;
end;

procedure TWWRadiobutton.SetWordWrap(Value:Boolean);
begin
  if (FWordWrap<>Value) then begin
    FWordWrap:=Value;
    ReCreateWnd;
    end;
end;

procedure TWWRadiobutton.CreateParams(var Params:TCreateParams);
begin
  inherited CreateParams(Params);
  {$Warnings Off}
  if FWordWrap then Params.Style:=Params.Style or     BS_MULTILINE or    BS_TOP
               else Params.Style:=Params.Style and not BS_MULTILINE or not BS_TOP;
  {$Warnings On}
end;

procedure Register;
begin
  RegisterComponents('~~~',[TWWRadiobutton]);
end;

end.
Nach gleichem Schema kannst du auch z.B. die CheckBox oder den Button "mit WordWrap" versehen...

Gruß
Ralph


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

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