Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Erweitern einer vorahandenen Property in einer VCL Komponente (https://www.delphipraxis.net/193388-erweitern-einer-vorahandenen-property-einer-vcl-komponente.html)

DeddyH 25. Jul 2017 10:33

AW: Erweitern einer vorahandenen Property in einer VCL Komponente
 
Ich würde das Anlegen/Freigeben der Dictionary-Instanz in einen Klassenkonstruktor/Klassendestruktor verlegen. Wenn Du im Moment lesend darauf zugreifst, ohne vorher geschrieben zu haben, macht es Bumms.

himitsu 25. Jul 2017 10:39

AW: Erweitern einer vorahandenen Property in einer VCL Komponente
 
Zitat:

Zitat von fisipjm (Beitrag 1377403)
Habs getestet und macht was es soll.:thumb: Gibts da noch was zu beachten oder passt der Code so?

Delphi-Quellcode:
function tmarkerhelper.getAddressGGUID : string;
begin
  AddressGGUIDDictionary.TryGetValue(self,result);
end;
Dein Rückgabewert ist nicht initialisiert. (eigentlich doch, da String ein Managed-Type ist, aber nicht in Bezug auf diese Function)
Sowas macht Spaß, wenn getAddressGGUID z.B. in einer For-Schleife aufgerufen wird. :stupid:
Delphi-Quellcode:
if not AddressGGUIDDictionary.TryGetValue(self,result) then
  Result := '';
Du hast ein Speicherleck bei AddressGGUIDDictionary. Die Liste wird nicht freigegeben.
Ich weiß nicht ob Class-Constructor und Class-Destructor bei Class-Helpern möglich sind, aber es gibt ja noch Initialization und Finalization der Unit.

Wenn TMarker von TComponent abgeleitet ist, dann könnte man noch Delphi-Referenz durchsuchenTComponent.FreeNotification verwenden, um automatisch die GUID zu löschen, wenn der TMarker freigegeben wird.
https://stackoverflow.com/questions/...has-been-freed

Uwe Raabe 25. Jul 2017 10:51

AW: Erweitern einer vorahandenen Property in einer VCL Komponente
 
Zitat:

Zitat von himitsu (Beitrag 1377406)
Wenn TMarker von TComponent abgeleitet ist, dann könnte man noch Delphi-Referenz durchsuchenTComponent.FreeNotification verwenden, um automatisch die GUID zu löschen, wenn der TMarker freigegeben wird.

TMarker ist ein TCollectionItem und daher geht das so nicht. Da müsste man sich schon in die Collection hängen.

zeina 9. Jul 2018 09:19

AW: Erweitern einer vorahandenen Property in einer VCL Komponente
 
Hallo,

ich setze die komponenten TWebOsmaps mit Delphi 2010 ein.
Ich bitte um eure Hilfe!!

1. Ist es möglich, Geolocation nur vom Namen des Ortes zu bekommen?
2. Ist es möglich, sobald der Name des Ortes geschrieben ist, die Rippen der Site zu identifizieren [Erstellen Sie ein Polygon oder Rechteck].

Vielen Dank

Delbor 9. Jul 2018 12:05

AW: Erweitern einer vorahandenen Property in einer VCL Komponente
 
Hi zeina

Mach bitte für eine neue Frage einenn neuen Thread auf. Dieser hier
  • Stammt zum einen a7us dem letzten Jahr
  • Ist schon längst beantwortet und
  • deine neue Frage hat offensichtlich mit diesem Thema nichts zu tun
  • Desshalb sind deine Chancen, hier Antwort zu bekommen, recht klein

Gruss
Delbor


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:44 Uhr.
Seite 2 von 2     12   

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