Dll et memo

Résolu
Signaler
Messages postés
91
Date d'inscription
vendredi 25 mars 2005
Statut
Membre
Dernière intervention
18 octobre 2007
-
Messages postés
91
Date d'inscription
vendredi 25 mars 2005
Statut
Membre
Dernière intervention
18 octobre 2007
-
est-ce que quelqun peut me faire un exemple qui ajoute une ligne 'test' dans un memo par le biais d'une dll car je n'y arrive pas avec les dll
merci!!!

4 réponses

Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Salut

// Source de la Dll
library TextDll;


{ Remarque importante concernant la gestion de mémoire de DLL : ShareMem doit
être la première unité de la clause USES de votre bibliothèque ET de votre projet
(sélectionnez Projet-Voir source) si votre DLL exporte des procédures ou des
fonctions qui passent des chaînes en tant que paramètres ou résultats de fonction.
Cela s'applique à toutes les chaînes passées de et vers votre DLL --même celles
qui sont imbriquées dans des enregistrements et classes. ShareMem est l'unité
d'interface pour le gestionnaire de mémoire partagée BORLNDMM.DLL, qui doit
être déployé avec vos DLL. Pour éviter d'utiliser BORLNDMM.DLL, passez les
informations de chaînes avec des paramètres PChar ou ShortString. }


uses
SysUtils,
Classes;


{$R *.res}


Function AddText: PChar;
Begin
Result := 'Teste d''ajout de Texte par Dll dans un TMemo';
End ;


Exports AddText;
end.

<HR>

// Source de l'unité
unit Unit1;


interface


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


type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;


Function AddText: PChar; external 'TextDll.dll';


var
Form1: TForm1;


implementation


{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add(AddText);
end;
end.

Voilà c'est tout

@+
Cirec
Messages postés
60
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
3 octobre 2006

Bonjour Saravana,
où se situe précisément ton problème car en soit il suffit que tu crées une dll avec une fonction qui renvoi juste le texte 'test' et qu'ensuite tu l'affiche dans un memo...

//Ceci est la fonction de la dll
function gettext(): string;
begin
result:='test';
end;


//Ceci pour afficher le résultat dans le memo


procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Text := gettext();
end;

voilà voilà
Messages postés
91
Date d'inscription
vendredi 25 mars 2005
Statut
Membre
Dernière intervention
18 octobre 2007

merci pour ta réponse, je vais préciser.je voudrais ajouter des lignes dans un memo en passant par une dll,j'ai essayé les tutos sur les dll mais je comprend pas, un petit exemple avec le source complet de la form et de la dll serait le bienvenu.
++
Messages postés
91
Date d'inscription
vendredi 25 mars 2005
Statut
Membre
Dernière intervention
18 octobre 2007

merci cirec c'est exactement ce que je voulais.