begin process at 2012 02 10 23:58:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

API

 > 

Fonction API GetOpenFileName ???


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction API GetOpenFileName ???

vendredi 6 septembre 2002 à 09:44:08 | Fonction API GetOpenFileName ???

PhGORMAND

Salut à tous.

Je cherche à utiliser la fonction API GetOpenFileName, mais je ne parvient pas à l'utiliser.

Dans le code ci dessous, je fais appel à la fonctin,
mais la boite de dialogue ne s'ouvre pas.
Pour répondre d'avance à certaines questions, je ne
veux pas utiliser TForm par éconnomie de taille de
l'exe (pour faire un programme d'installation).
Quelqu'un saurrait il me dire ce qui ne marche pas ?
merci.


Const
TempFilter : String = 'Tous les fichiers (*.*)' + #0 + '*.*' + #0;

procedure TForm1.Button1Click(Sender: TObject);
var
Param : TOpenFilename;
FullPath : Array[0..MAX_PATH] Of Char;
FileName : String;

begin

FileName:='C:\';
Param.lStructSize:=SizeOf(Param);
Param.hWndOwner:=Handle;
Param.lpstrFilter:=PChar(TempFilter);
Param.lpstrFile:=FullPath;
Param.nMaxFile:=MAX_PATH;
Param.lpstrFileTitle:=PChar(FileName);
Param.nMaxFileTitle:=256;
Param.Flags := OFN_EXPLORER Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY;

If GetOpenFileName(Param) Then MessageDlg('OK',mtInformation,[mbOK],0);
end;


samedi 7 septembre 2002 à 00:42:27 | Re : Fonction API GetOpenFileName ???

Nono40

Attention : le membres d'un enregistrement n'ont pas de valeur par défaut ! Tous les paramètres Pchar non initialisés pointaient donc dans le vide => des tas d'erreur de violation d'accès.

Donc dans l'enregistrement Param de type TOpenFileName il faut présicer TOUS les paramètres sauf ceux qui peuvent être ignorés d'après l'aide ou les options.

Voici l'appel complet :
procedure TForm1.Button1Click(Sender: TObject);
var
Param : TOpenFilename;
FullPath : Array[0..MAX_PATH] Of Char;

begin

Param.lStructSize := SizeOf(Param);
Param.hWndOwner := Handle;
Param.hInstance := 0;
Param.lpstrFilter := Pchar(TempFilter);
Param.lpstrCustomFilter := Nil;
Param.nMaxCustFilter := 0; // Ignoré si lpstrCustomFilter=Nil
Param.nFilterIndex := 1;
Param.lpstrFile := StrPCopy(FullPath,'DEFAUT.TXT');
Param.nMaxFile := MAX_PATH;
Param.lpstrFileTitle := Nil;
Param.nMaxFileTitle := 0; // Ignoré car lpstrFileTitle=Nil
Param.lpstrInitialDir := 'C:\TEMP'; // Ou Nil si répertoire par défaut
Param.lpstrTitle := 'Le titre !'; // Ou Nil si titre par défaut ( ouvrir )
Param.Flags := OFN_EXPLORER Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY;
Param.nFileOffset := 0;
Param.nFileExtension := 0;
Param.lpstrDefExt := 'TXT'; // Ou NIL si pas d'extension par défaut
Param.lCustData := 0; // Ignoré si lpfnHook=Nil
Param.lpfnHook := Nil;
Param.lpTemplateName := Nil;

If GetOpenFileName(Param) Then MessageDlg('OK',mtInformation,[mbOK],0);
end;


--- Nono du Moulin ---


-------------------------------
Réponse au message :
-------------------------------

Salut à tous.

Je cherche à utiliser la fonction API GetOpenFileName, mais je ne parvient pas à l'utiliser.

Dans le code ci dessous, je fais appel à la fonctin,
mais la boite de dialogue ne s'ouvre pas.
Pour répondre d'avance à certaines questions, je ne
veux pas utiliser TForm par éconnomie de taille de
l'exe (pour faire un programme d'installation).
Quelqu'un saurrait il me dire ce qui ne marche pas ?
merci.


Const
TempFilter : String = 'Tous les fichiers (*.*)' + #0 + '*.*' + #0;

procedure TForm1.Button1Click(Sender: TObject);
var
Param : TOpenFilename;
FullPath : Array[0..MAX_PATH] Of Char;
FileName : String;

begin

FileName:='C:\';
Param.lStructSize:=SizeOf(Param);
Param.hWndOwner:=Handle;
Param.lpstrFilter:=PChar(TempFilter);
Param.lpstrFile:=FullPath;
Param.nMaxFile:=MAX_PATH;
Param.lpstrFileTitle:=PChar(FileName);
Param.nMaxFileTitle:=256;
Param.Flags := OFN_EXPLORER Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY;

If GetOpenFileName(Param) Then MessageDlg('OK',mtInformation,[mbOK],0);
end;



lundi 9 septembre 2002 à 10:36:30 | Re : Fonction API GetOpenFileName ???

PhGORMAND

