AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Digital-Anzeige
Thema durchsuchen
Ansicht
Themen-Optionen

Digital-Anzeige

Ein Thema von faux · begonnen am 17. Aug 2005 · letzter Beitrag vom 18. Aug 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von faux
faux
Registriert seit: 18. Apr 2004
Hallo!

Mir war mal etwas langweilig und da hab ich eine Digitalanzeige programmiert.
Man kann sicherlich was dran verbessern. Bitte um vorschläge.

Grüße Faux

EDIT:
Habe mal die aktuelle Version angehängt, dass der Thread übersichtlicher wird.
Angehängte Dateien
Dateityp: pas unit2_984.pas (2,4 KB, 37x aufgerufen)
Dateityp: exe project1_153.exe (168,0 KB, 84x aufgerufen)
Dateityp: zip tziffer_119.zip (3,1 KB, 35x aufgerufen)
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
 
Benutzerbild von Kroko1999
Kroko1999

 
Turbo Delphi für Win32
 
#11
  Alt 17. Aug 2005, 12:58
Zitat von faux:
1)...
2) Aber dann hab ich die ganzen TPanel Methoden und eigenschaften im Root (nennt man das da so?). Also wenn ich TZiffer. schreibe, dann kommt gleiche eine Liste mit allen TPanel Methoden und das finde ich hier IMHO etwas überflüssig.
es sind nur die con TCustomPanel public/published-Methoden, und dies dürften nicht soviel sein
ich wollte nämlich aus dem 1.Beitrag TZiffer.SetBounds (...) aufrufen und dies ging nicht!

//EDIT: man kann auch auf dei UnterPanels verzichten, wenn man in Paint direkt zeichnet, beim ändern muss man nur Self.Invalidate aufrufen!
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

 
Turbo Delphi für Win32
 
#12
  Alt 17. Aug 2005, 15:56
Zitat von Kroko1999:
man kann auch auf dei UnterPanels verzichten, wenn man in Paint direkt zeichnet, beim ändern muss man nur Self.Invalidate aufrufen!
Wie??
Faux Manuel
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

 
Turbo Delphi für Win32
 
#13
  Alt 18. Aug 2005, 12:16
so
Delphi-Quellcode:
unit unitZiffer;

interface

uses
  Classes, Graphics, ExtCtrls;

type
{-- Range --}
  TValueRange = 0..9;
{-- Class: --}
TCustomZiffer = class (TCustomPanel)
    constructor Create (AOwner: TComponent); override;
  private
    FNumerus: TValueRange;
    FBarColor: TColor;
    FFrameColor: TColor;
    procedure SetNumerus(const Value: TValueRange);
    procedure SetBarColor(const Value: TColor);
    procedure SetFrameColor(const Value: TColor);
  protected
    procedure Paint; override;
    property Numerus: TValueRange read FNumerus write SetNumerus;
    property BarColor: TColor read FBarColor write SetBarColor;
    property FrameColor: TColor read FFrameColor write SetFrameColor;
  public
end;

{-- Class: --}
TZiffer= class (TCustomZiffer)
  public
  published
    property Numerus;
    property BarColor;
    property FrameColor;
    // hier kann man weitere Eigenschaften, die man benötigt freigeben
end;


implementation

{ TCustomZiffer }

constructor TCustomZiffer.Create(AOwner: TComponent);
begin
  inherited;
  FNumerus := 0;
  FBarColor := clRed;
  FFrameColor := clYellow;
  Width := 65;
  Height := 105;
end;

procedure TCustomZiffer.Paint;
const
  coBars: array[TValueRange] of Byte =
          ($7E,$18,$6D,$3D,$1B,
           $37,$77,$1C,$7F,$3F);

  coPos: array[0..6,0..3] of Integer = ((9,33,48,16),(33,9,16,8),(9,33,8,16),
                                        (33,9,16,48),(33,9,56,48),(9,33,88,16),(33,9,56,8));
var
  I,B: Byte;
begin
  inherited;
  B := 1;
  Canvas.Brush.Color := FBarColor;
  Canvas.Pen.Color := FFrameColor;
  for I := 0 to 6 do
  begin
    if (B and coBars[FNumerus])>0 then
      begin
        Canvas.Rectangle(coPos[I][3],coPos[I][2],
                         coPos[I][3]+coPos[I][1],
                         coPos[I][2]+coPos[I][0]);

      end;
    B := B shl 1;
  end;


end;

procedure TCustomZiffer.SetBarColor(const Value: TColor);
begin
  if Value<>FBarColor then
    begin
      FBarColor := Value;
      Invalidate;
    end;
end;

procedure TCustomZiffer.SetFrameColor(const Value: TColor);
begin
  if FFrameColor<>Value then
    begin
      FFrameColor := Value;
      Invalidate;
    end;
end;

procedure TCustomZiffer.SetNumerus(const Value: TValueRange);
begin
  if Value<>FNumerus then
    begin
      FNumerus := Value;
      Invalidate;
    end;
end;

end.
  Mit Zitat antworten Zitat
TheXception
 
#14
  Alt 18. Aug 2005, 13:57
Zitat von negaH:
Hi Faux,

du weist schon das es TrueType Fonts gibt ?
Die müssten aber bei dem jeweiligen user installiert sein.
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

 
Turbo Delphi für Win32
 
#15
  Alt 18. Aug 2005, 14:44
Das obendrein....
Faux Manuel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:06 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