Ho la seguente procedura che consente di eliminare file da Windows, il dropping funziona bene ma quando cambio lo stile in runtime usando (TStyleManager.TrySetStyle(styleName)
), il modulo accetta non più cadere! cosa c'è di sbagliato qui esattamente?Cambiare gli stili di Delphi in fase di runtime non consente di trascinare i file nel modulo
public //public section of the form
...
procedure AcceptFiles(var msg : TMessage); message WM_DROPFILES;
...
procedure TMainFrm.AcceptFiles(var msg: TMessage);
var
i,
fCount : integer;
aFileName : array [0..255] of char;
begin
// find out how many files the form is accepting
fCount := DragQueryFile(msg.WParam, {uses ShellApi is required...}
$FFFFFFFF,
acFileName,
255);
for I := 0 to fCount - 1 do
begin
DragQueryFile(msg.WParam, i, aFileName, 255);
if UpperCase(ExtractFileExt(aFileName)) = '.MSG' then //accept only .msg files
begin
if not itemExists(aFileName, ListBox1) then// function checks whether the file was already added to the listbox
begin
ListBox1.Items.Add(aFileName);
end
end;
end;
DragFinish(msg.WParam);
end;
...
procedure TMainFrm.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle, True); //Main form accepts the dropped files
end;
+1 @hvd Thaks per la risposta! funziona come un fascino – Raul
Grazie per la modifica di @TLama, siamo d'accordo che ciò lo rende un po 'più chiaro. – hvd