Afficher une carte à jouer grâce à la dll "cards.dll"

Soyez le premier à donner votre avis sur cette source.

Vue 30 431 fois - Téléchargée 611 fois

Description

La DLL "cards.dll" contient des images de carte à jouer qui sont utilisées dans de nombreux jeux sur Windows comme par exemple le "Solitaire" ou la "Dame de Pique".
Vous pouvez utiliser cette DLL dans vos propres sources pour afficher des cartes à jouer. L'avantage d'utiliser cette DLL dans vos sources est le gain de place de votre application puisque cette DLL se trouve déjà dans Windows.

En faites, il existe deux versions de cette DLL. Une version 16 bits (Window 95, 98) et une version 32 bits (Windows NT, 2000 et XP).
Nous utiliserons la version 32 bits.

Source / Exemple :


unit Unit1;

//Programme par Yoann
//http://delphipage.free.fr/

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
    Wdth:integer;
    Hght:integer;
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function cdtDraw(DC:HDC; X,Y,Card,Typ:Integer; Color:TColor):Integer; StdCall; external 'CARDS.DLL';
function cdtInit(var Width,Height:Integer):Integer; StdCall; external 'CARDS.DLL';
function cdtTerm:Integer; StdCall; external 'CARDS.DLL';

procedure TForm1.FormCreate(Sender: TObject);
begin
cdtInit(Wdth,Hght); //Initialise la DLL
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
cdtTerm; //Libère les ressources allouées
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
cdtDraw(Form1.Canvas.Handle,105,48,2,0,clWhite); //Affiche l'as de coeur
end;

end.

Conclusion :


Plus d'informations sur : http://delphipage.free.fr/

Codes Sources

A voir également

Ajouter un commentaire Commentaire
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Bonjour,
chez moi cette fonction ne marche pas ...

Voila mon unité :

unit UCards;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, JPEG;

function cdtDraw(DC:HDC; X,Y,Card,Typ:Integer; Color:TColor):Integer; StdCall; external 'CARDS.DLL';
function cdtInit(var Width,Height:Integer):Integer; StdCall; external 'CARDS.DLL';
function cdtTerm:Integer; StdCall; external 'CARDS.DLL';

implementation

end.

Dans une autre unité (avec une fiche cette fois ) :

uses UCards; // Pour utiliser l'unité plus haut

... ...

procedure TForm1.Create;
begin
UCards.cdtInit(Img.Width, Img.Height);
( Width 150 / Height 200)
end;

Voila le message d'erreur :

"Le point d'entrée de la procédure cdtinit est introuvable dans la bibliothèque de liaisons dynamique Cards.Dll"

Je suis sous Windows XP
Si tu avais une explication et/ou une solution au problème, j'apprecierai grandement une aide de ta part :)

Cordialement, Bacterius !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.