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 : traduire une dll delphi5 en vb6 [ Algorithme / Maths ] (hcadieu)

mardi 23 mai 2006 à 11:27:22 | traduire une dll delphi5 en vb6

hcadieu

Bonjour,

j'ai développé un algorithme en delphi 5 et j'ai besoin de le traduire en VB6, quelqu'un ici bas maitrise t-il ces deux languages pour m'aider ?

unit MBRawData;

//note: the way HasHeader works slows the system down by about 50%.
//should just be temporary though - once data is converted, HasHeader
//can be removed.

(*
class: TMBRawData
       hervé Cadieu

Job Description
---------------
 - To hold the entire raw data for a single sample.
 - To give random access to each point in the sample
   by means of an array-like structure.
 - To allow the entire sample to be read and written in
   a single operation
*)

interface

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

type
  TmbRawData = class(TMemoryStream)
  private   //none
  protected
    function  GetCount:integer;
    function  GetHasHeader:boolean;
    function  GetHeader:TMBRawDataHeader;
    function  GetPoint(Index:Integer): TMBBasePoint;
    function  GetVersion:byte;
    function  GetDuration:integer;
    procedure SetDuration(value:integer);
    function  GetPenID:longint;
    procedure SetPenID(value:longint);
    function  GetPenType:longint;
    procedure SetPenType(value:longint);
    procedure SetHeader(header:TMBRawDataHeader);
  public
    procedure AddPoint(BasePoint:TMBBasePoint);
    procedure Truncate(LastPoint:integer);
    property Points[Index:integer]:TMBBasePoint read GetPoint; default;
    property Count:integer     read GetCount;
    property HasHeader:boolean read GetHasHeader;
    property PenID:longint     read GetPenID    write SetPenID;
    property PenType:longint   read GetPenType  write SetPenType;
    property Version:byte      read GetVersion;
    property Duration:integer  read GetDuration write SetDuration;
  end;


implementation


//AddPoint - adds a new BasePoint to the end of the RawData
procedure TMBRawData.AddPoint(BasePoint:TMBBasePoint);

  procedure AddHeaderBlock;
  var header:TMBRawDataHeader;
  begin;
  fillchar(header,SizeOf(header),0); //init to all zeros
  header.HeaderID := RawDataHeaderID;
  header.Version  := LatestRawDataVersion;
  SetHeader(header);
  end;

begin;
if size=0 then AddHeaderBlock; //first point, so add header block
seek(0,soFromEnd); //make sure we are at the end of the stream
write(BasePoint,SizeOf(BasePoint)); //write new point to end
end;


function TMBRawData.GetCount:integer;
//GetCount - calcs the number of BasePoints for the Count property
var HeaderSize : integer;
begin;
//cope with samples that do or do not have header blocks
if HasHeader
  then HeaderSize := SizeOf(TMBRawDataHeader)
  else HeaderSize := 0;
result := (size-HeaderSize) div SizeOf(TMBBasePoint);
end;


function TMBRawData.GetDuration:integer;
//returns sample's duration
var header:TMBRawDataHeader;
begin;
header := GetHeader;
result := header.Duration;
end;


function TMBRawData.GetPenID:longint;
//returns pen ID for sample
var header:TMBRawDataHeader;
begin;
header := GetHeader;
result := header.PenID;
end;


procedure TMBRawData.SetPenID(value:longint);
//sets the sample's penID
var header:TMBRawDataHeader;
begin;
if not HasHeader then exit;
header := GetHeader;
header.PenID := value;
SetHeader(header);
end;


function TMBRawData.GetPenType:longint;
//returns pen type for sample
var header:TMBRawDataHeader;
begin;
header := GetHeader;
result := header.PenType;
end;


procedure TMBRawData.SetPenType(value:longint);
//sets the sample's pen type
var header:TMBRawDataHeader;
begin;
if not HasHeader then exit;
header := GetHeader;
header.PenType := value;
SetHeader(header);
end;


function TMBRawData.GetHasHeader:boolean;
//GetHasHeader - returns wether the sample contains header info.
//early versions did not contain header info:
//                  old version  new version  has header
//                  1.0          1            no
//                  1.1          2            no
//                  -            3 onwards    yes
var Header:TMBRawDataHeader;
begin;
result := false;
if size<SizeOf(header) then exit;
position := 0;
read(header,sizeOf(header));
result := header.HeaderID = RawDataHeaderID;
end;


function TMBRawData.GetHeader:TMBRawDataHeader;
//returns the sample's header info
begin;
if not HasHeader then
  begin;
  FillChar(result,SizeOf(result),0); //blank header
  exit;
  end;
