AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mein Delphi-Style

Ein Thema von Dipl Phys Ernst Winter · begonnen am 17. Mai 2009 · letzter Beitrag vom 19. Mai 2009
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.245 Beiträge
 
Delphi 12 Athens
 
#11

Re: Mein Delphi-Style

  Alt 17. Mai 2009, 21:53
Zitat:
Delphi-Quellcode:
function BaseCloseHandle(Handle : TBaseHandle) : Boolean; stdcall;
begin
  if Handles[Handle] = nil then Result := false
  else begin case Handles[Handle]^.HandleType of // Besonders diese Zeile.
      bhtObject : Handles[Handle]^.ObjectPointer.Free;
      bhtWindowsHandle : Windows.CloseHandle(Handles[Handle]^.Handle);
      bhtCallback : Handles[Handle]^.Callback();
    end;
    FreeMem(Handles[Handle], SizeOf(TBaseHandleData));
    Handles[Handle] := nil;
    Result := true;
  end;
end;
bei gleichen/ähnlichen Gruppen rücke ich es mir gern mal übersichtlicher ein
Delphi-Quellcode:
// Handles[Handle].xyz // hier muß man nicht dereferenieren ... Delphi bemeckert das sogar

Function BaseCloseHandle(Handle: TBaseHandle): Boolean; StdCall;
  Begin
    If Handles[Handle] <> nil Then Begin
      Case Handles[Handle].HandleType of
        bhtObject: Handles[Handle].ObjectPointer.Free;
        bhtWindowsHandle: Windows.CloseHandle(Handles[Handle].Handle);
        bhtCallback: Handles[Handle].Callback;
      End;
      FreeMem(Handles[Handle], SizeOf(TBaseHandleData));
      Handles[Handle] := nil;
      Result := True;
    End Else Result := False;
  End;

// oder

Function BaseCloseHandle(Handle: TBaseHandle): Boolean; StdCall;
  Begin
    Result := Handles[Handle] <> nil;
    If Result Then Begin
      Case Handles[Handle].HandleType of
        bhtObject: Handles[Handle].ObjectPointer.Free;
        bhtWindowsHandle: Windows.CloseHandle(Handles[Handle].Handle);
        bhtCallback: Handles[Handle].Callback;
      End;
      FreeMem(Handles[Handle], SizeOf(TBaseHandleData));
      Handles[Handle] := nil;
    End;
  End;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz