![]() |
Digital-Anzeige
Liste der Anhänge anzeigen (Anzahl: 3)
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. |
Re: Digital-Anzeige
Gibt es da auch eine Beispielanwendung zu?
|
Re: Digital-Anzeige
Hi Faux,
du weist schon das es TrueType Fonts gibt ? Gruß Hagen |
Re: Digital-Anzeige
Zitat:
|
Re: Digital-Anzeige
Hau die Werte in const Arrays und benutze Schleifen zur Initialisierung.
|
Re: Digital-Anzeige
@Luckie:
Zitat:
Aus eigener Erfahrung kann ich sagen das ich schon einige Sachen programmiert habe und später feststellen musste das es um vieles einfacher geht. Das einzigste was mir eben damals gefehlt hatte, war Wissen darum das es einfacher geht und eben eine Person die es mir auch sagte ;) Ist also keinerlei Kritik gewesen, einfach ein Hinweis. Gruß Hagen |
Re: Digital-Anzeige
Hiermal die ganze sache mit Arrays. Macht das nen stückchen kürzer ;)
Delphi-Quellcode:
constructor TZiffer.Create(AOwner : TComponent; Parent : TWinControl);
const Positionen : 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 : Byte; begin vMain := TPanel.Create(AOwner); vMain.Parent := Parent; vMain.Width := 65; vMain.Height := 105; for i := 0 to 6 do begin vPanels[i] := TPanel.Create(AOwner); with vPanels[i] do begin Parent := vMain; Height := Positionen[i,0]; Width := Positionen[i,1]; Top := Positionen[i,2]; Left := Positionen[i,3]; end; end; end; procedure TZiffer.SetValue(Value : Byte); const Werte : array[0..9,0..6] of byte = ((0,1,1,1,1,1,1),(0,0,0,1,1,0,0),(1,0,1,1,0,1,1),(1,0,1,1,1,1,0),(1,1,0,1,1,0,0),(1,1,1,0,1,1,0),(1,1,1,0,1,1,1),(0,0,1,1,1,0,0),(1,1,1,1,1,1,1),(1,1,1,1,1,1,0)); var i : byte; begin for i := 0 to 6 do vPanels[i].Visible := bool(Werte[value,i]); vValue := Value; end; |
Re: Digital-Anzeige
Danke, KLS und Robert! So ist das Programm nur noch mehr 1/3 so groß... ;)
Ja, ich weiß dass es solche Fonts gibts, nur dann hätt ich ja nix zu tun... ;) Beispielanwenung im 1. Post. EDIT: In der Procedure SetValue würde noch das reingehören:
Delphi-Quellcode:
Das ist doch korrekt so, oder?
if (Value < 0) or (Value > 9) then
Value := 0; Delphi gibt mir immer folgende Warnung aus:
Code:
[Warnung] Unit2.pas(82): Der Vergleich ergibt immer Falsch
|
Re: Digital-Anzeige
Zitat:
(2) ich hätte vMain auch weggelassen und dafür TZiffer von TCustomPanel abgeleitet. :idea: |
Re: Digital-Anzeige
1) Ups... Jap, ich dachte das is ein Integer... :oops:
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 Uhr. |
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