AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit eigenen Komponenten

Ein Thema von Punisher · begonnen am 20. Jul 2009 · letzter Beitrag vom 20. Jul 2009
Antwort Antwort
Punisher

Registriert seit: 20. Jul 2009
2 Beiträge
 
Delphi 2009 Professional
 
#1

Problem mit eigenen Komponenten

  Alt 20. Jul 2009, 10:19
Hallo,

ich versuche zur Zeit vorhandene Delphi-Komponenten umzuschreiben und stosse dabei immer wieder auf den selben Fehler.


hier ein Beispiel:

Delphi-Quellcode:
unit LabelKomponente;

interface

uses
  SysUtils, Classes, Controls, StdCtrls;

type
  TLabel1 = class(TLabel)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
  constructor Create(AOwner: TComponent); override;
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation
uses
  graphics;

constructor Tlabel1.Create(AOwner: TComponent);
begin
inherited create(aowner);
font.Color := clgreen;
end;

procedure Register;
begin
  RegisterComponents('Samples', [TLabel1]);
end;

end.


Diese Komponente wird in einem Package integriert und das Package installiert.
Wenn ich die Komponente auf einem Form platziere wird sie grün angezeigt(wie gewünscht).

Ändere ich dann den Code im Konstruktor auf "font.Color := clred;" so sollte sich
das so auswirken, dass nach dem nächsten Kompilieren des Programmes, die Komponente rot dargestellt wird.
Das passiert nicht.

Weiters sollte ein Neukompilieren des Packages sich so auswirken, dass die Komponente bereits
zur Designzeit rot auf dem Form dargestellt wird. Auch das passiert nicht. Erst wenn ich die Komponente neu auf dem Form
platziere wird sie rot dargestellt.

In Delphi-2006 hat das immer problemlos funktioniert.

Ich vermute ein Problem mit Such- oder Bibliothekspfaden.


Kann mir da irgendjemand helfen?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.151 Beiträge
 
Delphi 12 Athens
 
#2

Re: Problem mit eigenen Komponenten

  Alt 20. Jul 2009, 10:34
Zitat von Punisher:
Ändere ich dann den Code im Konstruktor auf "font.Color := clred;" so sollte sich
das so auswirken, dass nach dem nächsten Kompilieren des Programmes, die Komponente rot dargestellt wird.
Das passiert nicht.
Nicht nur das Programm muß neu Kompiliert werden, sondern auch und vorallem das Package,
denn von alleine kommt der geänderte Code da nicht rein und Packages werden nicht automatisch neu kompiliert.

Zitat von Punisher:
Weiters sollte ein Neukompilieren des Packages sich so auswirken, dass die Komponente bereits
zur Designzeit rot auf dem Form dargestellt wird. Auch das passiert nicht. Erst wenn ich die Komponente neu auf dem Form
platziere wird sie rot dargestellt.
Das liegt wohl daran, daß in der .DFM die Farbe gespeichert wird, wenn sie vom Default abwicht.
Standarmäßig ist Default 0, also Schwarz.

wenn du es in der Komponente (im Package änderst), dann existiert also noch die vorrangige Angabe in der DFM (in den Formulardaten)

gib also in deiner Defnition das Default mit an, dann wird
A) die DFM kleiner (da diese dann nimmer mit drinseht) und
B) er nimmt vermutlich dann den Wert, welchen du dort setzt (da er ja nicht mehr vom DFM-Loader überschrieben wird)

Delphi-Quellcode:
TLabel1 = class(TLabel)
...
published
  { Published-Deklarationen }
  property Color: TColor default clGreen;
end;
Achtung: default setzt den Property nicht auf den Wert, sondern besagt nur, daß der Property-Wert nicht gespeichert werden soll, wenn er dem Default-Wert entspricht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Punisher

Registriert seit: 20. Jul 2009
2 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Problem mit eigenen Komponenten

  Alt 20. Jul 2009, 11:54
Danke für die schnelle Hilfe

Default hat mein Problem gelöst

Danke!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:38 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