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;};
//---------------------------------------------------------------------------
#endifDas 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