Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Digital-Anzeige (https://www.delphipraxis.net/51679-digital-anzeige.html)

faux 17. Aug 2005 00:44


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.

Luckie 17. Aug 2005 00:49

Re: Digital-Anzeige
 
Gibt es da auch eine Beispielanwendung zu?

negaH 17. Aug 2005 01:30

Re: Digital-Anzeige
 
Hi Faux,

du weist schon das es TrueType Fonts gibt ?

Gruß Hagen

Luckie 17. Aug 2005 02:16

Re: Digital-Anzeige
 
Zitat:

Zitat von negaH
Hi Faux,

du weist schon das es TrueType Fonts gibt ?

Nun ja, er hat eben seine Fingerübung hier veröffentlich, dagegen ist nichts einzuwenden. ;)

Robert Marquardt 17. Aug 2005 04:53

Re: Digital-Anzeige
 
Hau die Werte in const Arrays und benutze Schleifen zur Initialisierung.

negaH 17. Aug 2005 06:29

Re: Digital-Anzeige
 
@Luckie:

Zitat:

Nun ja, er hat eben seine Fingerübung hier veröffentlich, dagegen ist nichts einzuwenden.
Das war ja von meiner Seite nur ein Hinweis. Ich sehe es genauso wie du, aber es könnte ja sein das er noch nicht wusste das es TrueType Fonts gibt die das was er umständlich in eine Komponente reinpackt viel einfacher machen können. Einfach ein TLabel, Font auf entsprechenden LED Font, von denen es hunderte gibt, und fertig.
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

KLS 17. Aug 2005 07:26

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;

faux 17. Aug 2005 08:17

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:
if (Value < 0) or (Value > 9) then
  Value := 0;
Das ist doch korrekt so, oder?
Delphi gibt mir immer folgende Warnung aus:
Code:
[Warnung] Unit2.pas(82): Der Vergleich ergibt immer Falsch

Kroko1999 17. Aug 2005 09:02

Re: Digital-Anzeige
 
Zitat:

Zitat von faux
...
EDIT:
In der Procedure SetValue würde noch das reingehören:
Delphi-Quellcode:
if (Value < 0) or (Value > 9) then
  Value := 0;
Das ist doch korrekt so, oder?
Delphi gibt mir immer folgende Warnung aus:
Code:
[Warnung] Unit2.pas(82): Der Vergleich ergibt immer Falsch

(1) ein Byte kleiner 0 gibt es noch nicht!
(2) ich hätte vMain auch weggelassen und dafür TZiffer von TCustomPanel abgeleitet. :idea:

faux 17. Aug 2005 09:22

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 06:02 Uhr.
Seite 1 von 2  1 2      

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