Moin,
sorry - ich bin mal wieder zu blöde

Ich habe hier ein Programm das beim Start ein paar Dateien kopieren soll und dann auf einen ButtonClick warten soll - sprich, das Hauptfenster soll den Focus bekommen. Klappt auch alles - nur wenn ich erst ein paar Dateien kopiere (mit CopyFileEx) dann bekommt das Hauptfenster hinterher nicht den Focus.
Hier mal die Programmteile die überhaupt angefasst werden:
Delphi-Quellcode:
function CopyFileEx(const ASource, ADest: string; ARenameCheck: boolean = false): boolean;
var
sh: TSHFileOpStruct;
begin
sh.Wnd := Application.Handle;
sh.wFunc := FO_COPY;
// String muss mit #0#0 terminiert werden, um das Listenende zu setzen
sh.pFrom := PChar(ASource + #0#0);
sh.pTo := PChar(ADest + #0#0);
sh.fFlags := fof_MultiDestFiles;
if ARenameCheck then sh.fFlags := sh.fFlags or FOF_NOCONFIRMATION;
Result:=ShFileOperation(sh)=0;
end;
procedure KopiereDateien;
var
searchResult: TSearchRec;
begin
(* Unterverzeichnis prüfen *)
if not DirectoryExists('D:\xTemp\Player') then ForceDirectories('D:\xTemp\Player');
(* Neue Dateien kopieren *)
begin
// Try to find regular files matching Unit1.d* in the current dir
if FindFirst('R:\Player\*.*', faAnyFile, searchResult) = 0 then
begin
repeat
if (searchResult.Name <> '.') and (searchResult.Name <> '..') then CopyFileEx('R:\Player\' +searchResult.Name, 'D:\xTemp\Player\' +searchResult.Name, true);
until FindNext(searchResult) <> 0;
// Must free up resources used by these successful finds
FindClose(searchResult);
end;
end;
end;
procedure TMultiMPlayer.FormShow(Sender: TObject);
begin
if not ProgrammGestartet then
begin
ProgrammGestartet := true;
oldMainFormW := Width;
oldMainFormH := Height;
oldMainFormL := Left;
oldMainFormT := Top;
oldImgAnzeigeW := imgAnzeige.Width;
oldImgAnzeigeH := imgAnzeige.Height;
AllButtonTop := btnStart.Top;
KopiereDateien;
end;
end;
Versteht das jemand ?
Hans