Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Button Abrunden


Stinger47 - Mi 25.06.08 13:10
Titel: Button Abrunden
Hi,
gibt es eine Möglichkeit einen BitButton rund zu machen?
Vielleicht irgendwie über RoundRect?

Grüße...:)


Delete - Mi 25.06.08 13:14

du kannst doch ein Shape nehmen.Kann man zum Button umformen. :wink:


Stinger47 - Mi 25.06.08 13:26

Ich lade Bilder und setze die dann auf BitButtons.
Nun wollte ich nur noch des Designs wegen Bild und somit auch BitButton rund haben...:)

Lässt sich das runde Bild dann einfach über Canvas auf das Shape zeichnen?

Bzw. gibt es nicht noch eine Möglichkeit die Knöpfe danach rund zu bekommen?


Boldar - Mi 25.06.08 14:56

Irgendwo habe ich mal diesen Code gefunden:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure ButtonStyle(aFrm: TForm);
var
  aRgn: hRgn;
  tmp : TComponent;
  i : integer;
begin
  for i:= aFrm.ComponentCount-1 downto 0 do
    begin
      if (aFrm.components[i] is TButton) then
        begin
          tmp:=aFrm.components[i];
          with TButton(tmp) do
            begin
              aRgn:= createRoundRectRgn(00, width, height, 2020);
              setWindowRgn(handle, aRgn, true);
            end;
        end;
    end;
end;



dass kan man z.B. so aufrufen:

Delphi-Quelltext
1:
buttonstyle (self);                    


FinnO - Mi 25.06.08 15:09

wie wärs mit nem TXPManifest?


ZeitGeist87 - Mi 25.06.08 15:46

user profile iconFinnO hat folgendes geschrieben:
wie wärs mit nem TXPManifest?


Bringt dir unter W2K nix bzw. dann nicht, wenn er den Standardlook hat oder aber ein anderes Theme mit eckigen Button :P


Boldar - Do 26.06.08 11:01

user profile iconBoldar hat folgendes geschrieben:
Irgendwo habe ich mal diesen Code gefunden:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure ButtonStyle(aFrm: TForm);
var
  aRgn: hRgn;
  tmp : TComponent;
  i : integer;
begin
  for i:= aFrm.ComponentCount-1 downto 0 do
    begin
      if (aFrm.components[i] is TButton) then
        begin
          tmp:=aFrm.components[i];
          with TButton(tmp) do
            begin
              aRgn:= createRoundRectRgn(00, width, height, 2020);
              setWindowRgn(handle, aRgn, true);
            end;
        end;
    end;
end;



dass kan man z.B. so aufrufen:

Delphi-Quelltext
1:
buttonstyle (self);                    

Das muss man Natürlich auf tbitbtn umformen, dass heisst Tbitbtn statt Tbutton schreibenh. Bei mir Funktioniert dass jedoch gut.