Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   .: Dezimalfarbwerte :. (https://www.delphipraxis.net/59321-dezimalfarbwerte.html)

Chrissi91 20. Dez 2005 18:16


.: Dezimalfarbwerte :.
 
Liste der Anhänge anzeigen (Anzahl: 2)
.: Dezimalfarbwerte :.

:hi: Hallo,

ich freue mich, euch mein kleinstes und sinnvollstes :xmas: Projekt Dezimalfarbwerte vorstellen zu können. Man kann damit einen Farbverlauf erzeugen, dessen 2 Hauptfarben man vorher wählen kann. Diese werden in Dezimalzahlenumgewandelt werden und müssen nur noch hier eingetragen werden:

Delphi-Quellcode:
procedure Hintergrund(Canvas: TCanvas; Color1, Color2: TColor; Rect: TRect);
var
 X, R, G, B: Integer;
begin
 for X := Rect.Top to Rect.Bottom do
  begin
   R:=Round(GetRValue(Color1)+((GetRValue(Color2)-GetRValue(Color1))*X/(Rect.Bottom-Rect.Top)));
   G:=Round(GetGValue(Color1)+((GetGValue(Color2)-GetGValue(Color1))*X/(Rect.Bottom-Rect.Top)));
   B:=Round(GetBValue(Color1)+((GetBValue(Color2)-GetBValue(Color1))*X/(Rect.Bottom-Rect.Top)));
   Canvas.Pen.Color:=RGB(R,G,B);
   Canvas.Pen.Width:=1;
   Canvas.Pen.Style:=psInsideFrame;
   Canvas.MoveTo(Rect.Left,X);
   Canvas.LineTo(Rect.Right,X);
  end;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
 Hintergrund(Canvas,Farbwert1,Farbwert2,Rect(0,0,width,height));
end;

dahead 20. Dez 2005 18:24

Re: .: Dezimalfarbwerte :.
 
d. h. du hast einfach das hier kompiliert, oder wie?

hast du davon einen screenshot, würde mich interessieren. danke!

Neutral General 20. Dez 2005 18:28

Re: .: Dezimalfarbwerte :.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von dahead
d. h. du hast einfach das hier kompiliert, oder wie?

hast du davon einen screenshot, würde mich interessieren. danke!

Im Prinzip hat er das... und wenn das das sinnvollste Programm ist das er je (nicht selbst) programmiert hat... na dann^^

Fazit: Sieht zwar ganz gut aus, aber Benutzerunfreundlich und der Code ist nur abgeschrieben und was daran nütlich ist weiß ich nicht...^^

Khabarakh 20. Dez 2005 18:33

Re: .: Dezimalfarbwerte :.
 
Warum als Dezimalzahl? Hexadezimal finde ich viel übersichtlicher. Außerdem sollte man noch das Format bestimmen können, also $00BGR für TColor usw. und $FFRGB für z.B. GR32.

Chrissi91 20. Dez 2005 18:39

Re: .: Dezimalfarbwerte :.
 
Das mit dem sinnvoll :xmas: war eher nicht so ganz ernst gemeint ;) . Aber ich finde es (für mich) sehr nützlich, um die Farben in Dezimalwerte umzurechnen. Wenn ihr es wissen wollt: Der Code ist von dem angegebenen Link. Aber ich habe es mit meinem Computerlehrer umgeschrieben, um es ein wenig verständlicher für mich zu machen. Ich zumindest habe die Dezimalzahlen nicht im Kopf ;) Sollte eher ein kleines Tool für mich sein.

P.S.: Den obigen Code zum Einsetzen habe ich nur aus dem Link kopiert, da der Quelltext bei mienem Computerlehrer ist.

Neutral General 20. Dez 2005 18:52

Re: .: Dezimalfarbwerte :.
 
Ich glaube wenn du einfach den Farbverlauf weggelassen hättest und gesagt hättest das dein Programm Farben in Dezimalwerte umrechnet dann wäre das sogar noch besser angekommen :mrgreen:

ichbins 20. Dez 2005 19:18

Re: .: Dezimalfarbwerte :.
 
