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 :

Passage de paramètre dans un DoParallel


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 959
    Points
    959
    Par défaut Passage de paramètre dans un DoParallel
    Bonjour,

    voici un bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Procedure TForm1.AfficheCarteStandard;
    begin
      FBmp.BeginUpdate(True);
     
      ProcThreadPool.DoParallel(@AfficheLigneStandard, 0, FBmp.Height - 1, nil, ProcThreadPool.MaxThreadCount);
     
      FBmp.EndUpdate();
    end;
    J'ai vu dans la docs de Lazarus, que l'on peux passer un pointeur sur ce que l'on veux la ou j'ai mis un nil...

    Si la la place de mon nil, je passe l'adresse d'un Btimap, comment je peux l'exploiter dans la routine appeler, ce n'est pas très clair pour, moi !

    Si vous avez une info pour m'aider, je suis preneur ?

  2. #2
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut

    Tu exploites simplement le pointer dans ta routine en faisant un transtypage en fonction du type de données. Sans avoir testé je dirais un truc dans le genre


    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    procedure DoTVLineParallelProc(Index: PtrInt; Data: Pointer; Item: TMultiThreadProcItem); 
    var 
      x : LongWord;
      buffer : PByte;
    begin
      Buffer := PByte(Data);
      Inc(buffer, (Index * FBmp.Width * 4));
     
      if odd(Index) then
      begin
        For x:= 0 to FBmp.Width-1 do
        begin
           Buffer^:= 0;          // R
           inc(Buffer);
           Buffer^:= 0;         // G
           inc(Buffer)
           Buffer^:= 0;         // B
           inc(Buffer)
           Buffer^:= 255;     // A
           inc(Buffer)
        end;
      end;
    end;
     
    Procedure TForm1.DoParallelJob;
    begin
      FBmp.BeginUpdate(True);
     
      ProcThreadPool.DoParallel(@DoTVLineParallelProc, 0, FBmp.Height - 1, FBmp.RawImage.Data, ProcThreadPool.MaxThreadCount);
     
      FBmp.EndUpdate();
    end;
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 959
    Points
    959
    Par défaut
    Merci je m’en vais tester ceci dés demain matin

Discussions similaires

  1. passage de paramètre dans un LIKE
    Par dor_boucle dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/01/2006, 16h04
  2. passage de paramètres dans l'invite de commande
    Par mr_neness dans le forum Langage
    Réponses: 10
    Dernier message: 18/11/2005, 15h01
  3. Passage de paramètres dans champ hidden
    Par benassis dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/05/2005, 01h22
  4. Réponses: 9
    Dernier message: 13/05/2005, 03h13
  5. Passage de paramètres dans une requête imbriquée
    Par DrakkoFR dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/02/2005, 12h46

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