Autor Beitrag
Marc Walter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 40

Win98, WinXP
D2 Pers, D7 Pers
BeitragVerfasst: Di 02.03.04 13:15 
Ich hab da mal eine Frage...
Ich programmier grad n pseudo-adventure, und für die Einblendung von Statusanzeigen, wie Inventar und Questlog und so, möchte ich neue Fenster öffnen, damit die sonst nicht stören.
Da mein Computer allerdings ä bissl langsamer ist (213Mhz), nervt es mich, dass ich so lange warten muss, beim Kompilieren, angeblich, weil so viele Units geöffnet werden müssen. Deshalb bräucht ich ne Funktion, mit der man neue Forms, auch ohne eine neue Units anzufangen, erzeugen kann.

Wenn ich sie einfach unter use angebe klappts nämlich leider nicht.

Hat da irgend jemand vielleicht ne Idee?

_________________
möp
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 02.03.04 13:47 
Erstens macht Delphi das grundsätzlich nicht und zweitens glaube ich nicht, dass dir das so viel Performance beim Kompilieren bringen würde.
Wenn du unbedingt alles in einer Unit haben willst, dann musst du die Klassen und Variablen in der einen manuell ausschneiden und in der anderen wieder einfügen.
MaxiTB
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 679

Win2000, WinXp, Workbench ;-)
D7 Ent, VS2003 Arch.
BeitragVerfasst: Di 02.03.04 14:21 
Ich rate dir mal ab alles in eine Unit zu packen - warum - ganz einfach: Precompiled code !

Prinzipiell kompiliert nämlich Delphi nur Dinge, welche sich geändert haben. Desto mehr Code du in eine Unit packst, desto größer die Wahrscheinlichkeit das sich was geändert hat > längere Kompilierungszeiten.

Ich bin da ein OOP-Extremist aus der C++ Ecke, daher gilt für mich prinzipiell eine Klasse - eine Datei.

Ach ja ... Preformancesteigerung:

Ich bin draufgekommen, daß die Suchpfade in Delphi extrem langsam abgearbeitet werden - das hat nix mit Prozessorleistung zu tun, eher mit Harddrive Leistung. Eine in nach den uses macht die Sache bei größeren Projekten teilweise 5 bis 10 mal schneller !

Daher kann ich dir nur empfehlen, die Suchpfade zu meiden, wenns wirklich schnell gehen soll.
Allerdings hab ich mir das bis jetzt nur einmal angetan und da wollte ich den Performance-Schub mal nachtesten (weil ich damals nicht glauben konnte, daß das so gewaltig viel ausmacht).

_________________
Euer Mäxchen
Wer früher stirbt, ist länger tot.
Marc Walter Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 40

Win98, WinXP
D2 Pers, D7 Pers
BeitragVerfasst: Di 02.03.04 15:14 
Tja... Das Problem bei mir ist aber eigentlich, dass ich auch so lang warten muss, wenn dich das Prog neu laufen lasse, nachdem ich zum Beispiel die Hintergrundfarbe geändert habe.

Und wie funzt das mit den Suchpfaden eigentlich genau? Muss ich da das direkter Quellverzeichnis angeben, oder wie? Und wo soll ich das eigentlich reinschreiben?

Danke für die Tipps, auch wenn ich jetzt noch mehr Fragen habe. :wink: Aber ich hab halt nur Elementarzeug bisher gemacht.[/quote]

_________________
möp
Gandalfus
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 129



BeitragVerfasst: Di 02.03.04 15:25 
Brainiac hat folgendes geschrieben:
Erstens macht Delphi das grundsätzlich nicht und zweitens glaube ich nicht

Das sehe ich anders.

Erstelle die Formulare zur Laufzeit wenn sie gebraucht werden und nicht bein start.
Wenn du auf den ganzen dfm Müll verzichten willst benutze CreateNew dann kannst du TForm wie eine normale Klasse behandeln.

_________________
Wennn man feststellt, dass es drei Moeglichkeiten gibt, die einen Vorgang schiefgehen lassen koennen und man diese ausschaltet, entstehen automatisch drei neue Moeglichkeiten.
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 02.03.04 17:35 
@Gandalfus:
Ich habe auch nicht behauptet, dass das nicht möglich sei, sondern nur, dass es keine Funktion gibt, die Delphi dazu bewegt, es automatisch zu machen.

@MaxiTB: Guter Einwand!