Accueil > Forum > > > > Acess violation At Adress in module
Acess violation At Adress in module
samedi 18 août 2007 à 20:31:34 |
Acess violation At Adress in module

Paounet
|
Apres creation de mon composant TGetPassword qui fonctionne.. j'ai créé une feuille principale Form1 (Unit1) qui utilise la 2ème feuille Modale Form2 avec Unit2 qui contient le composant.. La fonction Test(x,y,z) du Composant fonctionne bien à l'interieur de la feuille modale Form2 ou il est installé, mais non a partir de la feuille principale Form1 en m'affichant le message: « Acess violation At Address 0046B5D1 in Module 'Programme.exe' (mon programme compilé). Read of Addres 00000364...  Quelqu'un peut-il m'aiguiller pour trouver l'Erreur.. et les codes..D'avance Merci Unit 1 Unit 2 Form 1 Form2 ... Uses Unit2; Uses Unit1; . . ModalResult:=mrOk; Procedure... If (Form2.Test(MDP,Login,Codes) Then --- Message Erreur. Paounet
|
|
dimanche 19 août 2007 à 14:34:26 |
Re : Acess violation At Adress in module

Guillemouze
|
Procedure... if not Assigned(Form2) then ShowMessage('form2=nil'); If (Form2.Test(MDP,Login,Codes) Then --- Message Erreur
|
|
dimanche 19 août 2007 à 16:13:03 |
Re : Acess violation At Adress in module

Paounet
|
Merci pour la réponse ..... Mais elle ne répond pas à mon problème.. Tout se passe comme si ma fonction Test(....) de mon composant n'est pas accesible depuis une feuille autre que celle ou se trouve le composant.. Le code ' if not Assigned(Form2) then ShowMessage('form2=nil');' me renvoit le message 'form2=nil' et mon code du test(...) le même message Access Vialotion... Bien que que feuille1 a l'unité de feuille2 c'est comme si mon compo est invisible..
Paounet
|
|
dimanche 19 août 2007 à 23:06:43 |
Re : Acess violation At Adress in module

Guillemouze
|
heuuuu je crois que tu n'as pas bien compris ce que je voulais dire !!! ta variable Form2 n'est pas affectée . donc plusieurs possibilités: - ta form n'est pas créée automatiquement (tu dois avoir un createforl(Form2, TForm2) dans la source de ton dpr - tu as une autre variable qui s'appele form2 qui n'est pas intialisée - la fonction test est appelée dans le Create ou le OnCreate de ta Form1 - ...
|
|
lundi 20 août 2007 à 04:05:28 |
Re : Acess violation At Adress in module

Paounet
|
Je te remercie sincérement de ta sollicitude Guillemouze
..
Ma forme2 se trouve bien dans le Dpr. la fonction Test est demandée sur le OnShow de Form1. En fait je te passe les codes: ------------------------------DPR -------------------- program Protection; uses Forms, Demo in 'Demo.pas' {FormDemo}, Feuille Prinicpale -> Form1 Saisie in 'Saisie.pas' {FormSaisie}, Feuille Modale -> Form2 ProtectF in 'ProtectF.pas' {FormF}, " ProtectR in 'ProtectR.pas' {FormR}; " {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.Title := 'Protection des Logiciels'; Application.CreateForm(TFormDemo, FormDemo); -> Form1 Application.CreateForm(TFormSaisie, FormSaisie); -> Form2 Application.CreateForm(TFormF, FormF); Application.CreateForm(TFormR, FormR); Application.Run; end. --------------------------Feuille Principale Form1= FormDemo --------- Unit Demo ......... Uses ProtectF,ProtectR,Saisie; Saisie est l'unité ou se trouve le Compo. {$R *.dfm} // Test d'existence du fichier Licence.dat et prise des Codes procedure TFormDemo.FormShow(Sender:TObject); Const Fichier='Licence.dat'; Var F:TextFile;Code:String;Res:Array[0..2] Of String;i,j:Integer; begin Flag:=False;For i:=0 to 2 Do Res[i]:=''; If FileExists(Fichier)=False Then Exit Else Begin AssignFile(F,Fichier);Reset(F);Read(F,Code);CloseFile(F); Code:=Crypte(Code);End;i:=0;For j:=1 to Length(Code) Do If Code[j]<>#13 then Res[i]:=Res[i]+Code[j] Else Inc(i); // Execute le Test par rapport au composant TGetPassword des Codes // Exemple '3452CB6A','DELPHI','4381B685A8075C3452CB' If FormSaisie.GetPW.Test(Res[0],Res[1],Res[2]) Then Begin Enregistre.visible:=False;Version.Caption:='Version Complète'; End Else Flag:=False; end; -------------------- Feuille Modale Form2 = FormSaisie -------- Unit Saisie; interface uses Forms,GetPassword,StdCtrls,Buttons,Classes,Controls,ExtCtrls, Dialogs; type TFormSaisie = class(TForm) Retour:TBitBtn; GetPW:TGetPassword; procedure RetourClick(Sender:TObject); end; var FormSaisie:TFormSaisie;Flag:Boolean; implementation Uses Demo; {$R *.dfm} procedure TFormSaisie.RetourClick(Sender:TObject); Const Mess='Valide';Var Mess1:String; begin If GetPW.Test('3452CB6A','DELPHI','4381B685A8075C3452CB') then Mess1:='' Else Mess1:='Non '; ShowMessage(Mess1+Mess+#13); ( Par contre ici ça marche) ModalResult:=mrOk; end; end. ------------------------------------------------------------------------------- A tout hasard c'est le compo TGetPassword qui crée automatiquement en partie la feuille 2 - FormSaisie ( Attributs - rien d'autre)... Paounet
|
|
lundi 20 août 2007 à 13:36:43 |
Re : Acess violation At Adress in module

Guillemouze
|
pas facile de debugger comme ca ... je te conseille de faire du pas a pas et d'evaluer tes variables la ou ca plante. tu peux aussi mettre un point d'arret dans le OnCreate de ta formeSaisie et un sur ta ligne qui pose probleme pour voir l'ordre d'appel (le create doit etre appelé avant la ligne en question)
|
|
lundi 20 août 2007 à 17:09:23 |
Re : Acess violation At Adress in module

Paounet
|
Effectivement... J'ai contourné la difficulté en copiant de mon compo TGetPassword la fonction publique Test(etc...):Boolean; je l'ai intégrée dans ma 2ème feuille modale Formsaisie. En l'appelant de ma feuille princiaple tout fonctionne.. Bizarre, pourtant elle était déclarée comme publique. C'est dommage car je la retrouve 2 fois désormais.. Ca vient du compo c'ezst sûr mais je ne vois pas...
A tout hasard.... TGetPassword = class(TPanel) . . . Function Test(MDP,Login,Codes:String):Boolean; . . // Fonction qui teste les valeurs saisies avec l'algorithme de calcul Function TGetPassword.Test(MDP,Login,Codes:String):Boolean; Var Chaine:String;i,Valeur,Nbre,Nb:Integer; Begin Valeur:=0; // On récupère le Nombre Nb de Passe.Text:=MotPasse(IntToHex(Nbre,1)) Nbre:=Round(Hexa(MDP)); // Calcul de la Somme Ascii du Nom = Valeur For i:=1 To Length(Login) Do Inc(Valeur,Ord(Login[i])); // Calcul du Nombre générateur de Random Nb:=Valeur*Nbre Nb:=Valeur*Nbre; // Calcul du Code Activation Valide Chaine:=Copy(IntToStr(Valeur)+IntToHex(Valeur,1)+ IntToHex(Nb,1)+IntToHex(Nbre,1),1,20); If Chaine=Codes then Test:=True Else Test:=False; End; Paounet
|
|
lundi 20 août 2007 à 21:12:08 |
Re : Acess violation At Adress in module

Guillemouze
|
Réponse acceptée !
non je pense pas que ca vienne de ton composant avec ce que tu nous met. par contre ce qui m'etonne c'est que ton compo herite de TPanel! je suppose qu'il contient les edits de saisie des valeurs. enfin, si je comprend bien ce que tu as fait, j'aurait fait un truc dans ce genre (c'est peut etre deja ce que tu as fait):
TGetPassword = class(TPanel) private edtMDP: TEdit; edtLogin: TEdit; edtCodes: TEdit; ... public property MDP: string read GetMDP write SetMDP; property Login: string read GetLogin write SetLogin; property Codes: string read GetCodes write SetCodes; ... function Test: Boolean; end;
...
function TGetPassword.GetMDP: string; begin Result := edtMDP.Text; end;
procedure TGetPassword.SetMDP(const Value: string); begin edtMDP.Text := Value; end;
//Idem pour Login et Codes
function TGetPassword.Test: Boolean; begin //Ton code en utilisant les properties end;
|
|
mardi 21 août 2007 à 02:58:11 |
Re : Acess violation At Adress in module

Paounet
|
Effectivement ca y ressemble... mon compo est de type TPanel et comprend pas mal d'objets... Merci tout de même... Au debut je pensais que mon compo lorsqu'il était déposé sur une feuille, et qu'il la reformatait, celle-ci pouvait poser problème.. Mais avec ton aimable concours j'ai compris que lorsque la feuille 2 était lancée le compo devient après sa création accessible.. mais dès lors j'appelais la fonction du compo depuis la feuille 1, sa création n'étant pas faite....> ERREUR.. Je pense que c'est cela..
Dis moi à tout hasard.. lorsque je crée la feuille qui reçoit mon compo comment faire pour ajouter à ladite feuille (Form1) de nouvelles propriétés, voire fonction si tu sais Merci...
Je faisais ceci pour c=recréer ma feuille ------------------------------------------ Constructor TGetPassword.Create(Owner:TComponent); Begin Inherited Create(Owner); If Owner is TForm then with TForm(Owner) Do Begin Begin { Mes propriétés celles visibles normalement }End; Mes Objets... etc.. MERCI. Paounet
|
|
Cette discussion est classée dans : feuille, form2, at, violation, acess
Répondre à ce message
Sujets en rapport avec ce message
Access violation At Address In module *.exe [ par Paounet ]
Apres creation de mon composant TGetPassword qui fonctionne.. j'ai créé une feuille principale Form1 (Unit1) qui utilise la 2ème feuille Modale Form2
Probleme de Violation d'accès [ par Mr7Bungle ]
Bonjour et merci de bien vouloir preter attention à mon petit soucis =)Voila, j'ai créer un programme utilisant plusieurs fenetres différentes deja cr
access violation at 0x775b5581: write of address 0x00030fe4'. Processus stoppé [ par solitair ]
bonjour J’ai un Problème ,ya t’il une personne qui peut m'aider J’utilise Delphi 2007 & Windows 7 ,au bout du 4 em click sur un bouton (exécute une
suppression d'une feuille de calcul! [ par othland ]
en créant un document excel avec la technique OLE, je manipule un document qui contient 3 feuilles de calcul.or moi, je n'en ai besoin que de 2 feuill
Erreur Absraite [ par OhAime ]
Bonjour!Alors voilà, une chose étonnante se passe! Je fait un petit programme qui necessite a un moment la création de composants dynamique. Jusque là
Impression Excel via Delphi [ par wisdeco81 ]
Bonjour, Je voudrais lancer l'impression d'une feuille excel directement depuis Delphi. Tout ce que j'ai réussi a faire pour l'instant c'est import
OLE2 et Excel [ par sylvunix ]
Bonjour à tous,J'essaie de charger dans un TOleContainer un feuille Excel lue depuis un fichier, de modifier cette feuille, de la sauvegarder puis de
BDD : violation de clé [ par solitaire7z ]
slt, voila je ss débutant ds le domaine de la programmation , g crier une base de donnée et en mement de la sasie de code "BDE paradox indaxé par se
Code pour Composant composite [ par Paounet ]
Je ne sais si cela est possible car cela fait un moment que je cherche et ce sans résultat positif.Quel code écrire dans mon composant composite type
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|