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 :

[Lazarus] Problème avec Tbrush.style


Sujet :

Lazarus Pascal

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 56
    Points : 38
    Points
    38
    Par défaut [Lazarus] Problème avec Tbrush.style
    Bonsoir,

    Voilà, j'ai un projet de gestion de collection de télécartes déjà bien abouti realisé avec Lazarus sous Windows et Linux.

    J'utilise pour la coloration des lignes l'exemple de la FAQ Delphi : http://delphi.developpez.com/faq/?pa...un-TStringGrid.
    Cela fonctionne très bien.

    Mais où j'ai un souci c'est pour définir un Tbrush avec un style personnalisé au lieu des BsHorizontal / BsCross ...
    Y a-t-il moyen de définir un "patern" pour TstringGrid.canvas.brush.style ??

    Et 2ième petit souci : si j'utilise par Ex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonStringGrid.canvas.brush.style := BsCross
    sous linux ça me donne bien une sorte de quadrillage mais ça ne donne rien sous windows !!

    Merci de vos réponses et solutions.
    Un peu touche a tous

  2. #2
    Membre éclairé

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Points : 773
    Points
    773
    Par défaut
    Je n'ai qu'un pc sous win allumé pour tester celà vite fait ce soir, aussi n'ai je testé que sous win ma réponse à ta première question :

    Comment utiliser une brosse personnalisée dans une stringgrid?

    L'exemple ci-dessous utilise une image existant sur le disque dur,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure MyBrushFromFile;
    var 
       a :tbitmap;
    begin
       a := tbitmap.Create;
       a.LoadFromFile('C:\1.bmp');
       stringgrid1.Canvas.Brush.Bitmap := a;
    end;
    Il est plus pratique de faire la meme chose en mettant l'image en tant que ressource avec lazres (outil fourni avec lazarus)...
    Pour celà, après avoir copié mon fichier bitmap (1.bmp) dans le dossier de lazres (le dossier tools de lazarus) tape dans une console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    C:\lazarus\tools>lazres mybmp 1.bmp
    ce qui devrait te donner pour résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1.bmp ResourceName='1' Type='BMP'
    Lazres a créé un fichier resource utilisable par lazarus nommé mybmp

    Recopie ce dernier dans le repertoire de ton projet et je renomme le en mybmp.lrs

    Il suffit ensuite de rajouter en fin de programme après le mot clef initialization:
    Ceci indique au compilateur d'integrer la resource au projet compilé.
    La resource est desormais accessible par son nom (ici '1') dans le programme.
    Tu peux facilement changer ta brush de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure MyBrushFromResource;
    var 
       a :tbitmap;
    begin
       a := tbitmap.Create;
       a.LoadFromLazarusResource('1');
       stringgrid1.Canvas.Brush.Bitmap := a;
    end;
    PS : ceci est censé fonctionner aussi sous linux, je ne manquerai pas de tester celà dès demain

    En espérant t'avoir un peu aidé

    Bonne programmation

    Clandestino

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 56
    Points : 38
    Points
    38
    Par défaut
    Merci,

    Je ferais avec ca...

    Si vraiment j'ai un soucis , je repasserai

    [EDIT]

    bon , c'est bien ce que je cherche

    mais, il y a un mais !!


    j'ai mis dans mon form.create

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      Pbr:=TbitMap.Create;
      PBr.LoadFromFile(chemin+'brush.bmp');
    dans le onDrawCell

    au debut j'ai rajouté la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    brush.bitmap:=nil;
    puis au niveau du test de ligne selectionné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    brush.Bitmap:=Pbr;
    l'image et de 8px*8px sur fond blanc avec des pixels en noirs

    sous win j'ai bien pour une ligne selectionné, mon Tbitmap. mais pas possible de de lui affecter une couleur

    et sous linux je vois le stringGrid quelques secondes, et fermeture du prog (crash) sans message.
    en enlevant le Brush.Bitmap ca plante plus

    j'ai gaffé quelque pars ??
    Un peu touche a tous

Discussions similaires

  1. [itext] Problème avec les styles
    Par jgavard dans le forum Documents
    Réponses: 3
    Dernier message: 17/03/2008, 14h17
  2. Problème avec le style de liste <select
    Par ybruant dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 18/11/2007, 19h01
  3. Réponses: 0
    Dernier message: 12/11/2007, 17h53
  4. Problème avec les styles d'un tableau
    Par psychoBob dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 20/05/2006, 03h13
  5. [MFC] [VS2005] Probléme avec le Style XP (? !)
    Par Exsilius dans le forum MFC
    Réponses: 2
    Dernier message: 28/03/2006, 10h28

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