![]() |
AW: Werte unter Delphi XE2 zuweisen !?
Zitat:
Delphi-Quellcode:
excesiv. Manchmal ertappe ich mich dabei, dass ich mich selbst über mich ärgere, denn manchmal gehe auch ich für mich zu weit. Kaum kann ich zwei Bezeichner abkürzen, schon steht ein
with
Delphi-Quellcode:
dort. Manchmal sind
with
Delphi-Quellcode:
mehr Schreibarbeit als was ich mir mit with spare. So sehr liegt mir das inzwischen im Blut. Was ich damit sagen will ist - ich verwende es nicht gelegentlich, sondern extrem viel. Deshalb kann ich gut überblicken ob die Vor- oder Nachteile überwiegen.
with do begin end;
Wenn man meine ganzen Probleme mit with in den Jahren hoch rechnet, dann kann ich sie im wahrsten Sinne an einer Hand abzählen. Das mit dem Debuger ist eine andere Sache, aber auch hier ist es nur eine Frage der Technik und schon klappt es wieder. Ok, wer with nur gelegentlich anwendet, für den überwiegen die Nachteile wahrscheinlich. Aber nicht für den der sehr viel damit arbeitet. Allerdings gebe ich zu, dass das mit Rect und Left tatsächlich unglücklich ist. |
AW: Werte unter Delphi XE2 zuweisen !?
Die Ursache war einfach die neue und auch sinnvolle Erweiterung des TRect um Width und Height, die gab es halt zum Zeitpunkt der Erstellung noch nicht. Mal sehen, was die weitere Umstellung auf XE2 noch an Überraschungen bringt, die meisten Sachen laufen aber ohne Probleme. Anders sieht es bei Fremdkomponenten aus wie z.B. die DLLLoader.pas (BASS), die ich in älteren Spielen für die mp3-Wiedergabe nutze. Hier schmiert das Programm direkt beim Start ab, bleibt aber noch im Task-Manager drin.
Delphi-Quellcode:
Hier die entsprechende Function:
IF ASSIGNED(Stream) THEN BEGIN
Stream.Seek(0, soFromBeginning); IF Stream.Size>0 THEN BEGIN IF ReadImageHeaders THEN BEGIN IF InitializeImage THEN BEGIN IF ReadSections THEN BEGIN IF ProcessRelocations THEN BEGIN IF ProcessImports THEN BEGIN IF ProtectSections THEN BEGIN IF InitializeLibrary THEN BEGIN // Exception IF ProcessExports THEN BEGIN RESULT:=TRUE; END; END; END; ...
Delphi-Quellcode:
Aber das wäre nicht ganz so gravierend, da die Spiele nicht weiterentwickelt werden.
FUNCTION InitializeLibrary:BOOLEAN;
BEGIN RESULT:=FALSE; @DLLProc:=ConvertPointer(ImageNTHeaders.OptionalHeader.AddressOfEntryPoint); IF DLLProc(CARDINAL(ImageBase),DLL_PROCESS_ATTACH,NIL) THEN BEGIN RESULT:=TRUE; END; END; |
AW: Werte unter Delphi XE2 zuweisen !?
Die Frage ist eher, warum dort jemand versucht die DLL manuell zu laden und nicht die vorhandenen APIs nutzt?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 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