GetOpenFileName / Struct OpenFileName

GetOpenFileName / Struct OpenFileName - Delphi/Pascal - Programmation

Marsh Posté le 30-06-2005 à 10:55:39    

Salut les amis,
 
Gros souci chez Inek en ce moment :'(
 
J'ai un objet qui porte le doux nom "ofn" et qui est de type TOpenFileName.
 
Voilà le pti bout de code qui ouvre une boîte de dialogue à l'aide de l'api GetOpenFileName et qui prend en paramètre un TOpenFileName :
 


ZeroMemory(@buffer, sizeof(buffer));
ZeroMemory(@ofn, sizeof(TOpenFileName));
 
ofn.lStructSize := SizeOf(ofn);
ofn.hWndOwner := Hwnd;
 
filtre := 'Tous les fichiers (*.*)' + chr(0) + '*.*' + chr(0);
filtre := filtre + 'Fichier Audio (*.wav,*.mp3,*.ogg,*.wma)' + chr(0) + chr(0);
 
ofn.lpstrFilter := PChar(filtre);
                 
ofn.nFilterIndex := 1;
ofn.lpstrFile := buffer;
ofn.nMaxFile := sizeof(buffer);
ofn.lpstrInitialDir := nil;
ofn.lpstrTitle := nil;
ofn.Flags := OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_LONGNAMES or OFN_HIDEREADONLY;
 
if GetOpenFileName(ofn) then
      begin            
            edText.Text := buffer;
 
            FileHandle := CreateFile(PChar(buffer),
                GENERIC_READ,
                0,
                nil,
                OPEN_EXISTING,
                FILE_ATTRIBUTE_NORMAL,
                0);
 
            Taille := GetFileSize(FileHandle, nil);
         
            CloseHandle(FileHandle);
        end;


 
Ce code fonctionne très bien sous XP mais dans Windows 98 il y a un bug étrange. Quand on clique sur le bouton qui est censé exécuter ce code pour ouvrir la boîte de dialogue, le curseur se met en mode "déplacement de fenêtre" et il n'est pas possible d'ouvrir la boîte de dialogue...
 
Pourtant il n'y a rien qui dit "change d'icone" là dedans :cry:  
 
Si vous utilisez cette méthode, avez-vous une idée ?
 
Merci


Message édité par Inekman le 30-06-2005 à 10:56:26
Reply

Marsh Posté le 30-06-2005 à 10:55:39   

Reply

Marsh Posté le 09-07-2005 à 14:12:30    

Je sais pas pourquoi, mais sous Windows 98 "GetOpenFileName" ne fonctionne pas...quand je trace pas à pas, il zape l'appel de la fonction.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed