![]() |
Standardfunktionen eines 2005er Projekts funkt.nicht in 2006
Hallo zusammen,
ich habe ein eigenwilliges Problem: Ein bestimmtes Projekt, dass ich unter Delphi 2005 erstellt habe, möchte ich jetzt in Delphi 2006 weiterentwickeln. Aber dort funktionieren plötzlich einige Standardfunktionen nicht mehr! Konkret: FindFirst und GetDiskFreeSpaceEx. FindFirst konnte ich durch Verschieben der Units der Uses-Klausel im Implementation-Abschnitt in den Interface-Abschnitt wieder zum Laufen bringen. Aber an GetDiskFreeSpaceEx beiss ich mir noch die Zähne aus... Gibt es bei der Reihenfolge und Position der Units etwas generell zu beachten und was ist in Delphi 2006 anders als in Delphi 2005? -------------------------------------------------------- Hier meine momentane Uses-Klausel:
Delphi-Quellcode:
In "myFunctions":
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, TeEngine, Series, TeeProcs, Chart, Gauges, TeeFunci, ComCtrls, myFunctions, activeX, shlobj;
Delphi-Quellcode:
interface
uses Windows, Messages, SysUtils, Variants, Classes, DAO, Grids, Dialogs, StdCtrls, Forms, Controls, DBGrids, ShellAPI, ActnMenus, ComCtrls, ADODB, Graphics, RichEdit; ... implementation uses StrUtils, ComObj, Clipbrd, CommCtrl, Types, DateUtils; |
Re: Standardfunktionen eines 2005er Projekts funkt.nicht in
Zitat:
Vielleicht haben sich die parameter geändert. ich kenne das noch von GetDiskFree (oder so ähnlich) bei D3 und D5. In D3 war der Returnwert ein Integer, bei D5 war es dann Int64. Zitat:
OK, einige müssen an erster Stelle stehen, aber sonst sollte es egal sein. |
Re: Standardfunktionen eines 2005er Projekts funkt.nicht in
Welche Fehlermeldung bekommst Du?
Ich vermute mal das in einer geuseden Unit es ebenfalls ein FindFirst gibt welche nun versucht wird zu ziehen. Durch voranstellen des Unitsnamens bekommst Du immer deine gewünschte Funktion: Z.B.
Delphi-Quellcode:
verwendet immer die FindFirst-Funktion egal in wieviel Units eine FindFirst-Funktion definiert ist und an welcher Stelle SysUtils in der Uses-Anweisung definiert ist.
SysUtils.FindFirst(...)
|
Re: Standardfunktionen eines 2005er Projekts funkt.nicht in
Also bei mir funzt die GetDiskFreeSpaceEx (bis auf eine Fehlermeldung beim Schließen... :gruebel: ). Es gibt allerdings zwei Stück davon: eine in der Windows und eine in der SysUtils Unit. Beide unterscheiden sich ein klein wenig... :roll:
|
Re: Standardfunktionen eines 2005er Projekts funkt.nicht in
Zitat:
Delphi-Quellcode:
Nachdem ich die Units in den Interface-Abschnitt verschoben habe ist die gleiche Bedingung jetzt false!
if 0 <> FindFirst(SourceLW + 'ACPro_Local.mdb',faAnyFile,mySearchRec) then
Beim GetDiskFreeSpaceEx liefert folgender Code für den freien Speicher (iFrei) immer 0 bzw. der vorherige Wert wird nicht geändert. Es gibt auch keine Fehlermeldung!
Delphi-Quellcode:
function zuWenigSpeicher(): boolean;
var iFrei : Integer; Frei : Int64; Total: Int64; TotalFree: PLargeInteger; sLW: string; begin Result := False; Frei := 0; Total := 0; GetMem(TotalFree,4); sLW := sInstallationsPfad[1] + ':\' + #0; GetDiskFreeSpaceEx(@sLW[1],Frei, Total, TotalFree); iFrei := Frei div (1024*1024); FreeMem(TotalFree); ... Zitat:
Das Problem muss irgendwie mit den Units activex und/oder shlobj zutun haben! Noch irgendwelche Ideen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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