AGB  ·  Datenschutz  ·  Impressum  







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

Delphi Bug

Ein Thema von Luki206 · begonnen am 21. Feb 2014 · letzter Beitrag vom 21. Feb 2014
Antwort Antwort
Luki206
(Gast)

n/a Beiträge
 
#1

AW: Delphi Bug

  Alt 21. Feb 2014, 18:07
Ah ok, danke hat geklappt
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Delphi Bug

  Alt 21. Feb 2014, 19:10
Wenn Linte in private der Klasse definiert ist (also ein Feld der Klasse ist) dann nenn die doch einfach Finte und schon kannst du dir den Kommentar // Linte ist in private deklariert sparen.

Und wenn du die auch noch in FCount benennen würdest, dann ist dir und allen anderen klar, dass hier ein Klassenfeld ist, wo eine Anzahl gespeichert ist. Und das alles ohne einen Kommentar.

Kommentare sind nicht schlecht, aber sollten sparsam eingesetzt werden und nicht Offensichtliches oder eine schlechte Namenskonvention ausbügeln.

Auch dein Lschreibenach halte ich für schlecht, denn der Wert wird im Zusammenhang mit der INI als Section-Angabe benutzt.

Meine Empfehlung ist hier entweder LSection oder auch LUserSection .

Als Konstanten kannst du auch noch folgende definieren:
Delphi-Quellcode:
const
  INIFILE_NAME = 'C:\ProgramData\Lukas\Test.ini';
  USER_NAME_IDENT = 'Name';
  USER_NAME_DEFAULT = 'unbekannt';
Das Schreiben in die Ini sieht dann so aus:
Delphi-Quellcode:
LIni := TIniFile.Create( INIFILE_NAME );
try
  LIni.WriteString( LUserSection, USER_NAME_IDENT, FName[LIdx] );
finally
  LIni.Free;
end;
und das Lesen
Delphi-Quellcode:
LIni := TIniFile.Create( INIFILE_NAME );
try
  FName[LIdx] := LIni.ReadString( LUserSection, USER_NAME_IDENT, USER_NAME_DEFAULT );
finally
  LIni.Free;
end;
Ach ja, den Pfad würde ich eigentlich nicht hart kodieren, sondern KnownFolders oder SpecialFolders fragen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Delphi Bug

  Alt 21. Feb 2014, 19:57
Da du ja XE5 hast, kannst du natürlich auch folgende "Schweinerei" benutzen:
Delphi-Quellcode:
uses
  Custom.Types;

const
  INIFILE_NAME : TFilePath = '%ProgramData%\Lukas\Test.ini';


LIni := TIniFile.Create( INIFILE_NAME.Expand );
benötigt wird dazu das hier
Delphi-Quellcode:
unit Custom.Types;

interface

type
  TFilePath = type string;

  TFilePathHelper = record helper for TFilePath
    function Expand : TFilePath;
    function Exists( FollowLink : Boolean = True ) : Boolean;
    function GetDirectoryName : string;
    function GetFileName : string;
    function GetFileNameWithoutExtension : string;
    function GetFileExtension : string;
    function ForceDirectories : Boolean;
  end;

implementation

uses
  System.SysUtils,
  Winapi.Windows,
  System.IOUtils;

{ TFilePathHelper }

function TFilePathHelper.GetDirectoryName : string;
begin
  Result := TPath.GetDirectoryName( Self.Expand );
end;

function TFilePathHelper.GetFileExtension : string;
begin
  Result := TPath.GetExtension( Self.Expand );
end;

function TFilePathHelper.GetFileName : string;
begin
  Result := TPath.GetFileName( Self.Expand );
end;

function TFilePathHelper.GetFileNameWithoutExtension : string;
begin
  Result := TPath.GetFileNameWithoutExtension( Self.Expand );
end;

function TFilePathHelper.Exists( FollowLink : Boolean = True ) : Boolean;
begin
  Result := TFile.Exists( Self.Expand, FollowLink );
end;

function TFilePathHelper.Expand : TFilePath;
var
  LSize : Cardinal;
begin
  SetLength( Result, MAX_PATH + 1 );
  LSize := ExpandEnvironmentStrings( PChar( Self ), PChar( Result ), Length( Result ) );
  SetLength( Result, LSize - 1 );
end;

function TFilePathHelper.ForceDirectories : Boolean;
begin
  Result := System.SysUtils.ForceDirectories( Self.GetDirectoryName );
end;

end.
Ich überlasse es deiner Fantasie, was du da in den Helper noch so alles reinbauen möchtest ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 21:25 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