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

GTK+ Discussion :

Ajouter puis scroller puis ajouter sans scroller.


Sujet :

GTK+

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Ajouter puis scroller puis ajouter sans scroller.
    Bonjour,
    Je souhaiterais avoir votre aide pour résoudre un problème algorithmique avec GtkAda.

    Le code ci- dessous, est sensé insérer une ligne puis scroller puis ajouter plusieurs une ligne et scroller.
    Je cherche le code qui me permettrait de scoller d'input en input, c'est a dire passer les output après coup donc à l'appel suivant.

    Je devrai donc commencer par un scroll et enlever mon scroll dans la boucle mais ça ne scroll plus du tout.

    Code ada : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
     
       declare
            Input : Os_Lib.String_Access;
     
       begin
          Input := new String ' (Glib.Convert.Locale_From_Utf8(Get_Text
                                                                 (GtkAda_Interface_Record(Main_Surface.all).Main_window.Main_Input_Line_Entry)));
     
          if OS_Lib."/="(Input, null) and then (Input'Length /= 0) then
     
     
             --GtkAda_Interface_Record(Main_Surface.all).Angel.Receive(Input.all);                                                                                  
             GtkAda_Interface_Record(Main_Surface.All).Main_Window.Outputs_Buffer := Get_Buffer(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Text)\
    ;
     
             Get_Start_iter(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Buffer, Top_Iter);
     
             Get_End_iter(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Buffer, End_Iter);
     
             Set_text(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Buffer, Gtk.Text_Buffer.Get_Text(GtkAda_Interface_Record(Main_Surface.all).Main\
    _Window.Outputs_Buffer, Top_Iter, End_Iter) & Glib.Convert.Locale_To_Utf8(Input(Input'First..Fixed.Index_Non_Blank(Input.all, Backward)) & Character'Val(10)));
     
             Set_buffer(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Text, GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Buffer);
             Get_End_iter(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Buffer, End_Iter);
             Mark := Create_Mark(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Buffer, Where => End_Iter);
             Scroll_To_Mark(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Text, mark);
             Set_Text(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Main_Input_Line_Entry, "");
     
     
             for I in 1..GtkAda_Interface_Record(Main_Surface.all).Spawn_Result.File_Content'Length loop
                   declare
                      tmp : constant String := (-GtkAda_Interface_Record(Main_Surface.all).Spawn_Result.File_Content(I));
                      Line : constant String := Tmp(Tmp'First..Fixed.Index_Non_Blank(tmp, Backward));
     
                   begin
     
                      declare
     
                      begin
                         GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Buffer := Get_Buffer(GtkAda_Interface_Record(Main_Surface.all).Main_Window.O\
    utputs_Text);
     
     
     
     
                         Get_Start_iter(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Buffer, Top_Iter);
                         Get_End_iter(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Buffer, End_Iter);
                         Set_text(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Buffer, Get_text(GtkAda_Interface_Record(Main_Surface.all).Main_Win\
    dow.Outputs_Buffer, Top_Iter, End_Iter) & Glib.Convert.Locale_to_Utf8(Line & Character'Val(10)));
                         Set_buffer(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_text, GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outpu\
    ts_Buffer);
                         Get_End_iter(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Buffer, End_Iter);
                         Mark := Create_Mark(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Buffer, Where => End_Iter);
                         Scroll_To_Mark(GtkAda_Interface_Record(Main_Surface.all).Main_Window.Outputs_Text, mark);
     
     
     
                    end;
                 end;
     
             end loop;
        end;


    Merci pour vos lumière.

  2. #2
    Invité
    Invité(e)
    Par défaut utiliser insert, plus pratique plus efficace et moins chère.
    utiliser insert, plus pratique plus efficace et moins chère.

    J'ai trouvé, bon quand on commence à connaître, ça avance finalement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter les DLLs de JOGL sans avoir accès au dossier du JRE
    Par Taurëndil dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 31/01/2007, 13h57
  2. Modification table : ajout de colonne puis insertion data
    Par nkongolo.m dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/06/2006, 19h37
  3. Réponses: 10
    Dernier message: 01/01/2006, 17h20
  4. Réponses: 2
    Dernier message: 04/12/2005, 20h07

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