AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language TObject.GetHashCode hides virtual method of base type TObject
Thema durchsuchen
Ansicht
Themen-Optionen

TObject.GetHashCode hides virtual method of base type TObject

Ein Thema von Rollo62 · begonnen am 3. Feb 2016 · letzter Beitrag vom 4. Feb 2016
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: TObject.GetHashCode hides virtual method of base type TObject

  Alt 3. Feb 2016, 20:32
Was brauchst du denn da? Etwa eine Hash-Funktion?

Da gibt es auch was eingebautes in Delphi http://docwiki.embarcadero.com/Libraries/de/System.Hash
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.174 Beiträge
 
Delphi 12 Athens
 
#2

AW: TObject.GetHashCode hides virtual method of base type TObject

  Alt 3. Feb 2016, 20:44
Nein ich brauch sie nicht.

Ich will nur nicht das ich mir durch so eine Komponente wieder irgendwelche Probleme reinhole.
Zumal PegTop wie gesagt eigentlich nur wegen der Farbtabellen, Colorwähler, etc. nutzen möchten,
wie gesagt, werde ich auch schnell ersetzen.

Die Meldungen kommen ja beim Kompilieren der PegTop Libraries selbt, hat nix mit meinem Code zu tun,
denn ich versuche eigentlich alle Warnings bei zu verbannen.
(nur ein paar besondere Hints bekommen bei mir noch eine kurzfristiges Schonfrist Wie: variable never used).

Aber bei etwas wie "GetHashCode" würde ich ungenre reinpfuschen, ohne zu verstehen wofür eine TObject Klasse das intern braucht.
Könnte sein das diese Hashes für Rtti, Attribute oder ähnliches sind, und wenn sie nicht konform sind läuft etwas aus dem Ruder.

Deshalb hab ich es bis jetzt eben noch nicht gefixt, sonder ignoriert.
Was der Bauer nicht kennt, frisst (verwurschtelt) er nicht, sollte doch besser der PegTop Entwickler selbst mal ran.


Rollo
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: TObject.GetHashCode hides virtual method of base type TObject

  Alt 3. Feb 2016, 20:47
TObject.GetHashCode wird z.B. im TDictionary<TKey,TValue> verwendet, wenn TKey von TObject abgleitet ist.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.174 Beiträge
 
Delphi 12 Athens
 
#4

AW: TObject.GetHashCode hides virtual method of base type TObject

  Alt 4. Feb 2016, 13:00
Und wass passiert dann damit wenn die GetHashCode mit geänderter Signatur darin verwurstet wird ?
 function GetHashCode(Key: Integer): Integer; reintroduce; overload; Die normale TObject.GetHashCode hat keinen Key Parameter.

Dann wird im Dictionary hoffentlich wieder die orginale Routine aufgerufen.
Und dann: gibt es Zwei verschiedene HashValues für dasselbe Object.
Wozu PegTop das braucht ist mir schleierhaft.

Warum man solchen Kernprozedurene von Delphi eine neue Signatur vergeben muss verstehe ich nicht,
deshalb ist mir auch die ganze Library nicht ganz geheuer.
Wer so etwas macht, und dann noch nicht einmal die Warnings richtig beseitigt, dem traue ich auch noch mehr Unsinn zu.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TObject.GetHashCode hides virtual method of base type TObject

  Alt 4. Feb 2016, 13:06
Warum man solchen Kernprozedurene von Delphi eine neue Signatur vergeben muss verstehe ich nicht,
deshalb ist mir auch die ganze Library nicht ganz geheuer.
Wer so etwas macht, und dann noch nicht einmal die Warnings richtig beseitigt, dem traue ich auch noch mehr Unsinn zu.
Vielleicht hat derjenige das vor langer Zeit geschrieben und/oder kein "aktuelleres" Delphi, wo TObject das noch nicht hatte.

Da sich hier die Signaturen (Parametertypen) unterscheiden, kann man eigentlich niemals das Falsche aufrufen.

reintroduce schaltet nur die Compilerwarnung aus, also dass man die alte Methode "absichtlich" verdeckt hat und somit keine Warnung nötig ist.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 4. Feb 2016 um 13:24 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.174 Beiträge
 
Delphi 12 Athens
 
#6

AW: TObject.GetHashCode hides virtual method of base type TObject

  Alt 4. Feb 2016, 15:12
Hallo himitzu,

ja ich stelle auch fest das eigentlich nichts Schlimmes passiert.
Womöglich war das wirklich mal im alten Code anders geregelt, hab ich nicht gecheckt.

Ich fasse halt die "private parts" von anderen ungerne an
Man weiss ja nie was dann passiert ...

Rollo
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:20 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