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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Bretagne
    Inscrit en
    Septembre 2005
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bretagne
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 109
    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
    Membre Expert
    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
    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 chevronné Avatar de der§en
    Homme Profil pro
    Bretagne
    Inscrit en
    Septembre 2005
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bretagne
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 109
    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