Autor Beitrag
Ruditschka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 66



BeitragVerfasst: So 18.01.04 18:23 
Hallo zusammen!

Ich möchte am Bildschirm eine LED darstellen, die je nach dem, wie hoch ein Slider steht gedimmt werden soll.

Bis jetzt versuche ich das mit folgender Prozedur:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
procedure TForm1.PaintLed(var Image: TImage; Value: Byte);
var
  Color: TColor;
begin
  Image.Picture.Bitmap.LoadFromResourceName(hInstance, 'Led');
  Color := RGB(255, 255 - Value, 255 - Value);
  with Image.Canvas do
    begin
    Pixels[6, 3] := Color;  // ab hier werden die Pixel geändert, die der
    Pixels[8, 3] := Color;  // LED ihre Farbe geben
    Pixels[3, 6] := Color;
    Pixels[3, 8] := Color;
    Pixels[6, 11] := Color;
    Pixels[8, 11] := Color;
    Pixels[11, 6] := Color;
    Pixels[11, 8] := Color;
    Pixels[8, 5] := Color;
    Pixels[6, 6] := Color;
    Pixels[7, 6] := Color;
    Pixels[8, 6] := Color;
    Pixels[9, 6] := Color;
    Pixels[5, 7] := Color;
    Pixels[6, 7] := Color;
    Pixels[7, 7] := Color;
    Pixels[8, 7] := Color;
    Pixels[9, 7] := Color;
    Pixels[5, 8] := Color;
    Pixels[6, 8] := Color;
    Pixels[7, 8] := Color;
    Pixels[8, 8] := Color;
    Pixels[9, 8] := Color;
    Pixels[6, 9] := Color;
    Pixels[7, 9] := Color;
    Pixels[8, 9] := Color;
    end;
end;


Anstatt dass die LED jetzt langsam von Weiß nach Rot wechselt, wid sie erst weiß, dann nach einigem Schieben grau und dann direkt voll-rot (also RGB(255, 0, 0)). Wie kann ich aus dem Farbstottern einen Verlauf machen, bei dem ich jeden Farbwert darstellen kann?

So nach dem Motto: "Mein Grafikprogramm hält sich auch nicht an irgendwelche Paletten..."
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: So 18.01.04 19:38 
Kurze Frage nebenbei, wieso lädst du eine Resource, wenn du die Pixel doch selber zeichnest? in D gibts ne Paintbox dafür. Wenn du vielleicht nur eine 16-farbige Bitmap lädst, verwendet der Canvas derselbigen imho die selbe Palette (nix mit Farbverlauf).

grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
Ruditschka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 66



BeitragVerfasst: So 18.01.04 21:30 
Das Bitmap in der Resource ist die LED aus der Delphi-Image-Sammlung (Programme\Gemeinsame Dateien\Borland Shared\Images\Buttons\Led1On.BMP, linke Seite des Bitmaps). Ich wollte nun die roten Pixel im Bild durch eigene Pixel ersetzen um die LED quasi dimmen zu können.

Delphis Bild-Editor sagt, dass es eine 16 Farben Bitmap ist. Wie kann ich das nun ändern um dort wenigstens ein paar verschiedene rot-Töne einfügen zu können?
Und was muss ich ändern?