AGB  ·  Datenschutz  ·  Impressum  







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

Delphi XE2 eigene Klasse nicht gefunden

Ein Thema von trashcandesign · begonnen am 22. Feb 2012 · letzter Beitrag vom 22. Feb 2012
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#1

AW: Delphi XE2 eigene Klasse nicht gefunden

  Alt 22. Feb 2012, 09:39
Das verwechsel ich jedes Mal, es muss schwer sein, sich 2 Werte zu merken
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Delphi XE2 eigene Klasse nicht gefunden

  Alt 22. Feb 2012, 09:50
Nur damit wir jetzt nicht aneinander vorbei reden:

Ich habe den Pfad zur Pas-Datei in den Suchpfad der Projekt-Optionen und den Pfad zur DCU in den Bibliothekspfad des Programms eingetragen.
Zur Erklärung, was ich meine habe ich auch mal zwei Screenshots angehängt.

Das funktioniert leider auch nicht.
Angehängte Grafiken
Dateityp: jpg Suchpfad.jpg (183,1 KB, 24x aufgerufen)
Dateityp: jpg Bibliothekspfad.jpg (116,8 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#3

AW: Delphi XE2 eigene Klasse nicht gefunden

  Alt 22. Feb 2012, 09:53
Wieso in den Suchpfad der Projektoptionen und nicht in den Delphi-Suchpfad?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Delphi XE2 eigene Klasse nicht gefunden

  Alt 22. Feb 2012, 09:54
War nur eine Eingebung... gut, keine wirklich gute
In den Delphi Einstellungen bewirkt es auch nichts....
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi XE2 eigene Klasse nicht gefunden

  Alt 22. Feb 2012, 09:56
*Pfuh* das Package ist nicht irgendwie in den DisabledPackages gelandet? Sonst fällt mir langsam auch nichts mehr ein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Delphi XE2 eigene Klasse nicht gefunden

  Alt 22. Feb 2012, 10:06
DisabledPackages?
Wo finde ich das?


Hier nochmal den Quelltext der Unit, vielleicht bin ja einfach nur dämlich und mache was Grundlegendes falsch?



Code:
unit MPWedgeItem;

interface

uses
  Windows, Classes, GDIPCustomItem, Graphics, GDIPTextItem, AdvGDIP, GDIPFill;

const
  MAJ_VER = 1; // Major version nr.
  MIN_VER = 0; // Minor version nr.
  REL_VER = 0; // Release nr.
  BLD_VER = 0; // Build nr.

  //v0.9.0.0 : First Beta Release
  //v1.0.0.0 : First Release

type
  TWedgePosition = (wpLeft, wpRight);

  TWedgePositions = set of TWedgePosition;

  TMPWedgeItem = class(TTextItem)
  private
    FWedgePositions: TWedgePositions;
    FWedgeSize: integer;
    FWedgeStates: TItemStates;
    procedure SetWedgePositions(const Value: TWedgePositions);
    procedure SetWedgeSize(const Value: integer);
    procedure SetWedgeStates(const Value: TItemStates);
  protected
    function GetVersionNr: integer; override;
    procedure DrawFocus(g: TGPGraphics; ARect: TGPRectF; ItemAppearance: TItemAppearance); override;
    function GetWedgeRect(ARect: TGPRectF): TGPRectF;
  public
    constructor Create(AOwner: TComponent); override;
    procedure Assign(Source: TPersistent); override;
    function CreateNewItem(AOwner: TComponent): TCustomItem; override;
    function GetClassType: TComponentClass; override;
    class function CustomClassName: String; override;
    procedure DrawInRect(g: TGPGraphics; ItemAppearance: TItemAppearance; R: TGPRectF); override;
    function DrawText(g: TGPGraphics; ARect: TGPRectF; ItemAppearance: TItemAppearance; DoText: Boolean = true): TGPRectF; override;
  published
    property WedgePositions: TWedgePositions read FWedgePositions write SetWedgePositions default [wpRight];
    property WedgeSize: integer read FWedgeSize write SetWedgeSize default 6;
    property WedgeStates: TItemStates read FWedgeStates write SetWedgeStates default [isNormal, isHovered, isDown, isSelected];
  end;

procedure Register;
procedure UnRegister;

implementation

procedure Register;
begin
  RegisterPolyItem(TMPWedgeItem);
  RegisterClass(TMPWedgeItem);
end;

procedure UnRegister;
begin
  UnRegisterClass(TMPWedgeItem);
end;

{ TWedgeItem }

procedure TMPWedgeItem.Assign(Source: TPersistent);
begin
  inherited;
  if Source is TMPWedgeItem then
  begin
    FWedgePositions := (Source as TMPWedgeItem).WedgePositions;
    FWedgeSize := (Source as TMPWedgeItem).WedgeSize;
    FWedgeStates := (Source as TMPWedgeItem).WedgeStates;
    Changed;
  end;
end;

constructor TMPWedgeItem.Create(AOwner: TComponent);
begin
  inherited;
  FWedgePositions := [wpRight];
  FWedgeSize := 6;
  FWedgeStates := [isSelected];
  Self.CaptionMargin.Left := 10;
end;

function TMPWedgeItem.CreateNewItem(AOwner: TComponent): TCustomItem;
begin
  Result := TMPWedgeItem.Create(AOwner);
end;

class function TMPWedgeItem.CustomClassName: String;
begin
  Result := 'MPFeuer Wedge Item';
end;

procedure TMPWedgeItem.DrawInRect(g: TGPGraphics; ItemAppearance: TItemAppearance;
  R: TGPRectF);
type
  TPointArray = array of TGPPointF;
var
  rgn: TGPRegion;
  f: TGDIPFill;
  s: integer;
  pth: TGPGraphicsPath;
  wdRight, wdLeft: TPointArray;
  p: TGPPen;
  ir: TGPRectF;
begin
  if (WedgePositions <> []) and (self.State in WedgeStates) then
  begin
    ir := MakeRect(r.x, r.y, r.width + 1, r.height + 1);
    f := GetFill(ItemAppearance);
    p := TGPPen.Create(MakeColor(f.BorderOpacity, f.BorderColor), f.BorderWidth);
    rgn := TGPRegion.Create(ir);
    s := WedgeSize;
    pth := TGPGraphicsPath.Create;

    if wpRight in WedgePositions then
    begin
      SetLength(wdRight, 3);
      wdRight[0] := MakePoint(ir.X + ir.Width, ir.Y - s + (ir.Height - 1) / 2);
      wdRight[1] := MakePoint(ir.X + ir.Width - s, ir.Y + (ir.Height - 1) / 2);
      wdRight[2] := MakePoint(ir.X + ir.Width, ir.Y + s + (ir.Height - 1) / 2);
      pth.AddPolygon(PGPPointF(wdRight), 3);
      rgn.Exclude(pth);
    end;

    if wpLeft in WedgePositions then
    begin
      SetLength(wdLeft, 3);
      wdLeft[0] := MakePoint(ir.X, ir.Y - s + ir.Height / 2);
      wdLeft[1] := MakePoint(ir.X + s, ir.Y + ir.Height / 2);
      wdLeft[2] := MakePoint(ir.X, ir.Y + s + ir.Height / 2);
      pth.AddPolygon(PGPPointF(wdLeft), 3);
      rgn.Exclude(pth);
    end;

    g.SetClip(rgn);

    inherited;

    g.ResetClip;
    pth.Free;
    rgn.Free;

    if wpRight in WedgePositions then
    begin
      g.DrawLine(p, wdRight[0].X-1, wdRight[0].Y, wdRight[1].X-1, wdRight[1].Y);
      g.DrawLine(p, wdRight[1].X-1, wdRight[1].Y, wdRight[2].X-1, wdRight[2].Y);
    end;

    if wpLeft in WedgePositions then
    begin
      g.DrawLine(p, wdleft[0].X, wdleft[0].Y, wdleft[1].X, wdleft[1].Y);
      g.DrawLine(p, wdleft[1].X, wdleft[1].Y, wdleft[2].X, wdleft[2].Y);
    end;

    p.Free;

  end
  else
    inherited;
end;

procedure TMPWedgeItem.DrawFocus(g: TGPGraphics; ARect: TGPRectF;
  ItemAppearance: TItemAppearance);
begin
  inherited DrawFocus(g, GetWedgeRect(ARect), ItemAppearance);
end;


function TMPWedgeItem.DrawText(g: TGPGraphics; ARect: TGPRectF;
  ItemAppearance: TItemAppearance; DoText: Boolean = true): TGPRectF;
begin
  Result := inherited DrawText(g, GetWedgeRect(ARect), ItemAppearance, DoText);
end;

function TMPWedgeItem.GetClassType: TComponentClass;
begin
  Result := TMPWedgeItem;
end;

function TMPWedgeItem.GetVersionNr: integer;
begin
  Result := MakeLong(MakeWord(BLD_VER,REL_VER),MakeWord(MIN_VER,MAJ_VER));
end;

function TMPWedgeItem.GetWedgeRect(ARect: TGPRectF): TGPRectF;
begin
  Result := ARect;
  if (self.State in WedgeStates) then
  begin
    if wpRight in WedgePositions then
    begin
      Result.Width := Result.Width - WedgeSize;
    end;

    if wpLeft in WedgePositions then
    begin
      Result.X := Result.X + WedgeSize;
      Result.Width := Result.Width - WedgeSize;
    end;
  end;
end;

procedure TMPWedgeItem.SetWedgePositions(const Value: TWedgePositions);
begin
  if FWedgePositions <> Value then
  begin
    FWedgePositions := Value;
    Changed;
  end;
end;

procedure TMPWedgeItem.SetWedgeSize(const Value: integer);
begin
  if FWedgeSize <> Value then
  begin
    FWedgeSize := Value;
    Changed;
  end;
end;

procedure TMPWedgeItem.SetWedgeStates(const Value: TItemStates);
begin
  if FWedgeStates <> Value then
  begin
    FWedgeStates := Value;
    Changed;
  end;
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delphi XE2 eigene Klasse nicht gefunden

  Alt 22. Feb 2012, 10:09
Schau mal in der Registry unter HKCU\Software\Embarcadero\BDS\9.0\DisabledPackages
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz