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

C++Builder Discussion :

Application le haut en bas


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre r�gulier
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 7
    Par d�faut Application le haut en bas
    C'est pas une histoire � dormir debout!!

    Je travaille sur une application avec interface sur �cran LCD qui doit �tre lu par dessus. Les �crans LCD sont optimis�s pour une vision plut�t par dessous (portables).

    Quelqu'un d'entre vous connaitrait il un moyen de faire faire un demi tour complet � tous les objets graphiques d'une IHM. J'implanterai l'�cran la t�te en bas sur la machine et le tour sera jou�.

    Je travaille sous Borland C++ Builder 4 et Windows 2000 Pro mais je pense que c'est assez g�n�rique.

  2. #2
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2004
    Messages
    44
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 44
    Par d�faut
    Salut,

    J'ai l'impression que la solution n'est pas aussi simple...

    As-tu d�j� essay� de faire cette op�ration manuellement, sur l'un ou l'autre contr�le?
    Je sais que ton objectif est de retourner tes contr�les, mais les contr�les sont positionn�s par Top et Left. Et pas possible de d�finir des Height ou Width avec des valeurs n�gatives (pour simuler une inversion du contr�le)
    --> M�me si tu arrives � retourner la pr�sentation de l'�cran, tous les textes seraient toujours orient�s dans le sens "normal"...
    Maintenant, il existe peut-�tre des composants qui sont capables de le faire. Mais pas les composants standards tels que TEdit, TLabel, ...

    Fais �galement attention au Caption de la Form, les boutons syst�mes, le menu �ventuel,... quand tu dessines ta Form. Tous ces �l�ments seront toujours positionn�s sur le haut de l'�cran.

    En ce qui concerne la position des contr�les, tu pourrais boucler sur tous les contr�les de ta Form, dans le OnCreate par exemple.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    Controls[i]->Top = Height - Controls[i]->Top - Controls[i]->Height;
    Controls[i]->Left = Width - Controls[i]->Left - Controls[i]->Width;
    Je crois que cela te donneras un r�sultat proche de ce que tu veux.

    Bon courage

    @+

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 415
    Par d�faut
    Salut !

    Je ne sais pas si les versions ult�rieures � BCB3 ont pr�vu ce type de manipulation ?

    Par contre, il existe une possibilit� en s'appuyant sur la m�thode GetFormImage qui permet
    de r�cup�rer le bitmap image d'une form (zone client, sans la barre de titre et sans la barre
    de menus (peut-�tre pas avec les versions ult�rieures ???)).

    A partir de l� �a peut devenir tr�s compliqu� mais � la base, l'id�e est de copier ce bitmap
    dans un autre bitmap, pixel par pixel en appliquant une rotation (ici cette rotation est simple):

    On admet que Form2 va devenir l'inverse de Form1 :

    On aura d�clar� dans Unit1.cpp (Form1) :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    Graphics::TBitmap *Image = new Graphics::TBitmap;
    Graphics::TBitmap *Temp;
    Au moment de visualisualisation (chez moi, c'est trop long pour l'id�e que je me fais
    du "Temps r�el") :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Form2->SetBounds(Left, Top, ClientWidth, ClientHeight);
    Image->Width = ClientWidth;
    Image->Height = ClientHeight;
    Temp = GetFormImage();
     
    int we = ClientWidth-1;
    int he = ClientHeight-1;
     
    for(int y = 0; y < Height; y++)
        {
        for(int x = 0; x < Width; x++)
            {
            Image->Canvas->Pixels[x][y] = Temp->Canvas->Pixels[we-x][he-y];
            }
        }
    delete Temp;
    Form2->Show();
    Il ne faudra pas oublier dans la OnPaint de Form2 :

    En sachant que l'on aura d�clar� dans Unit2.cpp (Form2):

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    extern Graphics::TBitmap *Image;
    La complication arrive tr�s vite s'il faut donner l'illusion que l'on travaille sur cette
    form, car Form2 n'a que l'apparence graphique de Form1. Il faut dans ce cas g�rer depuis
    Form2 toutes les actions de la souris afin de solliciter les �v�nementielles de Form1 �
    l'emplacement suppos� des objets !!! Et s'il faut faire �cho d'un r�sultat (texte) dans ce
    cas, il faut pr�voir une fonte logique... voir la fonction API : CreateFont
    A noter que dans ce cas, toutes les op�rations graphiques devront se faire sur le bitmap
    Image et non directement sur la form (Form2->Canvas ne donne pas d'�cho persistant
    d'autant plus que la OnPaint effacera tout !!)

    A plus !

  4. #4
    Membre r�gulier
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 7
    Par d�faut
    Hou la la, grand merci � vous deux.

    Je sens l'usine � gaz, d�j� que j'ai du mal.....

    Je vais en parall�le regarder c�t� mat�riel, inverser l'adressage des pixels si c'est possible. Je serai plus dans mon �l�ment.

  5. #5
    Membre confirm�
    Inscrit en
    F�vrier 2005
    Messages
    26
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2005
    Messages : 26
    Par d�faut
    D'un point de vue applicatif, �a ma semble effectivement se diriger tout droit vers l'usine � gaz.

    Il me semble que les drivers Nvidia permettent de le faire, les intel aussi je pense, ati je sais pas :

    Autrement, la solution mat�rielle infaillible serait de... retourner l'�cran :

Discussions similaires

  1. Afficher du texte de haut en bas
    Par le-roy_a dans le forum Graphisme
    R�ponses: 3
    Dernier message: 21/12/2006, 09h37
  2. Pb touche fleche haut et Bas
    Par Andry dans le forum Delphi
    R�ponses: 5
    Dernier message: 23/10/2006, 11h53
  3. margin haut et bas
    Par raph707 dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 8
    Dernier message: 16/05/2006, 22h43
  4. [FLASH 8] Boutons Haut et Bas pour scroller un textArea
    Par hedgehog dans le forum ActionScript 1 & ActionScript 2
    R�ponses: 2
    Dernier message: 24/04/2006, 11h23
  5. [HTML] Tableaux Ancre en haut et bas de page
    Par codez dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 2
    Dernier message: 23/03/2006, 14h35

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