Bug in QuickLib
Liste der Anhänge anzeigen (Anzahl: 2)
QuickLib ist eine umfangreiche MultiPurpose-Library, die in der aktuellen Version 2.1 mit GetIt heruntergeladen werden kann.
Leider hat die Unit Quick.Commons einen Bug:
Code:
Das bedeutet, dass beim Aufruf von
//checks if need include signs
if pfIncludeNumbers in Complexity then // QuickLib 2.1
Code:
keine Sonderzeichen eingefügt werden!
RandomPassword(10, [pfIncludeSigns]);
Sowie beim Aufruf von
Code:
SOWOHL Sonderzeichen als auch Ziffern eingefügt werden!
RandomPassword(10, [pfIncludeNumbers]);
Hat jemand noch andere Bugs in QuickLib bemerkt? Hier ist ein kleines Projekt, mit dem der Bug reproduziert werden kann: Anhang 53472 Und hier ist der Bug-Fix: Anhang 53473 |
AW: Bug in QuickLib
Weiterer Bug gefunden:
Code:
erzeugt ein Memory-Leak. Es scheint keine Möglichkeit zu geben, das Gedächtnis-Loch zu vermeiden:
Quick.Process.GetProcessList
Code:
Dies scheint ein konzeptioneller Fehler zu sein: Quick.Process.GetProcessList gibt ein Ergebnis vom Typ TStringList zurück. Aber wie soll man den Speicher dieser StringList wieder freigeben? Besser wäre es, der Funktion Quick.Process.GetProcessList eine existierende StringList als var-Parameter zu übergeben, die man dann nachher selbst freigeben kann, z.B.:
procedure TForm1.tsProcessListsShow(Sender: TObject);
var sl: TStringList; begin sl := TStringList.Create; try sl.Sorted := True; sl.Duplicates := dupIgnore; sl.AddStrings(Quick.Process.GetProcessList); // bug: Creates memory-leak //CodeSite.Send('TForm1.tsProcessListsShow: sl', sl); lstProcesses.Items.Assign(sl); finally sl.Free; end; end;
Code:
Quick.Process.GetProcessList(sl);
|
AW: Bug in QuickLib
Lieder läßt sich die Bibliothek QuickLib mit Delphi XE5 nicht kompilieren, weil sie neuere Sprachelemente wie Inline-Deklarationen etc. verwendet.
Euch allen schöne Weihnachten & gute Gesundheit! Gruß, Andreas |
AW: Bug in QuickLib
Zitat:
Delphi-Quellcode:
procedure TForm1.tsProcessListsShow(Sender: TObject);
var sl: TStringList; begin sl := Quick.Process.GetProcessList; try sl.Sort; //CodeSite.Send('TForm1.tsProcessListsShow: sl', sl); lstProcesses.Items.Assign(sl); finally sl.Free; end; end; Zitat:
oder mir einen anderen Typen als Result raussuchen, bzw. wie beim Assign/AddStrings die StringList nicht erstellen, sondern nur befüllen. |
AW: Bug in QuickLib
Zitat:
|
AW: Bug in QuickLib
Zitat:
Wie gesagt, besser wäre es zu diesem Zweck, wenn man der Funktion GetProcessList eine existierende StringList als var-Parameter übergeben könnte. |
AW: Bug in QuickLib
Das ist doch eine firsche Liste?
Dann sollte doch eh jeder Prozess nur einmal drin sein. :stupid: |
AW: Bug in QuickLib
Zitat:
|
AW: Bug in QuickLib
Der nächste Bug in dieser Komponente?
Delphi-Quellcode:
Ich weiß jetzt nicht wie diese Komponente intern arbeitet, aber eine StringListe lässt sich auch so sortieren und aufräumen.
sl := Quick.Process.GetProcessList;
try sl.Sort; for var i := SL.Count - 2 downto 0 if sl[i] = sl[i+1] then sl.Delete(i); //CodeSite.Send('TForm1.tsProcessListsShow: sl', sl); lstProcesses.Items.Assign(sl); finally sl.Free; end;
Delphi-Quellcode:
sl.Sorted := True;
sl.Duplicates := dupIgnore; sl.Text := sl.Text; |
AW: Bug in QuickLib
Zitat:
Zitat:
Delphi-Quellcode:
Aber es funktioniert!
sl.Text := sl.Text;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 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