Du hast geschrieben
Delphi-Quellcode:
Procedure TDigilabel.setOffset;
Begin
If Offset Mod 3 = 0 Then Begin
fOffset := Offset;
setcaption(caption);
End;
End;
und in deiner Create Function wnderst du dich warum es nicht geht Offset = -9 zu machen.
Ich kann dir sagen wieso. Der Mod Befehl geht nur für Positibve Zahlen.
Delphi-Quellcode:
Procedure TDigilabel.setOffset;
var tmp:Integer;
Begin
tmp:=abs(offset);
If tmp Mod 3 = 0 Then Begin
fOffset := Offset;
setcaption(caption);
End;
End;
wäre da schon besser.
Deine Kombo testen konnte ich aber nicht. Da ich sie nicht installieren wollte und folgender Code nicht aussreicht um sie auf dem Formular an zu zeigen.
Delphi-Quellcode:
Unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Digilabel;
Type
TForm1 =
Class(TForm)
Procedure FormCreate(Sender: TObject);
Procedure FormClose(Sender: TObject;
Var Action: TCloseAction);
private
{ Private-Deklarationen }
bla: TDigilabel;
public
{ Public-Deklarationen }
End;
Var
Form1: TForm1;
Implementation
{$R *.DFM}
Procedure TForm1.FormCreate(Sender: TObject);
Begin
bla := TDigilabel.create(self);
bla.parent := Form1;
bla.caption := '
Test';
bla.Visible := true;
bla.Left := 10;
bla.Top := 10;
End;
Procedure TForm1.FormClose(Sender: TObject;
Var Action: TCloseAction);
Begin
bla.free;
End;
End.
[Edit]
Delphi-Quellcode:
Procedure TDigilabel.Muster(Farbe: TColor);
Var
x, y: integer;
Begin
For x := 0 To width Do
If x Mod 3 = 0 Then
For y := 0 To height Do
If y Mod 3 = 0 Then Begin
canvas.Pixels[x - 2, y + 1] := Farbe;
canvas.Pixels[x - 1, y + 1] := Farbe;
canvas.Pixels[x - 2, y + 2] := Farbe;
canvas.Pixels[x - 1, y + 2] := Farbe;
End;
mach das lieber mit Scanline Canvas.pixels ist etwas arg langsam.
Dito bei
Procedure TDigilabel.Digit(vonLinks: integer; vonOben: integer);