AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 15:02

Parameter dieser Suchanfrage:

Suche in Thema: Probleme mit Data (Pointer)
Suche alle Beiträge, die von "chaosben" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 9 von insges. 9 Treffern
Suche benötigte 0.010s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Object-Pascal / Delphi-Language

    Re: Probleme mit Data (Pointer)

      Delphi
      by chaosben, 26. Feb 2007
    Ich glaub jetzt hab ichs:
    Das was ich oben über die 2 Gruppen geschrieben habe ist falsch. Dispose kapselt nämlich Finalize und FreeMem. procedure _Dispose(p: Pointer; typeInfo: Pointer);
    begin
    _Finalize(p, typeinfo);
    FreeMem(p);
    end;
    Der Praxistest hat gezeigt: Man muss an Dispose einen typisierten Pointer übergeben.

    @Chatfix: Du bekommst deine Antwort noch. Einen kleinen Moment...
  • Forum: Object-Pascal / Delphi-Language

    Re: Probleme mit Data (Pointer)

      Delphi
      by chaosben, 26. Feb 2007
    So, ich komme nach einem weiteren Studium der Hilfe zu folgendem Schluss:

    New() und Dispose() gehören zu einer Gruppe und Initialize(), Finalize, GetMem() und FreeMem() bilden die andere Gruppe. Man sollte die beiden Gruppen imho nicht mischen.
    New() ersetzt die Kombination aus GetMem() und Initialize() - Dispose() ersetzt Finalize() und FreeMem().
    Dispose() braucht keinen typisierten...
  • Forum: Object-Pascal / Delphi-Language

    Re: Probleme mit Data (Pointer)

      Delphi
      by chaosben, 26. Feb 2007
    Hey Thomas,
    du machst mich ja ganz kirre. Weiter oben schreibst du:


    Und hier unten fragst du genau danach. :-D

    Aber damit wir das Problem endlich lösen können, werd ich mal sehen, obs irgendwo etwas schriftliches dazu gibt.

    Edit:
    In der BDS4-Referenz hab ich folgendes gefunden:
  • Forum: Object-Pascal / Delphi-Language

    Re: Probleme mit Data (Pointer)

      Delphi
      by chaosben, 25. Feb 2007
    Und um alles noch mal zusammen zu fassen:

    Dispose() braucht einen typisierten Pointer, damit es weiß, wie viel Speicher es freigeben muss. (Auf Delphisch: Dispose(PString(Datta); )

    Enthält der Pointer lange Strings, Variant-Werte oder Interfaces, muss vorher ein Finalize gemacht werden. Vorsorglichg kann man das immer voranstellen, denn ...
  • Forum: Object-Pascal / Delphi-Language

    Re: Probleme mit Data (Pointer)

      Delphi
      by chaosben, 25. Feb 2007
    Eigentlich sollte das nicht schief gehen, denn der Vorteil von New() und Dispose() ist ja gerade der, das diese Routinen (im Gegensatz zu GetMem() und FreeMem()) mit langen Strings umgehen können.

    Edit:


    Edit2:
    Ok, du hast doch recht. .... nur woher hab ich das mit dem Dispose und den langen Strings ... und außerdem: In der Praxis funktionierts :gruebel:
  • Forum: Object-Pascal / Delphi-Language

    Re: Probleme mit Data (Pointer)

      Delphi
      by chaosben, 25. Feb 2007
    PString ist ein Pointer auf einen String. :)

    Imho sollte man den Pointer so casten, damit Dispose weiß, wieviel es freigeben muss.
  • Forum: Object-Pascal / Delphi-Language

    Re: Probleme mit Data (Pointer)

      Delphi
      by chaosben, 24. Feb 2007
    Ja, vor dem Clear müsstest du alle Items durchlaufen ... es sei denn, es gibt ein Ereigniss beim Freigeben eines Items (á la VirtualTree).

    Und wenn du es nicht tust, sollte eigentlich Memoryleaks übrigbleiben. Am besten kann man das ab BDS4 mit dem Befehl
    ReportMemoryLeaksOnShutdown:=true; testen.
  • Forum: Object-Pascal / Delphi-Language

    Re: Probleme mit Data (Pointer)

      Delphi
      by chaosben, 23. Feb 2007
    Bevor du eine ListView.Clear machst (oder ein Item löschst), musst du natürlich alle Strings freigeben ... und das eben mit dem von dir angeführten Dispose.

    Dispose(PString(ListItem.Data));
  • Forum: Object-Pascal / Delphi-Language

    Re: Probleme mit Data (Pointer)

      Delphi
      by chaosben, 22. Mai 2006
    Hi ranftl!

    Bei deinem Code existiert der String deiner Wünsche nur so lange, wie du in der Prozedur bleibst, in der dieser Code ausgeführt wird. Probier es lieber mal so (aus dem Kopf):

    procedure TuWas;
    var
    LText : PString;
    begin
    New(LText);
    LText^:=FieldByName('Test1').AsString + FieldByName('Test2').AsString;


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=chaosben&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=69915
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:07 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