PureBasic

Forums PureBasic
Nous sommes le Lun 10/Déc/2018 0:54

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 26 messages ]  Aller à la page Précédente  1, 2
Auteur Message
 Sujet du message: Re: Poo class abstraite
MessagePosté: Dim 17/Déc/2017 10:11 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1557
Localisation: Belgique
Il faudrait que tu me montre une lib que désirerais utilisée et regarderais ce qu'il est possible de faire? Du moins si cela t’intéresse :wink:

_________________
Linux Mint / Windows 10 64 bits PB: 5.61 ; 5.62 beta


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Poo class abstraite
MessagePosté: Lun 18/Déc/2017 17:05 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6567
Localisation: Isere
Demande à un aveugle, si il veut voir !!! 8)
Sincèrement, les bras m'en tombent de ta proposition 8O
Rien que de l'avoir faite, je t'en remercie déjà 8)

Ma question va te paraitre débile, mais bien sûr tu utiliserais un langage POO ? :oops:

En fait, on a beau tourner sur le WEB, beaucoup de chemins mènent à SELENIUM :|
Et j'ai aussi un impératif, c'est que le programme reste portable USB
C'est donc pourquoi, je ne suis même pas allé voir du coté de .NET et C#
C'est pourquoi, il m'a semblé que PYTHON était le meilleur candidat, car il existe en version portable
Et évidemment, je cherche à éviter mon ennemi de toujours JAVA, because obligation d'installation du JRE et je déteste le langage :|

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Poo class abstraite
MessagePosté: Mar 19/Déc/2017 10:04 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1557
Localisation: Belgique
@Kwai chang caine,

Cela ne m'éclaire pas beaucoup plus sur la librairie que tu cherche à utilisé.

Concernant les langages POO, Python est évidement le plus simple mais ils est interprété ( quoi qu'il soit possible de compiler un exe).

Java est bien sur plus compliqué mais portable et est spécial puisque compilé en byte code et interprété par la jvm.

Moi personnellement je n'aime pas Python car pas assez typé, et j'aime beaucoup Java avec sa syntaxe similaire au c.

_________________
Linux Mint / Windows 10 64 bits PB: 5.61 ; 5.62 beta


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Poo class abstraite
MessagePosté: Mar 19/Déc/2017 12:06 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6567
Localisation: Isere
Aaaaaahhhh !!! je craignais cette réponse :|
En fait mon rêve aurait été en C++, mais apparemment les vilains messieurs créateurs de LIB, ils en veulent pas non plus , va savoir pourquoi :|

Je ne voudrais pas te faire perdre du temps, j'en perds déjà depuis plusieurs années avec mes dizaines d'essais dans tous les sens :?
Tu vois, c'est là que je me rend compte que j'ai eu une chance de cocu avec PB il y a plus de 10 ans 8O (Tiens elle fait quoi bobonne aujourd'hui ? :mrgreen:)
Car j'ai quitté VB6, pour X raisons, dont la non portabilité et les DLL activeX, et j'ai essayé plusieurs basics dont de mémoire libertybasic et peut être un ou deux autres.
Et le miracle s'est produit au bout de 2 essais de langages différents 8O
"Tout dans la R16" au 3e langage, du coups, je me suis pas rendu compte de ma chance.

Mais dans le WEB, déjà que je déteste ça, car c'est en constant mouvement, jamais vraiment au point, trop aléatoire selon la machine, le navigateur, l'OS, etc...bref...c'est toujours l'aventure....et bien je n'ai pas la même chance.
J'ai des dizaines de choix à faire, et en fin de compte je ne sais jamais si c'est vraiment le bon

Car chacun prêche pour sa paroisse, tu lis chaque site d'auteur, c'est le meilleur.
Et quant tu as perdu X heures à lire, essayer, etc...tu t'aperçois que c'est pas portable, ou qu'il faut être admin, ou tel OS, ou qu'il faut installer d'autres frameworks ou logiciels qui à leurs tours sont parfois pas vraiment opérationnels, ou ne s'entendent pas avec telle version, etc.... une histoire de dingue :?

Déjà j'ai mis un temps fou à choisir mon navigateur, j'ai écouté les conseils de ZORRO qui prêchait Firefox, et j'en suis assez content, bien que des fois je code des pilotages qui fonctionnent, puis ne marchent plus sur la version d’après...

Bref, voilà pourquoi, je préfère garder ta gentille offre, si un jour j'ai enfin trouvé la lib qui va bien "la PB du WEB" en espérant qu'elle existe, et que comme dab, il faut utiliser la POO :|
Mais si il faut que je me mette à la POO, j'essaierais de me pencher sur C++, car je ne sais pas si C# existe en portable.
Parce que bien que je t'admire, je ne rêve pas de danser la JAVA, même avec toi :wink: , à moins que tu sois blonde à forte poitrine :lol:

Encore merci pour ton offre généreuse...je continue mes recherches dans la jungle du pilotage WEB :|

Image

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Poo class abstraite
MessagePosté: Mar 19/Déc/2017 12:19 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1557
Localisation: Belgique
Si il existe une dll (poo ou pas) elle est normalement utilisable avec Pb

_________________
Linux Mint / Windows 10 64 bits PB: 5.61 ; 5.62 beta


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Poo class abstraite
MessagePosté: Mar 19/Déc/2017 12:58 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6567
Localisation: Isere
Alors là......

Les bras m'en tombent !!!!
Je suis ébouriffé


Image

Tu veux dire que TOUTES les DLL (Standard bien sûr) même faites en POO, peuvent être utilisée en PB !!! 8O

Je ne le savais pas !!! 8)
Je pensais bêtement, que pour manipuler une DLL POO il fallait un langage POO :oops:
Mais alors..... ça donne un espoir infini ce que tu me dit là !!! :D

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Poo class abstraite
MessagePosté: Mar 19/Déc/2017 13:14 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1557
Localisation: Belgique
A la base c'est la raison pour la quel les interfaces existent, maintenant je l'avoue je n'ai jamais testé
https://www.purebasic.com/french/documentation/reference/interfaces.html

_________________
Linux Mint / Windows 10 64 bits PB: 5.61 ; 5.62 beta


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Poo class abstraite
MessagePosté: Mar 19/Déc/2017 14:02 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6567
Localisation: Isere
Alors là !!!!!! j'ai bien fait de me lever ce matin !!!! 8O
J'ai vu je ne sais pas combien de fois cette fonction "interface" dans les forums PB
Mais je ne sais pas pourquoi je me me suis arrêté de lire ici :mrgreen:
Citation:
Les Interfaces sont utilisées pour accéder facilement aux modules 'Orientés Objets' tels que les bibliothèques COM (Component Object Model) ou DirectX. Ce type de bibliothèques sont de plus en plus courantes sous Windows et les interfaces permettent une exploitation de ces fonctions sans impacts de performances. Les interfaces jettent aussi les bases pour une 'Programmation Orientée Object' (OOP en anglais) avec PureBasic mais de solides connaissances sont nécessaires [Couic]
Truc de dingue, en fait dans tout ce que je t'ai écrit avant, je voulais rajouter (et oui j'ai pas tout dit :mrgreen:) que le rêve serait de trouver quelque chose qui permettrait de "traduire" la POO en quelque chose d'utilisable en PB, en fait FRED y avait déjà pensé il y a longtemps 8)
Le super panard, serait de pouvoir coder quelque chose qui créé le code du wapper d'une DLL POO quasi automatiquement.
Mais à mon avis, ça doit surement pas être demain la veille que quinquin se lancera dans ce genre de chose :|