wie wärs mit:

- automatisch anpassen (ja, mein PC hat genügend Rechneleistung, um das zu schaffen)
- xpstyle
- wieso müssen die edits readonly sein?

Chrissi91 20. Dez 2005 19:27

Re: .: Dezimalfarbwerte :.
 
Damit keiner Buchstaben eintippt und dann eine Fehlermeldung kommt ;)

P.S.: Alles bis auf das automatische Ändern wurde hinzugefügt im ersten Beitrag als Dezimalfarbwerte 1.1

Jelly 20. Dez 2005 19:41

Re: .: Dezimalfarbwerte :.
 
Ich muss jetzt mal ein bischen zitieren:
Zitat:

Zitat von Chrissi91
Der Code ist von dem angegebenen Link. Aber ich habe es mit meinem Computerlehrer umgeschrieben, um es ein wenig verständlicher für mich zu machen.

OK, dann zeig mir jetzt mal eine Zeile Code, die bei folgend beiden Quellcodes anders ist. (ausser vom Namen der Prozedur), und was bitte soll dann verständlicher geworden sein :gruebel:

Und wenn DU dann schreibst, dass Du Dein sinnvollstes Programm vorstellst, hab ich damit echt ein Problem, denn:
  • Es ist in keinster Weise von Dir, ist einfach nur kopiert ohne Quellenangabe.
  • Für mich persönlich ist die Definition von sinnvoll etwas erweiterbar

Hier nochmal zum Vergleich die beiden Quellcodes:
Zitat:

Zitat von Delphi Library Topic 21528
Delphi-Quellcode:
procedure DrawGradientH(Canvas: TCanvas; Color1, Color2: TColor; Rect: TRect);
var
  X, R, G, B: Integer;
begin
  for X := Rect.Top to Rect.Bottom do begin
    R := Round(GetRValue(Color1) + ((GetRValue(Color2) - GetRValue(Color1)) * 
      X / (Rect.Bottom - Rect.Top)));
    G := Round(GetGValue(Color1) + ((GetGValue(Color2) - GetGValue(Color1)) * 
      X / (Rect.Bottom - Rect.Top)));
    B := Round(GetBValue(Color1) + ((GetBValue(Color2) - GetBValue(Color1)) * 
      X / (Rect.Bottom - Rect.Top)));

 
    Canvas.Pen.Color := RGB(R, G, B);
    Canvas.Pen.Width := 1;
    Canvas.Pen.Style := psInsideFrame;

 
    Canvas.MoveTo(Rect.Left, X);
    Canvas.LineTo(Rect.Right, X);
  end;
end;

Zitat:

Zitat von chrissi91
Delphi-Quellcode:
procedure Hintergrund(Canvas: TCanvas; Color1, Color2: TColor; Rect: TRect);
var
X, R, G, B: Integer;
begin
for X := Rect.Top to Rect.Bottom do
  begin
   R:=Round(GetRValue(Color1)+((GetRValue(Color2)-GetRValue(Color1))*X/(Rect.Bottom-Rect.Top)));
   G:=Round(GetGValue(Color1)+((GetGValue(Color2)-GetGValue(Color1))*X/(Rect.Bottom-Rect.Top)));
   B:=Round(GetBValue(Color1)+((GetBValue(Color2)-GetBValue(Color1))*X/(Rect.Bottom-Rect.Top)));
   Canvas.Pen.Color:=RGB(R,G,B);
   Canvas.Pen.Width:=1;
   Canvas.Pen.Style:=psInsideFrame;
   Canvas.MoveTo(Rect.Left,X);
   Canvas.LineTo(Rect.Right,X);
  end;
end;


Chrissi91 20. Dez 2005 19:58

Re: .: Dezimalfarbwerte :.
 
Schon klar, dass das die selben sind, aber jetzt zitiere ich mal:


Zitat:

Zitat von Chrissi91
...
P.S.: Den obigen Code zum Einsetzen habe ich nur aus dem Link kopiert, da der Quelltext bei mienem Computerlehrer ist.

Das bezog sich auf den umgeschriebenen Code. Zufrieden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 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