Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Passer des objets à une DLL [ Divers / Aide et documentation ] (christophedlr)

samedi 26 juillet 2008 à 23:05:34 | Passer des objets à une DLL

christophedlr

Membre Club
Bonsoir,

A la suite du problème que j'avais ici : http://www.delphifr.com/infomsg_PLACER-DONNEES-TFILESTREAM-DANS-TMEMORYSTREAM_1178462.aspx

J'ai un autre soucis.
Dans ma DLL (même fonction que celle donné dans mon lien, je vais la redonner ici), je passe un objet à une des fonctions.

Le soucis étant que le texte ne se retrouve dans mon TRichEdit comme demandé, aucune erreur n'est renvoyé.
Toutefois après avoir fait des tests sur un projet de test, cela fonctionne bien quand il y a pas de DLL au milieu qui fait ce changement.

Y-a-t-il donc un moyen de faire ?

J'explique, en fait ma fonction va lire une information sur la taille des prochaines données, puis il va lire les données en question.
Il doit ensuite placé les données récupérer du fichier dans le TRichEdit.
J'avais donc pensé au TFileStream pour lire le fichier, TMemoryStream pour mettre les données en mémoire afin de les mettre dans mon TRichEdit avec LoadFromStream.

Voici le code de la fonction :

procedure TFormatFEF.LoadFromFile(var RichEdit: TRichEdit);
var
Size: Integer;
MemoryStream: TMemoryStream;
begin
MemoryStream := TMemoryStream.Create;

if (ReadFile = False) then
begin
MessageDlg('Vous ne pouvez pas appeler une fonction de lecture en demandant'+
' une écriture du projet', mtError, [mbok], 0);
Exit;
end;

FileStream.ReadBuffer(Size, 4); //Lit la taille
MemoryStream.CopyFrom(FileStream, Size); //Copie les données dans le TMemoryStream
RichEdit.Lines.LoadFromStream(MemoryStream); //Inscrit dans le RichEdit
MemoryStream.Free;
end;

Merci d'avance à ceux qui pourront m'aider.

dimanche 27 juillet 2008 à 07:22:05 | Re : Passer des objets à une DLL

f0xi

Membre Club Administrateur CodeS-SourceS


procedure TFormatFEF.LoadFromFile(RichEdit: TRichEdit);
var
  Size: Integer;
  MemoryStream: TMemoryStream;
begin
  MemoryStream := TMemoryStream.Create;
  try
    if not ReadFile then
    begin
      MessageDlg('Vous ne pouvez pas appeler une fonction de'+#13#10+
                 'lecture en demandant une écriture du projet.',
                 mtError, [mbok], 0);
      Exit;
    end;

    FileStream.ReadBuffer(Size, 4);
    if Size <> 0 then
    begin
      MemoryStream.CopyFrom(FileStream, Size);
      MemoryStream.Position := 0;
      RichEdit.Lines.LoadFromStream(MemoryStream);
    end
    else
    begin
      // message : Size = 0, aucun texte ...
    end;
  finally 
    MemoryStream.Free;
  end;
end;





dimanche 27 juillet 2008 à 09:33:57 | Re : Passer des objets à une DLL

christophedlr

Membre Club
Oui mais ça va pas modifier le TRichEdit passer en paramètre si ?
Surtout ce que je comprend pas c'est que cela fonctionne si ce n'est pas mis dans une DLL.

dimanche 27 juillet 2008 à 10:17:24 | Re : Passer des objets à une DLL

christophedlr

Membre Club
Je viens d'essayer et cela change rien, mon TRichEdit est toujours vide.

dimanche 27 juillet 2008 à 10:32:52 | Re : Passer des objets à une DLL

christophedlr

Membre Club
Réponse acceptée !
Bon je viens de faire un nouveau test, j'ai regardé ce que fait le LoadFromStream du TRichEdit (dérivé de TStrings).
J'ai fait un copier/coller de ce qu'il fait et ça fonctionne parfaitement mais en l'appelant ça marche pas.

dimanche 27 juillet 2008 à 10:35:46 | Re : Passer des objets à une DLL

christophedlr

Membre Club
Réponse acceptée !
Bon problème totalement résolu, il faut que j'appelle manuellement le BeginUpdate avant et le EndUpdate après, mais c'est bizarre car ils sont déjà appelé avec le LoadFromStream enfin bon cherchez à comprendre ça sert a rien sur ce coup là.



Cette discussion est classé dans : fonction, données, dll, memorystream, tmemorystream


Répondre à ce message

Sujets en rapport avec ce message

Placer des données d'un TFileStream dans un TMemoryStream [ par christophedlr ] Bonsoir, Je voudrais dans mon programme, lire un fichier don les données que le lis sont transféré vers un TMemoryStream afin de pouvoir les placer e Espionner une dll pour récupérer un flot de données [ par gorets ] J'ai un programme qui utilise une fonction placée dans une dll. cette dll redirige par une fonction un flux de donnée vers le port parallèle (ou série comment declarer une fonction privé dans une dll delphi [ par jayceblaster ] Bonjour,je suis en train de créer un dll via l'expert de DLL delphi et je souhaite déclarer une fonction privé comme je peux le faire dans un projet V Recherche Expert Delphi .Net pour quelques questions [ par lbensch ] Bonjour,Je dois me lancer dans le re-développement d'un programme en Delphi 2005 .Net mais je ne comprends pas très bien le principe. J'aurais quelque Passage de paramètres erroné [ par mounjetado ] bonjour,il y avait longtemps que je ne vous avais embêtés avec mes questions!j'ai écrit une fonction dans une dll de mon crû, que j'utilise dans la fi Utilisation d'une dll ecrite en C++ avec delphi [ par gilch ] Bonjour,j'utilise une dll ecrite en C++ sous delphi, le fonctionement est ok mais j'ai un pb avecla declaration d'une fonction.Dans le programme C++ q Exécuter une fonction [ par cantador ] Salut les delphinautes, Ben voilà à mon tour de poser une question :Dans une appli client/serveur (exécutables sur poste de travail), j'ai besoin d' lister les fonction d'une dll [ par mouhandarab ] comment lister les fonction d'une dllj'utilise un dependency walker mais jarrive pas a trouver les return d'une fonctionmerci pour votre aide Type d'une fonction d'une DLL [ par sebastienbro ] Voilà, j'aimerais savoir s'il est possible de retourner une auytre valeur que ShortString (String par exemple)Et si oui, comment, parceque dès que je Comment ajouter des param. à l'appel d'une DLL [ par Pierrotmad ] J'ai un prog qui appelle une dll que j'ai réalisé . Dans la dll, j'ai un champ texte, disons pour l'exemple EdtChemin.text . J'aimerai mettre en param


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.