AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi tlist. get "überschreiben", Fehlermeldung verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

tlist. get "überschreiben", Fehlermeldung verhindern

Ein Thema von DrUArn · begonnen am 23. Jul 2012 · letzter Beitrag vom 26. Jul 2012
 
DrUArn

Registriert seit: 20. Mär 2003
130 Beiträge
 
Delphi 10.3 Rio
 
#1

tlist. get "überschreiben", Fehlermeldung verhindern

  Alt 23. Jul 2012, 20:33
Hi,
da mich die Fehlermeldung "Listenindex überschreitet das Maximum" nervt,
möchte ich in einer abgeleiteten tmylist.get "überschreiben"

overwrite nicht mgl., da statisch

Mein Ansatz:

Delphi-Quellcode:
// original
function TList.Get(Index: Integer): Pointer;
begin
  if Cardinal(Index) >= Cardinal(FCount) then
    Error(@SListIndexError, Index);
  Result := FList^[Index];
end;

TMyList_UA = class(TList)
  private

  protected

  public
    function Get(Index: Integer): Pointer;
  published
  end;

function TMyList_UA.Get(Index: Integer): Pointer;
begin
if cardinal(index) in [0 .. count-1] then
    Result := List^[Index] else result:=nil;
end;

//ODER

function TMyList_UA.Get(Index: Integer): Pointer;
begin
  if (cardinal(index)>-1) and (Cardinal(Index) < Cardinal(Count)) then
    Result := List^[Index] else result:=nil;
end;
Beide Funktions-Modelle funktionieren - welches ist besser?
Im tlist.get-Original werden die Indexe <0 nicht geprüft -gibt's da
keinen Fehler?

MfG
Uwe

Geändert von DrUArn (24. Jul 2012 um 08:43 Uhr)
  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 14: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