Quand tu vois ce genre de code de DarkDragon "Interface constructor/destructor"
Tu sais déjà que tu seras jamais emmerdé par KCC parce qu'il aura fait un update dans ton code :lol:

Qui a dit que la POO était simple ??? hein qui ??? :wink:
A partir de combien d'années d'hopital psychiatrique on peut coder ce genre de choses ?? 8O

Code:
Interface Inter_Face
  MSG(Message.s)
EndInterface

Structure OBJ
  VTable.l
  Function.l[SizeOf(Inter_Face)/4]
EndStructure

Procedure Message(*t.Inter_Face, Message.s)
  MessageRequester("", Message.s)
EndProcedure

Procedure Constructor()
  *OBJ.OBJ = AllocateMemory(SizeOf(OBJ))
  *OBJ\VTable = *OBJ+OffsetOf(OBJ\Function)
  *OBJ\Function[0] = @Message()
  ProcedureReturn *OBJ
EndProcedure

Procedure Destructor(*OBJ.OBJ)
  FreeMemory(*OBJ.OBJ)
EndProcedure

*MyOBJ.Inter_Face = Constructor()
*MyOBJ\MSG("Hallo, dies ist ein Testtext")
Destructor(*MyOBJ)

http://www.purebasic.fr/german/viewtopi ... f7a#p10031

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Poo class abstraite
MessagePosté: Mar 19/Déc/2017 22:04 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1557
Localisation: Belgique
Je vais t'explique et tu vas comprendre que ce n'est pas si sorcier.

On crée une structure, c'est ce qui va encapsuler les membres (variables) de la class
exemple
Code:
Structure maStructure
    nom.s
    var.l
EndStrucure

Jusque la rien de nouveau c'est une simple structure.

Ce qui est nouveau

Comme premier paramètre de la structure, on ajoute au choix
1ère solution

