IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

ScrollBox qui freeze : compatibilité Win 2003 ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut ScrollBox qui freeze : compatibilité Win 2003 ?
    Bonjour,

    J'utilise un ScrollBox pour contenir un planning composé de nombreux StringGrid crées dynamiquement.

    La ScrollBox permettant de se déplacer vers le haut et vers le bas.

    Je n'ai aucun problème de fonctionnement sous 2000 ou XP, de nombreux clients utilisent ce ScrollBox sans soucis. Sauf un. Ils sont sous Windows 2003 serveur et passent par un bureau à distance (TSE).

    Eux c'est ok tant qu'ils touchent pas à la scroll bar (verticale). Dès qu'ils y touchent tout se bloque. Le CPU ne semble pas particulièrement utilisé.

    Savez vous si le composant ScrollBox à des problèmes de compatibilité avec 2003 serveur ou autre ?

    Merci

    Attention le .NET sur PDA peut causer des chutes de cheveux

  2. #2
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Points : 89
    Points
    89
    Par défaut
    Bonjour

    J'utilise des scrollbox sous windows 2003 en TSE et en Citrix, je n'ai pas de plantage. Je travaille avec delphi 7 entreprise.

  3. #3
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Merci pour ton témoignage dd16,

    Je n'avais pas précisé mais je suis sous Delphi 4.

    J'ai accès à un autre serveur 2003, je vais pouvoir faire des tests (hors TSE) cet après midi.

    Edit : Après test même problème sur ce nouveau serveur 2003. Je me demande ce qui peut bien causer ce problème.

    Attention le .NET sur PDA peut causer des chutes de cheveux

  4. #4
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    J'ai un problème identique : Delphi 7 et Windows server 2008. En local, mes scrollbox fonctionnent parfaitement et en TSE, il arrive régulièrement que l'application fige quand on veut utiliser les barres de défilement.
    Qui a déjà rencontré ce problème et comment le résoudre ? Déjà que quand on réduit l'application, elle disparaît dans les 10 secondes....
    Merci !!

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    alf_idsoft, tu réouvres un sujet vieux de 3 ans !

    Surtout qu'entre Server 2003 et Server 2008, il y a des différences notables !
    Il y a 2 patch pour D7, que l'on trouve sur le forum, qui change le comportement des certains composants liés à Vista (2008 R1 étant un 6.0 comme Vista, et 2008 R2 étant un 6.1 comme Seven)

    Avec D7, j'ai surtout eu des problèmes de "disparition" de TLabel dans les ScrollBox mais aussi bien en direct qu'un bureau à distance, mon collègue a réglé ce soucis avec les patch mentionnés (tu les trouves aussi chez Embarcadero, il faut compte chez eux pour télécharger)

    Ces anomalies VCL sont corrigées à partir de RAD 2007
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Wé, j'ai sorti la pelle

    Je vais faire installer les KB et voir ce que ça donne
    C'est curieux car l'application marche bien sur mon windows 7

    Merci

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Le thème en général, n'est pas le même, sur un Server 2008, tu utilises un thème léger et performant, alors que tu la WorkStation Seven, tu peux te permettre plus d'extravagance

    Tu n'as pas précisé 2008 R1 ou R2 ?
    Peut-être un soucis précis en 6.0 qui n'est plus présent en 6.1

    Quand j'évoque les patch, c'est des fichiers Pascal à intégrer au projet pas des KB Microsoft !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    2008 R1, "windows 6.0.6..."
    C'est surtout un soucis qu'on a aujourd'hui mais qu'on n'avait visiblement pas hier ! Pas de mise à jour du programme, ni du windows server... On va voir si cela fonctionne mieux après un reboot d'ici demain matin. Mais on n'a déjà eu le problème, puis il a disparu, sans qu'on modifie nos programmes. Pas moyen de mettre la main sur l'admistrateur qui fait joujou

    Des patches Delphi ?
    En tout cas, dans tout ce que je lis, je ne vois pas le rapport avec mes scrollbox qui figent (pb d'UAC, de fonts...)

  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    C'est pas vraiment des patch, juste des fichiers PAS à télécharger qui dans la section initialisation hack deux trois trucs !

    Long sleeping in WM_VSCROLL and WM_HSCROLL
    Semble que la propriété Smooth soit la coupable selon cette QC et le TSE doit augmenter le problème puisqu'un serveur étant rarement rebooté (plus de 25 jours car GetCurrentTime\GetTickCount ne fourni que 49,7 jours maximum sur un Cardinal, et donc que 25 jours sur un LongInt)

    Donc
    . soit tu mets Smooth à false (simple et rapide)
    . soit tu modifies Forms.pas (a tes risques et périls)

    En lisant la QC Long sleeping in WM_VSCROLL and WM_HSCROLL, on peut en déduire les modifications suivantes de TControlScrollBar.ScrollMessage pour éviter un Sleep (le freeze) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      CurrentTime, StartTime, ElapsedTime: Longint;
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      CurrentTime, StartTime, ElapsedTime: DWORD;
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    StartTime := GetCurrentTime;
    ElapsedTime := StartTime - CurrentTime;
    if ElapsedTime < FDelay then Sleep(FDelay - ElapsedTime);
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    StartTime := GetTickCount; // API en DWORD !
    ElapsedTime := StartTime - CurrentTime;
    if ElapsedTime < DWORD(FDelay) then Sleep(DWORD(FDelay) - ElapsedTime);
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  10. #10
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 28
    Points
    28
    Par défaut

    bingo, le serveur a été redémarré il y a 27 jours !
    Je crois que je vais demander un reboot tous les 20 jours (ça fait pas de mal)

    Qu'est-ce que le smooth ? Je pensais que c'était l'affichage du contenu d'une fenêtre lors de son déplacement, fonctionnalité windows. Or celle-ci est désactivée sur le TSE.

    En tout cas, merci, voilà une curiosité !!

  11. #11
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Le TScrollBox.HorzScrollBar.Smooth \ VertScrollBar.Smooth semble être géré par le code Delphi de ScrollMessage, justement avec une bidouille de Sleep et de Scroll répété !
    Cela semble être conçu pour défiler une section en plusieurs fois, je ne vois pas bien pourquoi
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  12. #12
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Ah ok, je ne connaissais pas vraiment cette propriété. Par précaution, j'ai mis smooth à true, je ne vois pas de différence notable à l'affichage.

    Même si c'est pas moi qui ait lancé le sujet, on peut considéré le problème comme résolu, et il y a 3 manières de voir les choses

    Merci !!

  13. #13
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut

    Il faut la mettre à false pour les deux HorzScrollBar.Smooth et VertScrollBar.Smooth
    Tu avais le bug alors que Smooth était à false ??? là c'est génant !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  14. #14
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    n'importe quoi, j'ai dit le contraire de ce que j'ai fait : j'ai mis smooth à false, c'était à true

Discussions similaires

  1. MFC / USB / Pc qui freeze sous win 7
    Par phil_tema dans le forum MFC
    Réponses: 0
    Dernier message: 30/04/2011, 15h06
  2. Réponses: 0
    Dernier message: 28/02/2008, 13h27
  3. Serveur Win 2003 qui se plante
    Par Youssef dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 08/11/2007, 13h17
  4. [Win 2003][SQL Server 2000][D 7] Peut-on utiliser le BDE ?
    Par Trulane dans le forum Bases de données
    Réponses: 8
    Dernier message: 04/04/2005, 10h43
  5. [Windows 2003 Server] Redimention d'une partition Win 2003
    Par Arbisis dans le forum Windows Serveur
    Réponses: 7
    Dernier message: 22/02/2005, 22h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo