Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Werte unter Delphi XE2 zuweisen !? (https://www.delphipraxis.net/167596-werte-unter-delphi-xe2-zuweisen.html)

Popov 8. Apr 2012 15:05

AW: Werte unter Delphi XE2 zuweisen !?
 
Zitat:

Zitat von Bummi (Beitrag 1160708)
Die Nachteile überwiegen definitiv

Das ist übertrieben. Ich verwende
Delphi-Quellcode:
with
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
Delphi-Quellcode:
with
dort. Manchmal sind
Delphi-Quellcode:
with do begin end;
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.

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.

roga 8. Apr 2012 15:31

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:
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;
  ...
Hier die entsprechende Function:
Delphi-Quellcode:
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;
Aber das wäre nicht ganz so gravierend, da die Spiele nicht weiterentwickelt werden.

himitsu 8. Apr 2012 16:14

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.
Seite 2 von 2     12   

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