![]() |
Unit deaktivieren
Hallo,
ich habe TurboDelphi (intern wohl Version 10) und komme mit dem Editor nicht klar. Ich habe in meinem Quellcode bislang TStringList benutzt, die in der Unit Classes definiert ist. Da aber unter anderem diese sehr groß ist, will ich sie raushaben. Mir ist klar, dass ich dann Teile des Codes neu/anders machen muss. Das ist nicht mein Problem. Mein Problem ist: Wenn ich nun auf "Speichern", "Erstellen" oder ausführen klicke, wird Uses immer wieder um Classes ergänzt. So ist es sehr mühselig, den Code zu bereinigen. Mir wäre es lieber, wenn Classes raus wäre und mir der Compiler einen Fehler melden würde. Dasselbe Problem habe ich mit der Unit Dialogs ... Wie kann ich es verhindern, dass Untis gegen meinen Willen ergänzt werden? Gruß, Alex |
Re: Unit deaktivieren
Es scheint etwas davon benötigt zu werden. Zudem werden nur die Teile eingebunden, welche benötigt werden
|
Re: Unit deaktivieren
Verwendest du Formulare (TForm)?
|
Re: Unit deaktivieren
Zitat:
Ich habe - vermutlich - den Übeltäter gefunden. Ich habe in der Tat Formulare und daher Forms mit drin. Aber es liegt offenbar an einem TTimer. Wenn der weg ist, dann erscheint Classes auch nicht mehr. Es liegt scheinbar nur an dieser einzigen Deklaration:
Delphi-Quellcode:
Dass man die eine Zeile nicht in ExtCrtls nicht mit reingeschrieben hat ... Muss ich also auf den Timer auch verzichten :smile2:, obwohl das bei der Größe von Forms wohl auch keine Rolle mehr spielt!
TNotifyEvent = procedure(Sender: TObject) of object;
Aber es muss doch trotzdem eine Möglichkeit geben, diese Bevormundung wegzumachen, oder? Ich will doch auch mal Fehler machen. Gruß, Alex |
Re: Unit deaktivieren
Zitat:
|
Re: Unit deaktivieren
Die standardmäßig eingebundene, aber von vorne herein nicht gebrauchte Unit ist übrigens Variants. Und deine einzige Chance wirklich einen Unterschied zu erreichen wäre wie schon erwähnt gänzlich auf alles aus der VCL zu verzichten, so dass du quasi mit den Units System und Windows auskommst (ein paar mehr gibt's schon, aber verabschiede dich von TForm, TButton und Konsorten, wie auch vom Formulardesigner). Eben das berüchtigte non-VCL Programmieren, wie damals unter C ohne MFC o.ä., pure WinAPI.
|
Re: Unit deaktivieren
Das Problem bei Units wie Klasses ist eigentlich sowas
Delphi-Quellcode:
da wird soviel über die Fnitialization/Finalization eingebunden
initialization
InitThreadSynchronization; AddModuleUnloadProc(ModuleUnload); GlobalNameSpace := TMultiReadExclusiveWriteSynchronizer.Create; RegGroups := TRegGroups.Create; IntConstList := TThreadList.Create; GlobalFixupList := TThreadList.Create; es wird also nicht wirklich nur das Eingebunden, was gebraucht wird, sondern viel mehr |
Re: Unit deaktivieren
Es gibt von meinem Programm 2 Varianten: Eine mit dem ganzen VCL-Zeugs und eine andere ohne das alles. Ich bin nur auf VCL zurückgekommen, weil ich mit dem "Warten" Probleme habe/hatte. In VCL mache ich das mit dem TTimer. Im nonVCL habe ich mit
Delphi-Quellcode:
gewartet. Das lastet mir aber den Prozessor zu sehr aus. Dann kam TThread, damit Classes und damit ein Schwergewicht in Spiel. Und daher habe ich dann wieder TTimer genommen, weil es dann auch nicht mehr darauf ankam.
Repeat
Sleep(250); Application.Processmessages; Until ...; Im Grunde ist mir die Größe der exe-Datei auch egal. Mir käme es eher darauf an, dass die Programme zur Laufzeit möglichst schmal sind. Ich habe aber gesehen, dass auch meine 46-KB-nonVCL-exe genau wie das 170-KB-VCL-Pendant ca. 4 MB RAM einnimmt. Deshalb habe ich damit aufgehört, auf Teufel komm raus die Functionen der Units selbst zu schreiben. |
Re: Unit deaktivieren
Wäre da nicht
![]() |
Re: Unit deaktivieren
das mit dem Timer wurde grad gesagt.
Zitat:
es sei denn du läßt in einer der Messages massig viel rechnen oder ein paralleler Thread ist daran schuld. (ich hab in vielen Programmen schon solche Schleifen eingesetzt und das mit weit kürzeren Zeiten ... z.B. 20 ms und nichtmal 1% Belastung) Außerdem gehört Application eigentlich mit zur VCL und hat demnach nicht viel mit NonVCL zu tun. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 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