Du müsstest Dir ein Package erstellen, das dieselben Dateien enthält wie das Original. Wahrscheinlich müsste das dann per Kommandozeile kompiliert werden, da die IDE wohl die Meldung bringen wird, dass die Units bereits in einem geladenen Package enthalten sind. Hast Du das hinbekommen, musst Du sicherheitshalber die originale *.bpl umbenennen und Deine eigene ins selbe Verzeichnis (das müsste {$Delphi}\bin sein) kopieren. Da ich so etwas niemals tue kann es sein, dass das alles noch nicht einmal ausreicht. Daher noch einmal die Warnung: ich würde das auf keinen Fall tun, dabei kann eine Menge schiefgehen, außerdem wundert man sich evtl. später, dass sich Komponenten ganz anders verhalten, als man das kennt. Eine Alternative hätte ich noch: Erstell Dir einfach eine Unit (ich nenne sie hier mal NonAutoSizeLabel.pas) irgendwo im Delphi-Suchpfad mit folgendem Inhalt.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| unit NonAutoSizeLabel;
interface
uses Classes, StdCtrls;
type TLabel = class(StdCtrls.TLabel) public constructor Create(AOwner: TComponent); override; end;
implementation
constructor TLabel.Create(AOwner: TComponent); begin inherited; AutoSize := false; end;
end. |
So, überall, wo Du das Autosize für Labels initial abstellen möchtest, bindest Du diese Unit als letzte (oder zumindest nach StdCtrls) in der uses-Klausel des interface-Abschnitts ein.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| unit Main;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, NonAutoSizeLabel; |
Das erfüllt im Prinzip denselben Zweck, ohne dass man die Original-Sourcen patchen müsste.