[DELPHI] Pb : Différence de comportement suivant OS

Pb : Différence de comportement suivant OS [DELPHI] - Delphi/Pascal - Programmation

Marsh Posté le 30-09-2005 à 13:56:15    

Description du problème :
 
Ma form principale appelle une fiche qui est 'StayOnTop' mais pas modal. (je dois permettre l'accès à la face avant principale même quand cette fenetre est affichée). Sur cette form se trouve des boutons permettant le chargement et l'enregistrement de fichier. Je lance un OpenDialog sur l'Evenement OnClick de ces boutons. Mais voila alors que sur tous les PC jusqu'a maintenant , la fiche de choix du fichier de l'open dialog étaient bien en avant plan, voila que sur un pc celle ci se trouve derrière ma fiche stayOnTop. La seule différence étant que ce PC est équipé d'un XP service Pack 2 ( tout les autres sont soit en 2000 ou en XP pack 1)
 
Quel raison pourrait t'il y avoir a cette différence de comportement ? Vient t'elle du service pack 2 ?
 
 

Reply

Marsh Posté le 30-09-2005 à 13:56:15   

Reply

Marsh Posté le 30-09-2005 à 14:02:19    

le mode StayOnTop de la VCL ne marche pas super fort, j'ai souvent eu des problèmes avec ça.  
En général j'utilise ça, qui a l'avantage de pouvoir être changé à tout moment (pas juste à la création) :


  if ActionAlwaysOnTop.Checked then
    SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE)
  else
    SetWindowPos(Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-09-2005 à 15:17:13    

J'ai essayé , mais le problème reste. En fait meme si j'utilise une simple fiche 'StayOnTop', (avec ta méthode également) et que je lance un opendialog, celui ci est derrière sur le pc équipé du service pack 2 uniquement. J'y comprend rien  :pt1cable:

Reply

Marsh Posté le 30-09-2005 à 16:04:48    

L'opendialog, tu la construits dynamiquement ou bien tu places un TOpenDialog sur la form en design time ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-09-2005 à 16:06:10    

L'openDialog est créé en design time

Reply

Marsh Posté le 30-09-2005 à 16:11:23    

Je les crée toujours par code. Ça a peut-être un rapport :??:
Enfin, tu peux vite faire le test :
 
  with TOpenDialog.Create(self) do
    try
      if Execute then
      begin
      end;
    finally
      Free;
    end;


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-09-2005 à 16:24:20    

Toujours pareil. Je vais essayer de chercher quelle modification du pack 2 pourrait me causer ce souci

Reply

Sujets relatifs:

Leave a Replay

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