Heinrich Wolf hat geschrieben:SpaceJamm hat geschrieben:Fehler "sterbof.pas(9,36) Fatal: Can't find unit DirOutln used by sterbof".
Es reicht nicht, die unit aus dem Project Inspector zu löschen. In sterbof.pas unter "uses" muss DirOutIn auch noch entfernt werden und für die Aufrufe, die aus sterbof.pas nach DirOutIn.pas gehen, muss Ersatz geschaffen werden.
SpaceJamm hat geschrieben:Leider bringt es nichts, wenn ich DirOutln.pas von Delphi6/Source/samples einfach kopiere, und dann durch Tools>convert Delphi Unit to Lazarus umwandele und zum Project durch Project>Project Inspector einfüge. Weil es dann sehr viele Fehlermeldungen wegen DirOutln.pas gibt.
Das scheint aber der einzig sinnvolle Weg zu sein. Wenn Du Fragen zu den Fehlermeldungen, die hier auftreten, hast, kannst Du ja hier weiter fragen.
Heiner
Danke!
In folgenden Quelltext:
Code: Alles auswählen
function BrowseDialog(const Title: string; const Flag: integer): string;
//BG: Startet die SHBrowseForFolder-API-Funktion und gibt das
//ausgewählte Verzeichnis wieder.
var
lpItemID: PItemIDList;
BrowseInfo: TBrowseInfo;
DisplayName: array[0..MAX_PATH] of char;
TempPath: array[0..MAX_PATH] of char;
begin
Result := '';
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
with BrowseInfo do
begin
hwndOwner := Application.Handle;
pszDisplayName := @DisplayName;
lpszTitle := PChar(Title);
ulFlags := Flag;
end;
lpItemID := SHBrowseForFolder (BrowseInfo);
if lpItemId <> nil then
begin
SHGetPathFromIDList(lpItemID, TempPath);
Result := TempPath;
GlobalFreePtr(lpItemID);
end;
end;
Während der Compelierung kommt 2 Fehler:
sterbof.pas(154,22) Hint: Local variable "BrowseInfo" does not seem to be initialized
sterbof.pas(158,30) Error: identifier idents no member "Handle"
sterbof.pas(164,44) Error: Incompatible type for arg no. 1: Got "BROWSEINFO", expected "LPBROWSEINFO"
Hint: Found declaration: SHBrowseForFolder(LPBROWSEINFO):^ITEMIDLIST;
sterbof.pas(220) Fatal: There were 2 errors compiling module, stopping
Wenn ich folgende 2 Sätze (// hwndOwner := Application.Handle; //lpItemID := SHBrowseForFolder (BrowseInfo);) von Programm wegnehme, dann funktioniert das Programm wieder, aber ohne " Browse for Foldner " und " The File open Dialog " funktionen.
Ich vermute, dass ich wegen Umstieg von Delphi zu Lazarus muss folgendes machen:
Entwieder 1. Die Analoge von DirOutln.pas finden oder 2. Die funktion SHBrowseForFolder (BrowseInfo) tauschen für die andere, die auch für Lazarus passt.
Weisst jemand ws. darüber, wie es geht ?
