AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Erweitern einer vorahandenen Property in einer VCL Komponente
Thema durchsuchen
Ansicht
Themen-Optionen

Erweitern einer vorahandenen Property in einer VCL Komponente

Ein Thema von fisipjm · begonnen am 24. Jul 2017 · letzter Beitrag vom 9. Jul 2018
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Erweitern einer vorahandenen Property in einer VCL Komponente

  Alt 25. Jul 2017, 10:33
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Erweitern einer vorahandenen Property in einer VCL Komponente

  Alt 25. Jul 2017, 10:39
Habs getestet und macht was es soll. 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.
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (25. Jul 2017 um 10:41 Uhr) Grund: :sleep:
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#13

AW: Erweitern einer vorahandenen Property in einer VCL Komponente

  Alt 25. Jul 2017, 10:51
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
zeina

Registriert seit: 8. Jun 2018
56 Beiträge
 
#14

AW: Erweitern einer vorahandenen Property in einer VCL Komponente

  Alt 9. Jul 2018, 09:19
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

Geändert von zeina ( 9. Jul 2018 um 12:22 Uhr)
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Erweitern einer vorahandenen Property in einer VCL Komponente

  Alt 9. Jul 2018, 12:05
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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor ( 9. Jul 2018 um 12:07 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

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