//there is a header
position := 0;
read(result,sizeOf(result));
end;


//GetPoint - gets a BasePoint from the RawData
function TMBRawData.GetPoint(Index: Integer): TMBBasePoint;
var p : ^byte;
    HeaderSize : integer;
begin;


mercredi 12 juillet 2006 à 17:02:29 | Re : traduire une dll delphi5 en vb6

mobilotek

Je te conseil d'être plus précis dans ce que tu veut traduire, je suis sure que tu peut en faire au moins la moitié;

Nous donner tout ca en bloc, ca fait beaucoup du coup!
Dis moi ce que tu connais pas,

mercredi 12 juillet 2006 à 17:16:49 | Re : traduire une dll delphi5 en vb6

mobilotek

Pour les classe, il faut déjà créer un module de classe, dans ajouter.
Pour l'interface, cest en haut de ce module que tu déclar tes vars.

Private Angle_rota As Double
Public compt_neg As Integer.
Const DIB_RGB_COLORS = 0

pour reservé, jsai pas.

Les types:

Type BITMAPINFOHEADER
        biSize As Long
        biWidth As Long
        biHeight As Long
        biPlanes As Integer
        biBitCount As Integer
        biCompression As Long
        biSizeImage As Long
        biXPelsPerMeter As Long
        biYPelsPerMeter As Long
        biClrUsed As Long
        biClrImportant As Long
End Type



Pour les méthodes, ta juste à les implémenté ds ce module:

Public Sub Trouver_Angle_rota()

     delta.x = Extr_haut.x
     delta.y = Extr_haut.y

rota.x = Pt_base.x - Extr_haut.x
rota.y = Pt_base.y - Extr_haut.y

If rota.x = 0 Then rota.x = 1

     Angle_rota = Atn(-(rota.y / rota.x))
End Sub





lundi 17 juillet 2006 à 10:44:07 | Re : traduire une dll delphi5 en vb6

hcadieu

Merci beaucoup a toi, je suis pret a recompenser $$$ celui qui fera l'effort de traduire intégralement cette classe , es tu intéressé?



Cette discussion est classé dans : function, end, header, integer, tmbrawdata


Répondre à ce message

Sujets en rapport avec ce message

Probleme de dll [ par mastercatz ] Voila mon probleme, je voulais faire une petite dll en vb pour quelques fonctions mais j'ai un probleme. Quand j'appelle ma fonction de la dll j'ai un Impression d'un panneau en .Net [ par dragon ] Salutj'ai présentement un code qui permet d'imprimer les composant d'une forme en .Net. Ça marche plutot bien, je l'ai prit sur le site.-------------- conversion en .NET [ par Safireo ] slut tlm !je cherche à terminer la conversion de ce code en .net.j'arrive à éliminer les erreurs mais pas à faire fonctionner le logiciel qui doit me Net Send, Aide [ par Maglore ] bonour, j'ai presque fini mon prog, reste 1 chose, le statusje suis pas capable de le faire fonctionner, mais j'ai quand meme préparé les variables (d Hook / Remplacement de touche [ par titoupit ] Bonjour,J'intercepte le flux clavier avec un Hook et je bloque la touche "." du pavé numérique.Mon problème c'est que j'aimerai remplacer cette touche Problème Scrollbar et Mshflexgrid [ par allfab ] Bonjour à tous, J'écris ce message parce que j'ai un petit problème lorsque je saisis des données dans une mshflexgrid. J'utilise la méthode de place [VB.NET]Comment inclure une console DOS dans WinApplication? [ par PolluxMsts ] Bonjour à tous,Je recherche le moyen d'inclure une console DOS dans une application VB.Net 1.Par exemple :Le textbox affiche une application DOS.J' FtpPutFile ne marche pas sous vb.net [ par darziw ] Bonjour, j'ai un gros probleme je suis tous les tutos que j'ai pu trouver pour utiliser wininet.dll, j'arrive a me connecter , a verifier si tel dossi Obtenir les noms des fenêtres dans la barre des tâches (partiellement résolu) [ par fauve ] Salut,Voilà mon soucis, j'ai reussi à faire un petit programme qui me liste les noms des fenêtres ouvertes et qui apparaissent dans la barre des tâche ligne [ par nabilwael ] Bonjour,Je suis vraiment désolé mais j'ai pa arrivé a faire ce que je veux.Bref, voila le code que je possède Option ExplicitDim DragX As Single, Dr


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

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 : 2,168 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é.