AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

button farbig machen??

Ein Thema von malzeit · begonnen am 26. Feb 2007 · letzter Beitrag vom 4. Mär 2007
Antwort Antwort
Seite 2 von 2     12
Marcel_Mars
(Gast)

n/a Beiträge
 
#11

Re: button farbig manchen??

  Alt 2. Mär 2007, 14:25
Hallo
Also ich hab einen runden button mal selber erstellt und dort kann man die Farbe wählen. Wenn du willst kann ich dir den Code mal zeigen.

Freundliche Grüsse
Mars
  Mit Zitat antworten Zitat
malzeit

Registriert seit: 26. Feb 2007
14 Beiträge
 
#12

Re: button farbig manchen??

  Alt 3. Mär 2007, 19:00
Das wäre cool wenn du mir das mal schicken könntest!!
  Mit Zitat antworten Zitat
Marcel_Mars
(Gast)

n/a Beiträge
 
#13

Re: button farbig manchen??

  Alt 4. Mär 2007, 14:08
Hallo

Also erstens must du eine neue Anwendung eröffnen.Dann musst du im Menu Komponente auf ''Neue Komponente'' drücken und dann dort alles einstellen(der namen der Unit muss in Lib gespeichert werden). Dann die Zeilen in der neu erstellten Unit mit der hier ergänzen. Dann mustt du(in komponente) auf Komponente installieren, und dort(die vorhergespeicherte unit OButton.pas) einstellen(unten nichts verstellen!). Jezt auf Ok und dann sollte der Button im Register Zusätzlich sein. Wenn du nicht weisst wie man ein Bitmap eines Symbols ändert kann ich dir das auch noch erklären. Hoffentlich funktionierts bei dir!
Delphi-Quellcode:
unit OButton;

interface

uses
  SysUtils, Classes, Graphics, Controls;

const
  OColor: Array[1..3] of TColor = (clBlack, clGray, clWhite);

type
  TOButton = class(TCustomControl)
  private
    { Private-Deklarationen }
    x,y: Integer;
    FColor: TColor;
    FCaption: String;
    Pressed: Boolean;
  protected
    { Protected-Deklarationen }
    procedure Paint; override;
    procedure MouseDown
      (Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
    procedure MouseUp
      (Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
    procedure SetCaption (OText: String); virtual;
  public
    { Public-Deklarationen }
    constructor Create (AOwner: TComponent); override;
    procedure SetColor (OBrush: TColor); virtual;
  published
    { Published-Deklarationen }
    property OnClick;
    property OnMouseDown;
    property OnMouseUp;
    property OnEnter;
    property OnExit;
    property OnKeyPress;
    property OnKeyDown;
    property OnKeyUp;
    property Caption: String read FCaption write SetCaption;
    property Color: TColor read FColor write SetColor;
  end;

procedure Register;


implementation

constructor TOButton.Create (AOwner: TComponent);
begin
  inherited Create (AOwner);
  FColor := clBtnFace;
  Canvas.Brush.Color := FColor;
  Pressed := false;
  Caption := 'OButton';
  SetBounds (0,0,50,50);
end;

procedure TOButton.SetCaption (OText: String);
begin
  FCaption := OText;
  Repaint;
end;

procedure TOButton.SetColor (OBrush: TColor);
begin
  FColor := OBrush;
  Canvas.Brush.Color := FColor;
  Repaint;
end;

procedure TOButton.MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  inherited MouseDown (Button, Shift, X, Y);
  if Button = mbLeft then
  begin
    Pressed := true;
    Paint;
  end;
end;

procedure TOButton.MouseUp (Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  inherited MouseUp (Button, Shift, X, Y);
  Pressed := false;
  Paint;
end;

procedure TOButton.Paint;
var i: Integer;
begin
  // Position für Anzeige von Caption
  x := (Width - Canvas.TextWidth(Caption)) div 2;
  y := (Height- Canvas.TextHeight(Caption)) div 2;
  // OButton gedrückt
  if Pressed then
    for i := 1 to 3 do
    begin
      // Canvas.Pen.Color := OColor[4-i];
      Canvas.Pen.Color := OColor[(i+1) div 2];
      Canvas.Arc (i, i, Width-i, Height-i, i, i, i, i);
      Canvas.Ellipse (3, 3, Width-3, Height-3);
      Canvas.TextOut (x+1,y+1, Caption+' ');
    end
  // OButton nicht gedrückt
  else
    for i := 1 to 3 do
    begin
      Canvas.Pen.Color := OColor[i];
      Canvas.Arc (i, i, Width-i, Height-i, i, i, i, i);
      Canvas.Ellipse (3, 3, Width-3, Height-3);
      Canvas.TextOut (x,y, Caption+' ');
    end;
end;

procedure Register;
begin
  RegisterComponents ('Zusätzlich', [TOButton]);
end;
// Edit hatte was vergessen

Freundliche Grüsse
Mars
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

Re: button farbig manchen??

  Alt 4. Mär 2007, 14:10
Aus Delphi für Kids ne ?

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Marcel_Mars
(Gast)

n/a Beiträge
 
#15

Re: button farbig manchen??

  Alt 4. Mär 2007, 14:12
Jep, richtig erkannt. Wieso hast du das auch mal gemacht?

Freundliche Grüsse
Mars
  Mit Zitat antworten Zitat
Kreuz Bube

Registriert seit: 26. Feb 2007
Ort: nicht ganz am arsch der Welt aber soweit ist es auch nicht
1 Beiträge
 
#16

Re: button farbig manchen??

  Alt 4. Mär 2007, 14:13
Du kannst auch einfach einen Eigenen Button erstellen indem du ihn von TPanel ableitest und dann halt noch mousdown bzw mousup oder nur das click ereignis zuweist
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#17

Re: button farbig manchen??

  Alt 4. Mär 2007, 16:07
Jo klar

Mit dem Buch hab ich auch mal angefangen

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:46 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