![]() |
AW: Speicher Freigeben
Vielen Dank :) .. werde es dann so machen, dass ich eine temp Variable mit übergebe und aus der Funktion mache ich dann eine Prozedur.
Dachte es gäbe vllt, wie bei Java eine Möglichkeit nicht benötigte Resourcen zu identifizieren und freizugeben. stiftII |
AW: Speicher Freigeben
Zitat:
|
AW: Speicher Freigeben
Zitat:
|
AW: Speicher Freigeben
Kurze Frage nochmal hierzu.
Warum funktioniert das so nicht ("function ExtraColumsStringsDB" erstellt die Stringlist) ?
Delphi-Quellcode:
function ExtraColumsStringsDB(firma:string; ASL: TStringlist): Boolean;
var Temp: Array Of TColumn; i: integer; begin try Result := True; SL := TStringList.Create; Temp := GetExtraFields(firma); for i:=0 to high(Temp) do begin ASL.Add(Temp[i].FieldName ); end; except Result := False; end; end; procedure dosomething; var SL:TStringList; begin try ExtraColumsStringsDB('EINEFIRMA', SL); finally SL.Free; end; end; |
AW: Speicher Freigeben
Weil der Stringlisten-Parameter const deklariert ist? Aber das ist die merkwürdigste Variante, die ich hier bislang gesehen habe, ist das nur zum Herumprobieren, oder willst Du das tatsächlich produktiv so einsetzen?
|
AW: Speicher Freigeben
Zitat:
Ja, ich würde das gerne "produktiv einsetzen" ;). Meine Funktion/Prozedur sieht so aus:
Delphi-Quellcode:
Das geht so auch, mich würde nur interessieren, warum die andere Variante nicht funktioniert (Access Violation).
procedure ExtraColumnsStringsDB(firma:string; ColumnStrings:TStringlist);
var Temp: Array Of TColumn; i: integer; begin Temp := GetExtraFields(firma); for i:=0 to high(Temp) do begin ColumnStrings.Add(Temp[i].FieldName ); end; //Free all columns for i:=0 to high(Temp) do begin Temp[i].Free; end; end; Grüße stiftII |
AW: Speicher Freigeben
Rein akademisch: ich denke, wenn Du es so machen willst, musst Du SL als Var-Parameter übergeben.
|
AW: Speicher Freigeben
Zitat:
K-H |
AW: Speicher Freigeben
Da fehlt nen A in der Funktion. Hatte die nur so kopiert :x
Jetzt aber:
Delphi-Quellcode:
function ExtraColumsStringsDB(firma:string; ASL: TStringlist): Boolean;
var Temp: Array Of TColumn; i: integer; begin try Result := True; ASL := TStringList.Create; Temp := GetExtraFields(firma); for i:=0 to high(Temp) do begin ASL.Add(Temp[i].FieldName ); end; except Result := False; end; end; procedure dosomething; var SL:TStringList; begin try ExtraColumsStringsDB('EINEFIRMA', SL); finally SL.Free; end; end; |
AW: Speicher Freigeben
Zitat:
sollte er es sogar mit OUT, anstatt VAR deklarieren, damit man gleich weiß was auf einen zukommt, wenn man diesen Funktionsheader sieht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 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