AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente: noch grün hinter den Ohren

Ein Thema von SvenLittkowski · begonnen am 10. Feb 2011 · letzter Beitrag vom 14. Feb 2011
 
SvenLittkowski

Registriert seit: 18. Dez 2004
98 Beiträge
 
#1

Komponente: noch grün hinter den Ohren

  Alt 10. Feb 2011, 01:05
Hi. Ich habe so gut wie keine Erfahrung damit, Komponenten für Delphi zu erstellen, trotzdem will ich mir eine erste Komponente erstellen, die ich einfach immer wieder brauchen werde. War klar, daß ich einige Fehler machen würde. Und hier sind sie, die Fehler und der Code:

Code:
01.unit ColorMixer;
02.
03.interface
04.
05. uses
06.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
07.   Forms, Dialogs, StdCtrls;
08.
09. type
10.   TColorMixer=class(TObject)
11.   private
12.     FColor1_Original:     TColor;
13.     FColor2_Added:        TColor;
14.     FMixStrengthPercentage: Byte;
15.     FColor3_Result:       TColor;
16.   protected
17.     function Colorize(Sender: TObject; ColorOriginal, ColorAdded: TColor; PercentageStrength: Byte): TColor;
18.   public
19.     constructor Create( AOwner: TComponent ); override;
20.     property Color1_Original:      TColor read FColor1_Original default clBlack;
21.     property Color2_Added:         TColor read FColor2_Added default clWhite;
22.     property MixStrengthPercentage: Byte  read FMixStrengthPercentage;
23.   published
24.     property Color3_Result: TColor read   FColor3_Result
25.                                    write  SetColor3_Result
26.                                    default clGray;
27.   end;
28.
29. procedure Register;
30.
31.implementation
32.
33. constructor TColorMixer.Create(AOwner: TComponent);
34. begin
35. inherited Create(AOwner);
36. end;
37.
38. function TAlpha.Colorize(Sender: TObject; ColorOriginal, ColorAdded: TColor; PercentageStrength: Byte): TColor;
39. var
40.  Color1, Color2:                        LongInt;
41.  ValueR, ValueG, ValueB, Value1, Value2: Byte;
42. begin
43.  PercentageStrength:=Round(2.55*PercentageStrength);
44.  Color1:=ColorToRGB(ColorOriginal);
45.  Color2:=ColorToRGB(ColorAdded);
46.  Value1:=Byte(Color1);
47.  Value2:=Byte(Color2);
48.  ValueR:=PercentageStrength*(Value1-Value2) shr 8+Value2;
49.  Value1:=Byte(Color1 shr 8);
50.  Value2:=Byte(Color2 shr 8);
51.  ValueG:=PercentageStrength*(Value1-Value2) shr 8+Value2;
52.  Value1:=Byte(Color1 shr 16);
53.  Value2:=Byte(Color2 shr 16);
54.  ValueB:=PercentageStrength*(Value1-Value2) shr 8+Value2;
55.  Result:=(ValueB shl 16)+(ValueG shl 8)+ValueR;
56. end;
57.
58. procedure Register;
59. begin
60.  RegisterComponents('Sven Littkowski`s Best',[TColorMixer]);  // Eher "Sven Littkowski's Worst"...
61. end;
62.
63.end.
Zitat von Mein Delphi 7:
[Error] ColorMixer.pas(19): Cannot override a static method
[Error] ColorMixer.pas(26): Field or method identifier expected
[Error] ColorMixer.pas(35): Too many actual parameters
[Error] ColorMixer.pas(38): Function needs result type
[Error] ColorMixer.pas(43): Undeclared identifier: 'PercentageStrength'
[Error] ColorMixer.pas(44): Undeclared identifier: 'ColorOriginal'
[Error] ColorMixer.pas(45): Undeclared identifier: 'ColorAdded'
[Error] ColorMixer.pas(60): Incompatible types: 'TComponentClass' and 'Class reference'
[Error] ColorMixer.pas(17): Unsatisfied forward or external declaration: 'TColorMixer.Colorize'
[Fatal Error] dclusr.dpk(176): Could not compile used unit '..\Projects\Sven\Unit ColorMixer\ColorMixer.pas'
Der Quellcode ist sehr kurz, da die Komponente nur eine sehr grundlegende Funktion erfüllt. Trotzdem die vielen Fehler. Bitte setzt nicht voraus, daß mir Hinweise in den meisten Fällen helfen werden, da dies ein Neuland für mich ist. Ich denke da eher an Korrekturen. Na, mal sehen. Jedenfalls vielen Dank für's Lesen und Zeitnehmen, und auch für Eure guten Absichten!

Geändert von SvenLittkowski (10. Feb 2011 um 01:14 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:34 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