Dll et memo

Résolu
cs_saravana Messages postés 91 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 18 octobre 2007 - 11 févr. 2006 à 18:41
cs_saravana Messages postés 91 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 18 octobre 2007 - 13 févr. 2006 à 11:08
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

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
12 févr. 2006 à 23:35
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
3
pablor44 Messages postés 60 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 3 octobre 2006
12 févr. 2006 à 16:41
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à
0
cs_saravana Messages postés 91 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 18 octobre 2007
12 févr. 2006 à 17:45
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.
++
0
cs_saravana Messages postés 91 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 18 octobre 2007
13 févr. 2006 à 11:08
merci cirec c'est exactement ce que je voulais.
0
Rejoignez-nous