Salut NONO et merci pour la réponse mais...
Cela ne fonctionne pas sous D6. bizard.
sous D5, pas de problème, et pour initialiser
les données ( je n'y avais pas pensé ), on peut
utiliser la procedure FillChar.

Peut être que pour D6, il faut préciser
l'nvironnement dans l'option de compilation pour
la portabilité avec LINUX et Kylix. J'ai pas encore
cherché.

A+ http://philippe.gormand.free.fr





-------------------------------
Réponse au message :
-------------------------------

Attention : le membres d'un enregistrement n'ont pas de valeur par défaut ! Tous les paramètres Pchar non initialisés pointaient donc dans le vide => des tas d'erreur de violation d'accès.

Donc dans l'enregistrement Param de type TOpenFileName il faut présicer TOUS les paramètres sauf ceux qui peuvent être ignorés d'après l'aide ou les options.

Voici l'appel complet :
procedure TForm1.Button1Click(Sender: TObject);
var
Param : TOpenFilename;
FullPath : Array[0..MAX_PATH] Of Char;

begin

Param.lStructSize := SizeOf(Param);
Param.hWndOwner := Handle;
Param.hInstance := 0;
Param.lpstrFilter := Pchar(TempFilter);
Param.lpstrCustomFilter := Nil;
Param.nMaxCustFilter := 0; // Ignoré si lpstrCustomFilter=Nil
Param.nFilterIndex := 1;
Param.lpstrFile := StrPCopy(FullPath,'DEFAUT.TXT');
Param.nMaxFile := MAX_PATH;
Param.lpstrFileTitle := Nil;
Param.nMaxFileTitle := 0; // Ignoré car lpstrFileTitle=Nil
Param.lpstrInitialDir := 'C:\TEMP'; // Ou Nil si répertoire par défaut
Param.lpstrTitle := 'Le titre !'; // Ou Nil si titre par défaut ( ouvrir )
Param.Flags := OFN_EXPLORER Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY;
Param.nFileOffset := 0;
Param.nFileExtension := 0;
Param.lpstrDefExt := 'TXT'; // Ou NIL si pas d'extension par défaut
Param.lCustData := 0; // Ignoré si lpfnHook=Nil
Param.lpfnHook := Nil;
Param.lpTemplateName := Nil;

If GetOpenFileName(Param) Then MessageDlg('OK',mtInformation,[mbOK],0);
end;


--- Nono du Moulin ---


-------------------------------
Réponse au message :
-------------------------------

Salut à tous.

Je cherche à utiliser la fonction API GetOpenFileName, mais je ne parvient pas à l'utiliser.

Dans le code ci dessous, je fais appel à la fonctin,
mais la boite de dialogue ne s'ouvre pas.
Pour répondre d'avance à certaines questions, je ne
veux pas utiliser TForm par éconnomie de taille de
l'exe (pour faire un programme d'installation).
Quelqu'un saurrait il me dire ce qui ne marche pas ?
merci.


Const
TempFilter : String = 'Tous les fichiers (*.*)' + #0 + '*.*' + #0;

procedure TForm1.Button1Click(Sender: TObject);
var
Param : TOpenFilename;
FullPath : Array[0..MAX_PATH] Of Char;
FileName : String;

begin

FileName:='C:\';
Param.lStructSize:=SizeOf(Param);
Param.hWndOwner:=Handle;
Param.lpstrFilter:=PChar(TempFilter);
Param.lpstrFile:=FullPath;
Param.nMaxFile:=MAX_PATH;
Param.lpstrFileTitle:=PChar(FileName);
Param.nMaxFileTitle:=256;
Param.Flags := OFN_EXPLORER Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY;

If GetOpenFileName(Param) Then MessageDlg('OK',mtInformation,[mbOK],0);
end;






Cette discussion est classée dans : fonction, utiliser, api, param, getopenfilename


Répondre à ce message

Sujets en rapport avec ce message

Utilisaiton de variable avec la fonction Ord [ par aLTsn3ak3r ] Salut!J'ai une variable et j'ai essayé d'utiliser ma variable dans Ordet jai utiliser la fonction copy pour qu'il insert dnas la variable jsute la pre Fonction API DeviceIOControl [ par Nono40 ] Salut tout le monde,La fonction API DeviceIOControl utilise les constantes ( suivant l'aide en ligne ) prédéfinies suivantes :FSCTL_DISMOUNT_VOLUMEFSC Comment utiliser une API avec Delphi 5? [ par Manthis ] Salut,Je débute tout juste en Delphi 5. J'avais commencer par le VB. Et donc voila j'ai un problème comment utiliser une API avec Delphi?Ou doit-on la TTreeNodes et GetNode ? [ par barbulille ] salut :-]je ne comprends pas comment utiliser la fonction GetNode(ItemH: QListViewItemH): TTreeNode;dans la doc il est dit que ItemH est un handle mai Fonction à utiliser pour envoyer un stream par Tsocket [ par Francky23012301 ] Salut à tous, J'ai eu beau chercher sur le net, j'ai pas trouvé de réponse à mon probleme. Quelle est la fonction à utiliser pour envoyer un stream e fonction NetSessionEnum [ par L_art_ment ] Bien le bonjour !    J'aurais une petite question à vous poser, besoins d'un petit coup de main, je désire utiliser la fonction NetSessionEnum afin de Api NetMessageBufferSend [ par paf24 ] Bonjour,j'ai besoin d'un peu d'aide pour utiliser l'api NetMessageBufferSend de la librairie Netapi32.dllen fait, je sais pas quel classe ajouter dans Fichiers temporaires [ par bricolomi ] Bonjour la commauté,Malgré toutes mes recherches sur différents forum ou sites, Je recherche le moyen de visualiser les fichiers temporaires internet, Api NetMessageBufferSend [ par paf24 ] Bonjour,j'ai besoin d'un peu d'aide pour utiliser l'api NetMessageBufferSend de la librairie Netapi32.dllen fait, je sais pas quel classe ajouter dans Utiliser l'API BOOL GetSystemPowerStatus pour avoir des infos sur la batterie [ par Yil2201 ] Salut à tous! Voila, j'aimerais créer ma propore appli, capable de donner des infos sur la batterie, moins rudimentaire que la fenetre de la baterie d


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,604 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales