![]() |
AW: Speicher Freigeben
Das stimmt zwar, aber ich halte die gezeigte Vorgehensweise sowieso zumindest für problematisch. Schaut man sich dosomething alleine an, dann ist man doch erst einmal verwirrt.
|
AW: Speicher Freigeben
Das würde ich unter tricky noch akzeptieren, ich käme hier ins Grübeln:
Delphi-Quellcode:
das mag zwar gehen, aber wenn man mal die Übersicht verliert...
function ExtraColumsStringsDB(firma:string; ASL: TStringlist): Boolean;
...... ASL := TStringList.Create; Gruß K-H |
AW: Speicher Freigeben
Naja, eine lokale Instanzvariable, die nirgends erzeugt, aber dann freigegeben wird... Da würde ich zunächst mit einer AV rechnen.
|
AW: Speicher Freigeben
na ja, übersichtlich ist anders. Wenn man konsequent den Spiecher auch da wieder frei gibt, wo er reserviert wird, dann läuft man auch nicht in Gefahr den Überblick zu verlieren.
|
AW: Speicher Freigeben
Japp. Aus dem Bauch heraus würde ich es ungefähr so machen:
Delphi-Quellcode:
function ExtraColumsStringsDB(const firma: string; ASL: TStrings): Boolean;
var Temp: Array Of TColumn; i: integer; begin Result := False; Assert(Assigned(ASL)); try ASL.Clear; //das sieht mir komisch aus, ist das auch so ein Kandidat? Temp := GetExtraFields(firma); for i:=0 to high(Temp) do begin ASL.Add(Temp[i].FieldName ); end; Result := True; except on E: Execption do //irgendwie reagieren end; end; procedure dosomething; var SL: TStringList; begin SL := TStringlist.Create; try ExtraColumsStringsDB('EINEFIRMA', SL); //noch irgendetwas mit SL anstellen finally SL.Free; end; end; |
AW: Speicher Freigeben
Gibt es irgend einen Grund für das try..except in ExtraColumsStringsDB? Wenn mand ie Exception nicht behandeln kann, dann sollte die auch nicht behandelt werden und erst in einer höheren Schicht taucht dann das try..except auf. Dann kann man sich auch den überflüssigen Boolean-Rückgabewert sparen.
mfg Christian |
AW: Speicher Freigeben
Zitat:
Interfaces, dynamische Arrays und Strings kann man daher ganz gut als Result verwenden. Einfache Typen, Records, statische Arrays und natürlich eine Kombination aus all Diesen sind natürlich auch möglich. |
AW: Speicher Freigeben
Da die Elemente aber anscheinend eine Eigenschaft Fieldname haben, wird es sich wohl um Records oder Objekte handeln. Und Objekte werden in dem Code ja nicht freigegeben, daher meine Frage.
|
AW: Speicher Freigeben
Von Objekten hab ich auch nichts gesagt :mrgreen:
Records in Arrays wären aber OK :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 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