An Dasd wegen Komponente Pfeil geht immer noch nicht deswegen hier mit Code >>>>



  • Lieber Dasd !

    Ich habe Stunden um Stunden probiert, es will und will nicht gehen. Die Komponente läßt
    sich interessanter weise auch nicht stretchen habe ich festgestellt.
    Sonst tun sie das immer. Und der Pfeil regt sich einfach nicht.
    Dabei funktioniert alles andere mit Farbe und Linien total gut.
    Versteh ich nicht.
    Hier also der
    komplette Code : zunächst die CPP und danach die Header > > >

    Hoffe es geht dann besser.......

    Ich verabschiede mich jetzt schon hier

    alles Liebe

    Laura 🙂

    und hier der Code :

    Dies ist der komplette CPP Code :

    //---------------------------------------------------------------------------
    #include <vcl\vcl.h>
    #pragma hdrstop
    #include "Pfeilzeiger1.h"
    int L;
    //---------------------------------------------------------------------------
    static inline TPfeilzeiger ValidCtrCheck()
    {
    return new TPfeilzeiger(NULL);
    }
    //---------------------------------------------------------------------------
    __fastcall TPfeilzeiger::TPfeilzeiger(TComponent
    Owner)
    : TCustomControl(Owner)
    {
    FPosition=0;
    FLinBreite=1;
    FLinFarbe = clYellow;
    FVollFarbe = clFuchsia;
    FHiGrLiBreite =1;
    FHiGrLiFarbe =clRed;
    FHiGrVoFarbe =clPurple;
    Canvas->Pen->Width = FLinBreite;
    Canvas->Pen->Color = FLinFarbe;
    Canvas->Brush->Color = FVollFarbe;
    L=Position*2;
    SetBounds(0,0,230,20);

    }
    //---------------------------------------------------------------------------
    namespace Pfeilzeiger1
    {
    void __fastcall Register()
    {
    TComponentClass classes[1] = {__classid(TPfeilzeiger)};
    RegisterComponents("Zusätzlich", classes, 0);
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TPfeilzeiger::Paint(void)
    {
    try
    {

    if (FPosition<0)
    Application->MessageBox("Der Wert darf nicht kleiner als 0 sein !","Hinweis !",0+64);

    if (FPosition>100)
    {
    Application->MessageBox("Der Wert darf nicht größer als 100 sein !","Hinweis !",0+64),FPosition = 0;
    Paint();
    }

    SetColor(FHiGrLiFarbe,FHiGrVoFarbe);
    Canvas->Pen->Width= HiGrLiBreite;
    Canvas->Rectangle(4,5,222,20);

    SetColor(FLinFarbe,FVollFarbe);

    TPoint points[8];

    points[0].x = 10+L;
    points[0].y = 18;
    points[1].x = 15+L;
    points[1].y = 18;
    points[2].x = 15+L;
    points[2].y = 10;
    points[3].x = 20+L;
    points[3].y = 10;
    points[4].x = 12+L;
    points[4].y = 5;
    points[5].x = 5+L;
    points[5].y = 10;
    points[6].x = 10+L;
    points[6].y = 10;
    points[7].x = 10+L;
    points[7].y = 18;

    Canvas->Polygon(points, 7);
    }
    catch(...)
    {
    MessageBox(Handle,"Ungültige Eingabe !","Hinweis !",0),FPosition=0;
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TPfeilzeiger::SetColor(TColor PfPen, TColor PfBrush)
    {
    Canvas->Pen->Color = PfPen;
    Canvas->Brush->Color = PfBrush;
    }
    //---------------------------------------------------------------------------
    void __fastcall TPfeilzeiger::SetFPosition(int value)
    {
    FPosition = StrToInt(Position); // habe hier mehrere Varianten probiert, aber keine hat funktioniert
    Refresh();
    }
    //---------------------------------------------------------------------------

    Ende des CPP Codes

    Das ist die komplette Header :

    //---------------------------------------------------------------------------
    #ifndef Pfeilzeiger1H
    #define Pfeilzeiger1H
    //---------------------------------------------------------------------------
    #include <vcl\SysUtils.hpp>
    #include <vcl\Controls.hpp>
    #include <vcl\Classes.hpp>
    #include <vcl\Forms.hpp>
    //---------------------------------------------------------------------------
    class TPfeilzeiger : public TCustomControl
    {
    private:

    int FLinBreite;
    TColor FLinFarbe;
    TColor FVollFarbe;

    int FHiGrLiBreite;
    TColor FHiGrLiFarbe;
    TColor FHiGrVoFarbe;

    int FPosition;

    protected:

    virtual void __fastcall Paint(void);
    void __fastcall SetFPosition(int value);

    public:
    __fastcall TPfeilzeiger(TComponent* Owner);
    void __fastcall SetColor(TColor PfPen, TColor PfBrush);

    __published:

    __property int LinBreite = {read=FLinBreite, write=FLinBreite};
    __property TColor LinFarbe = {read=FLinFarbe, write=FLinFarbe};
    __property TColor VollFarbe = {read=FVollFarbe, write=FVollFarbe};

    __property int HiGrLiBreite = {read=FHiGrLiBreite, write=FHiGrLiBreite};
    __property TColor HiGrLiFarbe = {read=FHiGrLiFarbe, write=FHiGrLiFarbe};
    __property TColor HiGrVoFarbe = {read=FHiGrVoFarbe, write=FHiGrVoFarbe};

    __property int Position= {read=FPosition,write=SetFPosition};
    __property OnClick;
    __property OnMouseDown;
    __property OnMouseMove;
    __property OnMouseUp;
    __property OnEnter;
    __property OnExit;

    };
    //---------------------------------------------------------------------------
    #endif

    Das ist alles

    bis denn

    Laura

    .



  • Wieso nicht einfach im Original-Thread nachfragen?

    Beachte bitte folgende kleine Regel: Pro Thread 1 Frage, pro frage 1 Thread.

    -junix


Anmelden zum Antworten