Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   FreePascal [gelöst] Lazarus: SaveToFile geht nicht (https://www.delphipraxis.net/183976-%5Bgeloest%5D-lazarus-savetofile-geht-nicht.html)

BadenPower 17. Feb 2015 15:42

AW: [gelöst] Lazarus: SaveToFile geht nicht
 
Zitat:

Zitat von Kralle (Beitrag 1290224)
Moin,
Zitat:

Zitat von himitsu (Beitrag 1290215)
Und wieso ist das global?

Weil ich mein StringListe nicht in einer Procedure/Funktion definiere sondern halt global.

Das kracht dann früher oder später schon wieder.

Leg die Defintion von sl in die Typdeklaration der Form.
Delphi-Quellcode:
  TForm1 = class(TForm)
  private
    { private declarations }
   sl: TStringList;
  public
    { public declarations }
  end;
Dann ist sie in der gesamten Form sichtbar, aber vor unbeabsichtigten Änderungen von ausserhalb geschützt.

Stell Dir einfach einmal vor, was geschiet, wenn Du diese Form zweimal erstellst, oder wenn irgend ein Komponentenentwickler auf die glorreiche Idee kommt, eine globale Variable mit dem Namen "sl" anzulegen.

himitsu 17. Feb 2015 15:51

AW: [gelöst] Lazarus: SaveToFile geht nicht
 
Oder wenn du auf die geniale Idee kommt und irgendwo nochmal eine globale StringListe brachst und denkst "oh, cool, da ist ja schon eine".

Alles was nicht lokal ist, muß einen sprechenden Bezeichner bekommen, der nicht das Datenformat beschreibt, sondern den "Inhalt".
Sonst könnte man alle globalen Integer auch i1 bis i3296 benennen.

Kralle 17. Feb 2015 15:53

AW: [gelöst] Lazarus: SaveToFile geht nicht
 
Moin,

Zitat:

Zitat von BadenPower (Beitrag 1290234)

Leg die Defintion von sl in die Typdeklaration der Form.
Delphi-Quellcode:
  TForm1 = class(TForm)
  private
    { private declarations }
   sl: TStringList;
  public
    { public declarations }
  end;
Dann ist sie in der gesamten Form sichtbar, aber vor unbeabsichtigten Änderungen von ausserhalb geschützt.

Stell Dir einfach einmal vor, was geschiet, wenn Du diese Form zweimal erstellst, oder wenn irgend ein Komponentenentwickler auf die glorreiche Idee kommt, eine globale Variable mit dem Namen "sl" anzulegen.

Und wieder was gelernt. Danke, habe das gleich umgesetzt.

Gruß Heiko

Kralle 17. Feb 2015 15:56

AW: [gelöst] Lazarus: SaveToFile geht nicht
 
Moin,

Zitat:

Zitat von himitsu (Beitrag 1290236)
Oder wenn du auf die geniale Idee kommt und irgendwo nochmal eine globale StringListe brachst und denkst "oh, cool, da ist ja schon eine".

Alles was nicht lokal ist, muß einen sprechenden Bezeichner bekommen, der nicht das Datenformat beschreibt, sondern den "Inhalt".
Sonst könnte man alle globalen Integer auch i1 bis i3296 benennen.

Da sollte ich das Refactoring mal anschmeissen und die Variablen, Liste usw. sinnig benennen.
Danke.

Gruß Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:11 Uhr.
Seite 3 von 3     123   

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