AGB  ·  Datenschutz  ·  Impressum  







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

Pointer of Dynamic Array

Ein Thema von Crocotronic · begonnen am 27. Feb 2015 · letzter Beitrag vom 28. Feb 2015
Antwort Antwort
Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#1

AW: Pointer of Dynamic Array

  Alt 27. Feb 2015, 23:05
Stimmt, da sind mir wohl einige Fehler unterlaufen.
Ich versuche als meinen Code zu abstrahieren und exemplarisch anschaulich zu gestalten und ändere ihn deshalb direkt hier im Editor,
deshalb fallen mir solche Fehler nicht auf. Ich werde in Zukunft darauf achten, dass ich den Code kompiliere und fehlerfrei hier poste.
Vielen Dank für den Hinweis.

Was die Thematik betrifft: ich habe jetzt halt eine Klasse draus gemacht und speicher alle Objekte in einer TObjectList.
Somit wäre das Problem für mich nun gelöst, dennoch würde mich interessieren warum der Code nicht funktioniert. Vielleicht ergibt sich ja noch etwas.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Pointer of Dynamic Array

  Alt 28. Feb 2015, 01:36
TObjectlist? Bist du sicher, daß du #2 verstanden hast?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Pointer of Dynamic Array

  Alt 28. Feb 2015, 08:59
Joar, wie man schon an der #2 sieht, kann man hier beliebig die Prozedur-Signatur (Parameter) ändern, da man nur einen untypisierten Pointer zur Callback-Prozedur rein gibt.

Delphi-Quellcode:
procedure ExtractElements(AElementName: string; AElement: TlkJSONbase; ADataPtr: PElements; var Continue: Boolean);
begin
 SetLength(ADataPtr^, Length(ADataPtr^)+1);
 ADataPtr^[High(ADataPtr^)].Value:= xxxx;
 ShowMessage(IntToStr(Length(ADataPtr^)));
end;

procedure ExtractElements(AElementName: string; AElement: TlkJSONbase; var AData: TElements; var Continue: Boolean);
begin
 SetLength(AData, Length(AData)+1);
 AData[High(AData)].Value:= xxxx;
 ShowMessage(IntToStr(Length(AData)));
end;

// Aufruf(e):
var MyElements: TElements;
(AJSON.Field['su'] as TlkJSONlist).ForEach(ExtractElements, @MyElements);
Ein Therapeut entspricht 1024 Gigapeut.
  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 23:12 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