une pointeur par fonction (méthode) genre
Code:
Structure maStructure
    *MaFonction1
     *MaFonction2
    nom.s
    var.l
EndStrucure


etc..
Ensuite on y assigne l'adresse des fonctions
exemple:
Code:
maStructure\MaFonction1 = @MaFonction1() ; Même la fonction à des paramètres on ne les indique pas ici
;etc..

2ème solution
on ajoute un pointeur pour toute les fonctions
Code:
Structure maStructure
    *MesFonctions
    nom.s
    var.l
EndStrucure

On place l'adresse des fonctions dans un DataSection
exemple
Code:
DataSection
   MESFONCTIONS:
   data.i @MaFonction1()
   data.i @MaFonction2()
   data.i @MaFonction3()
EndDataSection


On assigne les adresses
Code:
maStructure\MesFonctions = ?MESFONCTIONS


Le constructeur :

La c'est un rien plus compliqué, on assigne à un pointeur la structure

2 méthodes
Code:
*monPointeur.maStructure = AllocateMemory(maStructure)
; ou (moi je préfère cela)
*monPointeur.maStructure =AllocateStructure(maStructure)



On peut après remplir toutes les variable de la structure ou pas, mais il faut impérativement assigner l'adresse des fonctions comme expliquer ci plus haut.

L'interface permet juste de pouvoir atteindre l'adresse de la procédure que l'on a assigné dans la structure

Voici un petit exemple complet

Code:
Structure people
  *fonctions ; adresse des procédures
  nom.s
EndStructure
; simple procédure ou l'adresse de l'objet sera automatiquement renvoyée par
; l'interface
Procedure hello(*this.people)
  With *this
    Debug "Bonjour "+\nom
  EndWith
EndProcedure
Procedure bye(*this.people)
  With *this
    Debug "Aurevoir "+\nom
  EndWith
EndProcedure
; le constructeur
Procedure newPeople(nom.s)
  Protected *this.people = AllocateStructure(people)
  With *this
    \fonctions = ?FONCTIONS
    \nom = nom
    ProcedureReturn  *this
  EndWith
EndProcedure
DataSection
  FONCTIONS:
  Data.i @hello()
  Data.i @bye()
EndDataSection
; l'interface je vais utiliser d'autre noms de fonction
; pour te montrer que le nom importe peux, l'ordre des fonction par contre
; est primordial
Interface Personne ; je peux également peux appeller l'interface comme je le veux
  Bonjour()
  Aurevoir()
EndInterface

; je crée quelques objet

Global.Personne Jean,Pierre,Alain
Jean = newPeople("Jean")
Pierre = newPeople("Pierre")
Alain = newPeople("Alain")

Debug Alain\Bonjour()
Debug Pierre\Bonjour()
Debug Jean\Bonjour()
Debug Alain\Aurevoir()
Debug Pierre\Aurevoir()
Debug Jean\Aurevoir()


_________________
Linux Mint / Windows 10 64 bits PB: 5.61 ; 5.62 beta


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Poo class abstraite
MessagePosté: Mer 20/Déc/2017 8:05 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2024
Localisation: 50200 Coutances
La poo vue sous cet angle est simplissime, merci pour le partage du savoir faire.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Poo class abstraite
MessagePosté: Jeu 21/Déc/2017 9:43 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6567
Localisation: Isere
"Simplicime" n'est pas le premier adjectif qui me vient à l'esprit, mais c'est vrai que ça fait un peu moins peur 8)

Déjà en lisant ton code, je viens d'apprendre ce qu'est un constructeur :D
Car jusque là, à part les voitures, l'immobilier et le "boa" ...je voyais pas :mrgreen:

C'est aussi un peu la faute des créateurs de la poo, si pas mal d'anciens développeurs ont eu du mal à s'y mettre.
Ils ont pris un plaisir fou, à changer tous les noms, afin qu'aucun parallèle ne soit fait avec le has been procédural.
Comme pour linux, tout est nouveau et pas du tout pensé pareil, le départ est une feuille blanche, et un developpeur amnésique

Alors que Fred pour ne citer que mon idole, il a pas eu cette prétention.
Il est au contraire resté au plus près du c, dans le comportement, la philosophie, et du basic.
Ce qui fait que en programmant pb on apprend aussi à programmer c.

Quand j'entendais parler de constructeur, je me disais c'est quoi encore cette merde.
Si on avait dit déclaration j'aurais peut être mieux compris
Alors on peut dire que en pb, les maps et listes ont un constructeur

C'est super gentil de prendre de ton temps, pour nous faire voyager dans ton monde.
Je te remercie mille fois 8)

Mais alors pour wrapper une dll poo, il faut obligatoirement avoir son source pour connaître la structure de ses pointeurs ?

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 26 messages ]  Aller à la page Précédente  1, 2

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye