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

Lazarus Pascal Discussion :

Première lettre d'une cellule d'un StringGrid en majuscule [Lazarus]


Sujet :

Lazarus Pascal

  1. #21
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 069
    Points : 15 448
    Points
    15 448
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par ThWilliam Voir le message
    la première lettre passera en majuscule même pour un caractère accentué.
    Excellente idée ! Testé avec succès ton code sous Windows.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  2. #22
    Membre confirmé Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    668
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Novembre 2004
    Messages : 668
    Points : 628
    Points
    628
    Par défaut
    Citation Envoyé par ThWilliam Voir le message
    Bonsoir,

    Je pense que la meilleure solution pour toi est de modifier le texte à la sortie de la cellule (comme Roland l'a d'ailleurs suggéré).
    La solution avec KeyUp fonctionne mais à condition que la longueur du texte soit = 1.
    Donc tu n'auras plus la première lettre en majuscule si :
    - l'utilisateur repositionne le curseur au début pour modifier la première lettre.
    - l'utilisateur fait un coller.

    Teste ceci sous Linux.
    Remarque : j'ai adapté la mise en majuscule convenant à l'UTF8 (L'unité LazUTF8 est à déclarer): la première lettre passera en majuscule même pour un caractère accentué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.StringGrid1EditingDone(Sender: TObject);
    var
      S: string;
    begin
       with StringGrid1 do S:= Cells[Col, Row];
       if Length(S) > 0 then
       begin
           S:= UTF8UpperCase(UTF8LeftStr(S, 1)) + UTF8Copy(S, 2, Length(S));
           with StringGrid1 do Cells[Col, Row]:= S;
       end;
    end;
    Cordialement
    Thierry
    merci ThWilliam
    j'ai testé ton code et :

    1- j'ai bien rajouté l'unité LazUTF8 ( uses LazUTF8; )

    2 -sous Ubuntu j'ai rajouté la fonction UTF8LeftStr qui n'a pas l'air
    d'exister dans l'unité LazUTF8 sous Lazarus/Ubuntu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function Utf8LeftStr(const AText: String; const ACount: Integer): String;
    begin
      Result := Utf8Copy(AText, 1, ACount);
    end;
    3- Ton code met bien la première lettre en majuscule mais si je clique dans une cellule
    ca me met la majuscule sur tous les mots frappés avant.

    .
    .
    Why
    .
    //------------------

  3. #23
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 718
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 718
    Points : 15 098
    Points
    15 098
    Par défaut
    Yep !
    Citation Envoyé par winow Voir le message
    3- Ton code met bien la première lettre en majuscule mais si je clique dans une cellule
    ca me met la majuscule sur tous les mots frappés avant.
    C'est pas clair du tout ce que tu écris, là : ca me met la majuscule sur tous les mots frappés avant. Ils n'avait pas déjà la majuscule

    Tu dis pourtant que Ton code met bien la première lettre en majuscule...

    Tu vois le truc ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #24
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 069
    Points : 15 448
    Points
    15 448
    Billets dans le blog
    9
    Par défaut
    Décidément cette discussion est pleine d'obscurités (mais intéressante quand même).
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  5. #25
    Membre confirmé Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    668
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Novembre 2004
    Messages : 668
    Points : 628
    Points
    628
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Yep !


    C'est pas clair du tout ce que tu écris, là : ca me met la majuscule sur tous les mots frappés avant. Ils n'avait pas déjà la majuscule

    Tu dis pourtant que Ton code met bien la première lettre en majuscule...

    Tu vois le truc ?
    j'ai fait a la va vite, mdrrrrrrrr

    en fait ca fait cela :

    j’écris dans la cellule 1 ca me met la majuscule, parfait
    j’écris dans la cellule 2 pareil, pareil dans la cellule 3 mais

    quand j’écris dans la cellule 4 tout est en minuscule et
    si je clique dans la cellule 5 ca me met la première lettre du mot de la cellule 4 en majuscule.

    mdrrrrrrrr, j'espère être compréhensible, lol
    .
    Why
    .
    //------------------

  6. #26
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 718
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 718
    Points : 15 098
    Points
    15 098
    Par défaut
    Ce qui revient à dire que le code fonctionne bien avec les cellules 1, 2, 3 et commence à merdouiller à partir de la cellule 4, ce qui n'est absolument pas logique sauf s'il y a un bout de code ailleurs qui met la pagaille.
    D'ailleurs j'ai fait un test avec juste la procédure procedure TForm1.StringGrid1EditingDone(Sender: TObject); de Thierry (et la fonction Utf8LeftStr associée) et je ne constate pas ton défaut...

    Ah, au passage, cellules 1, 2, 3 c'est pas complet, c'est soit cellules 1.x, 2.y, 3.z, soit cellules x.1, y.2, z.3. Ça peut peut-être changer quelque chose...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #27
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    hello,
    j'ai repris l'idée de ThWilliam d'utiliser l'événement SetEditText qui se déclenche à chaque changement de texte dans une cellule et effectivement j'ai constaté le problème de la position du curseur d'édition sous linux. Je semble avoir trouvé une solution bestiale (grouik !) : j'utilise l'éditeur de cellule de grille voici le code à essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: string);
    var
      S: string;
    begin
        if Length(Value) > 0 then
        begin
            S:= Value;
            S:= UTF8UpperCase(UTF8LeftStr(S, 1)) + UTF8Copy(S, 2, Length(S));
           TStringCellEditor(TStringGrid(Sender).Editor).EditText := S;
        end;
    end;
    P.S : ça ne marche pas sous windows (le curseur d'édition se retrouve en 1ère position) remplacer dans ce cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     TStringCellEditor(TStringGrid(Sender).Editor).EditText := S;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TStringGrid(Sender).Cells[ACol,ARow] := S;
    Ami calmant J.P (pas T)
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  8. #28
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Points : 1 884
    Points
    1 884
    Par défaut
    Bonjour.

    @jurassic pork

    J'ai testé ton code sous Windows. C'est ok sauf qu'en cas de repositionnement en arrière du curseur, après la frappe d'une touche, le curseur va en fin de texte. C'est assez déroutant si on veut modifier un caractère.

    La solution idéale serait d'utiliser la propriété SelStart de InplaceEditor.
    C'est assez simple en Delphi, mais sous Lazarus, InplaceEditor est du type TWinControl (donc propriété inaccessible).
    Deux solutions :
    - utiliser l'événement OnSelectEditor et déclarer l'editor comme un TEdit (par exemple). Mais cela implique quelques procedures pour bien gérer le tout.
    - je viens de découvrir que le composant d'édition dans un StringGrid est en fait un descendant de TCustomMaskEdit. Donc, cela devient très simple :

    l'unité MaskEdit est à déclarer.

    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
    18
    19
    procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: string);
    var
      S: string;
      X: integer;
    begin
        S:= Value;
        if Length(S) > 0 then
        begin
             S:= UTF8UpperCase(UTF8LeftStr(S, 1)) + UTF8Copy(S, 2, Length(S));
             with StringGrid1 do
             begin
                 if InplaceEditor is TCustomMaskEdit then
                      X:= (InplaceEditor as TCustomMaskEdit).SelStart
                        else X:= -1;
                 Cells[ACol, ARow] := S;
                 if X >= 0 then (InplaceEditor as TCustomMaskEdit).SelStart:= X;
             end;
        end;
    end;
    Mais, qu'est-ce que cela donne sous Linux ?

    Cordialement
    Thierry

  9. #29
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    avec ton code Thierry, sous ubuntu on a encore le curseur d'édition récalcitrant qui se place avant le dernier caractère de la chaîne dans la cellule.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  10. #30
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 718
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 718
    Points : 15 098
    Points
    15 098
    Par défaut
    Yep !
    Citation Envoyé par ThWilliam Voir le message
    l'unité MaskEdit est à déclarer.

    Mais, qu'est-ce que cela donne sous Linux ?
    Réponse quand j'aurai trouvé ce qu'il faut mettre dans le uses pour que ça compile : InPlaceEditor inconnu et l'ajout de MaskEdit n'est pas suffisant...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  11. #31
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Points : 1 884
    Points
    1 884
    Par défaut
    Bonsoir,

    Je viens de tester le code sous Linux Mint.

    InplaceEditor est bien reconnu avec : uses Classes, SysUtils, Forms, Grids, Lazutf8, Maskedit;

    Par contre il y a de fait un problème avec le curseur.

    A la frappe d'une touche : déclenchement de l'événement OnSetEditText.
    Comme le code corrige à chaque frappe, la modification de Cells redéclenche l'événement OnSetEditText (vérifié par placement d'un compteur de passage).
    Très perturbant pour le SelStart (bien que Windows s'en sorte).

    Voici le code modifié, avec interdiction du double passage.

    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
    18
    19
    20
    procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: string);
    var
      s, s2: string;
      x: integer;
    begin
        if length(value) > 0 then
        begin
           s2:= Value;
           s:= Utf8UpperCase(Utf8Leftstr(s2, 1)) + Utf8Copy(s2, 2, Length(s2));
           if s = s2 then exit; // évite le double passage
           with StringGrid1 do
           begin
               if InplaceEditor is TCustomMaskEdit then
                  x:= (InplaceEditor as TCustomMaskedit).SelStart 
                  else x:= -1;
               Cells[acol, arow]:= s;
               if x >=0 then (InplaceEditor as TCustomMaskedit).SelStart:= x;
           end;
        end;
    end;
    Cordialement
    Thierry

  12. #32
    Membre confirmé Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    668
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Novembre 2004
    Messages : 668
    Points : 628
    Points
    628
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Yep !


    Réponse quand j'aurai trouvé ce qu'il faut mettre dans le uses pour que ça compile : InPlaceEditor inconnu et l'ajout de MaskEdit n'est pas suffisant...
    c'est uses Grids; mais il doit y avoir un bug car il ne reconnait pas InplaceEditor mais
    si tu met le point pour éditer une fonction, une propriété etc... alors l'aide s'affiche, bizarre non ?

    Lazarus ne reconnait pas InplaceEditor mais affiche l'aide d’édition quand même ?
    .
    Why
    .
    //------------------

  13. #33
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 718
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 718
    Points : 15 098
    Points
    15 098
    Par défaut
    Citation Envoyé par ThWilliam Voir le message
    InplaceEditor est bien reconnu avec : uses Classes, SysUtils, Forms, Grids, Lazutf8, Maskedit;
    Extraordinaire !
    Pas reconnu chez moi avec les mêmes entrées dans mon uses... Laz 1.0.10, FPC 2.6.2

    [EDIT suite au post de winow que je n'avions point vu]
    Citation Envoyé par winow Voir le message
    c'est uses Grids;
    Je m'en étais douté...

    Citation Envoyé par winow Voir le message
    mais il doit y avoir un bug car il ne reconnait pas InplaceEditor mais
    si tu mets le point pour éditer une fonction, une propriété etc., alors l'aide s'affiche, bizarre non ?

    Lazarus ne reconnait pas InplaceEditor mais affiche l'aide d’édition quand même ?
    Si vous saviez à quel point ça me gave ce genre de comportement foireux et tordu... Faut vraiment que j'ai besoin de Lazarus et Linux, sinon y a longtemps que tout serait passé par la fenêtre...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  14. #34
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    Hello,
    bien vu thierry l'histoire du double déclenchement de OnSetEditText,
    j'ai réussi à simplifier ton code on utilisant un TstringCellEditor comme ceci :

    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
    18
    procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: string);
    var
      s, s2: string;
      x: integer;
    begin
        if length(value) > 0 then
        begin
           s2:= Value;
           s:= Utf8UpperCase(Utf8Leftstr(s2, 1)) + Utf8Copy(s2, 2, Length(s2));
           if s = s2 then exit; // évite le double passage
        end;
        with (TStringCellEditor(TStringGrid(Sender).Editor)) do
         begin
          x :=  SelStart;
           EditText := s;
          if x >=0 then  Selstart := x;
         end;
    end;
    plus besoin de l'unité maskedit.
    Cela semble OK pour moi sous Ubuntu et cette fois-ci cela fonctionne aussi sous windows

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  15. #35
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 718
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 718
    Points : 15 098
    Points
    15 098
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    j'ai réussi à simplifier ton code on utilisant un TstringCellEditor comme ceci :

    Cela semble OK pour moi sous Ubuntu et cette fois-ci cela fonctionne aussi sous windows
    unit1.pas(84,14) Error: Identifier not found "EditText" Vais péter un plomb, je sens

    Bon, au pieu, demain il fera jour (si les russes ne font pas sauter la planète dans la nuit...)
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  16. #36
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    Jipété , à la place de :

    tu peux mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TStringGrid(Sender).Cells[ACol,ARow] := s;
    Ami calmant, J.P (pas T)
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  17. #37
    Membre confirmé Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    668
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Novembre 2004
    Messages : 668
    Points : 628
    Points
    628
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Hello,
    bien vu thierry l'histoire du double déclenchement de OnSetEditText,
    j'ai réussi à simplifier ton code on utilisant un TstringCellEditor comme ceci :

    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
    18
    procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: string);
    var
      s, s2: string;
      x: integer;
    begin
        if length(value) > 0 then
        begin
           s2:= Value;
           s:= Utf8UpperCase(Utf8Leftstr(s2, 1)) + Utf8Copy(s2, 2, Length(s2));
           if s = s2 then exit; // évite le double passage
        end;
        with (TStringCellEditor(TStringGrid(Sender).Editor)) do
         begin
          x :=  SelStart;
          TStringGrid(Sender).Cells[ACol,ARow] := s;
          if x >=0 then  Selstart := x;
         end;
    end;
    plus besoin de l'unité maskedit.
    Cela semble OK pour moi sous Ubuntu et cette fois-ci cela fonctionne aussi sous windows

    Ami calmant, J.P
    Ton code fonctionne parfaitement sous Ubuntu/Lazarus
    .
    Why
    .
    //------------------

  18. #38
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 718
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 718
    Points : 15 098
    Points
    15 098
    Par défaut
    Yop !

    Avec
    Citation Envoyé par jurassic pork Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TStringGrid(Sender).Cells[ACol,ARow] := s;
    tout comme winow,
    Citation Envoyé par winow Voir le message
    Ton code fonctionne parfaitement sous Ubuntu/Lazarus
    ça fonctionne parfaitement sous Debian.

    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  19. #39
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Points : 1 884
    Points
    1 884
    Par défaut
    Bonjour,

    @jurassic pork :

    j'ai réussi à simplifier ton code on utilisant un TstringCellEditor
    Bravo, je ne connaissais pas ce moyen ce moyen de rentrer en contact avec l'éditeur de cellule.

    @Jipété :

    Je reconnais que c'est très énervant. Mais ne devrais-tu pas upgrader ton lazarus ?
    Perso, j'en suis à la version 1.2.6 avec FPC 2.6.4 (version Windows)

    Cordialement
    Thierry

  20. #40
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 718
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 718
    Points : 15 098
    Points
    15 098
    Par défaut
    HS
    Citation Envoyé par ThWilliam Voir le message
    @Jipété :

    Je reconnais que c'est très énervant. Mais ne devrais-tu pas upgrader ton lazarus ?
    Perso, j'en suis à la version 1.2.6 avec FPC 2.6.4 (version Windows)

    Cordialement
    Thierry
    Mouais... J'en avais déjà parlé lors des posts nous informant des sorties de nouvelles versions, et tant qu'il n'y aura pas une vraie procédure de mise à jour, je refuse de systématiquement supprimer toute une arborescence pour la remplacer par une autre, juste pour une différence de peut-être 10 %.
    Par exemple, le dossier "examples" ne bouge en général pas ; il m'est arrivé d'en compiler certains, après de longues et laborieuses adaptations (encore hier soir avec lazfreetype, écrit pour Windows pur et dur et sans aucune indication dans le dossier), je n'ai pas envie de perdre tout ce travail -- ou alors il faudrait sauvegarder cette arborescence avant maj, et restaurer en tunant dossier par dossier : ça me gonfle je te dis pas !

    Je mettrai à jour quand je changerai de machine, na !
    /HS
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [XL-2007] Lire les 3 premières lettres d'une cellule
    Par nioko dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/12/2012, 17h04
  2. [XL-2007] Comment vérifier la première lettre d'une cellule?
    Par mentat dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/01/2010, 21h28
  3. Réponses: 2
    Dernier message: 16/10/2008, 12h06
  4. Extraire les deux dernieres lettres d'une cellule
    Par SybVicious dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/09/2006, 11h54
  5. Récupérer les deux premières lettres d'une chaine
    Par moscovisci dans le forum ASP
    Réponses: 3
    Dernier message: 10/01/2006, 14h53

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