Utilisateur anonyme
-
19 avril 2008 à 13:57
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 2014
-
24 avril 2008 à 18:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 24 avril 2008 à 18:48
Arg, je voulais tester ton compo cette semaine mais il n' y aura pas moyen vu que demain est un jour férié au Portugal et que je m' en vais à la plage loin de Delphi et d' Internet! Et comme hier je me devais de corriger mon propre compo ...
D' après les fonctionnalités, ce compo semble très interessant.
Lundi je te donnerai mon avis ^^
A+
PS: tu as vu la source de Kenavo et la mienne sur les sous-chaines? (fait une cherche avec "chouchen")
ha ha ha ... justement je lisais ton premier commentaire et
je me demandais ce que tu avais fumé ... mdr
Mais tu as quand même raison en disant que cette version est plus rapide que la première de mes propositions
Mais en ce qui concerne la deuxième .... heu ... aucune chance ^^
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 21 avril 2008 à 10:48
Salut Cirec,
désolé, je n'avais pas vu ton dernier commentaire avant d'ajouter le mien.
A +
Thierry
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 21 avril 2008 à 10:45
Bonjour Delphiphi et merci.
Pour le problème de PosEx, ceci doit être plus rapide que la fonction trouvée sur le site renseigné par Cirec.
function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
begin
if Offset <= 1 then Result:= Pos(SubStr, S)
else
begin
Result:= Pos(SubStr, Copy(S, Offset, Length(S)));
if Result > 0 then Result:= Result + Offset -1;
end;
end;
En D6, tu auras peut-être aussi un problème avec TFormatSettings. Si c'est le cas, tu peux virer dans MainFrm.pas tout ce qui concerne FS. Cela ne change pas grand chose à la démo.
c'est pas la même que celle de Delphi mais elle fait le même travail (je l'ai pas testé personnellement)
Celle de Delphi est écrite en assembleur et est donc plus rapide en dehors de cela les résultats devraient être les mêmes
@++
Delphiphi
Messages postés12Date d'inscriptionvendredi 1 décembre 2006StatutMembreDernière intervention25 novembre 2008 21 avril 2008 à 10:02
Impressionnant !
Par contre, lorsque j'ouvre le projet, ds l' unit RecList à la fonction CustomRecList.SearchFieldValue, j'ai une erreur sur la ligne
P1:= PosEx(RL_FIELDSEPARATOR, S, P1 + 1);
Ça me donne une erreur Identificateur non déclaré : 'PosEx'.
J'utilise D6 Perso sous W2000 Pro.
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 21 avril 2008 à 09:21
Merci pour ton appréciation, Amiga68.
Et heureux de voir que ce compo puisse t'être utile.
Thierry
amiga68
Messages postés54Date d'inscriptiondimanche 23 février 2003StatutMembreDernière intervention21 décembre 2009 21 avril 2008 à 07:28
Si tu te mets aux champs typés, va falloir sacrément réfléchir car c'est pas si simple que ça en a l'air (je m'en souviens pour avoir essayé il y a un ou deux ans)
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 19 avril 2008 à 17:19
Salut Florent et grand merci à toi.
FiedValue par défaut et OnChange : excellente suggestion, j'ajouterai cela dans une prochaine mise à jour.
Cirec et toi, vous m'avez donné du coeur à l'ouvrage : je travaille déjà sur un compo dérivé avec champs typés...
"je vois déjà à quoi ça pourrait bien te servir..." : à faire un fichier de descriptifs de photos, p.ex ?
Alors là... comme le dit Cirec, je salue le travail.
Utile, très utile même, complet, optimisé et bien présenté, que demander de plus ?
[tu ne serais pas publicitaire par hasard ? ^^]
Juste dire de dire quelque chose: tu pourrais rendre la propriété FieldValue par défaut dans la classe TRecordsList et peut-être ajouter un évènement OnChange pour mettre à jour les composants lors d'un changement (avec un BeginUpdate et un EndUpdate comme TStrings)
Bref, Génial ! Et je vois déjà à quoi ça pourrais bien te servir...
10/10
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 19 avril 2008 à 14:05
24 avril 2008 à 18:48
D' après les fonctionnalités, ce compo semble très interessant.
Lundi je te donnerai mon avis ^^
A+
PS: tu as vu la source de Kenavo et la mienne sur les sous-chaines? (fait une cherche avec "chouchen")
21 avril 2008 à 10:53
je me demandais ce que tu avais fumé ... mdr
Mais tu as quand même raison en disant que cette version est plus rapide que la première de mes propositions
Mais en ce qui concerne la deuxième .... heu ... aucune chance ^^
21 avril 2008 à 10:48
désolé, je n'avais pas vu ton dernier commentaire avant d'ajouter le mien.
A +
Thierry
21 avril 2008 à 10:45
Pour le problème de PosEx, ceci doit être plus rapide que la fonction trouvée sur le site renseigné par Cirec.
function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
begin
if Offset <= 1 then Result:= Pos(SubStr, S)
else
begin
Result:= Pos(SubStr, Copy(S, Offset, Length(S)));
if Result > 0 then Result:= Result + Offset -1;
end;
end;
En D6, tu auras peut-être aussi un problème avec TFormatSettings. Si c'est le cas, tu peux virer dans MainFrm.pas tout ce qui concerne FS. Cela ne change pas grand chose à la démo.
A +
Thierry
21 avril 2008 à 10:38
j'ai trouvé l'implémentation d'origine (qui est la même que celle fournit avec Delphi) de Aleksandr Sharahov:
http://delphi.newswhat.com/geoxml/forumhistorythread?groupname=borland.public.delphi.language.basm&messageid=4241ce68@newsgroups.borland.com
Tu verras il y en a plusieurs (c'est l'avant dernière, qu'il faut prendre) elle est nommé : PosEx_Sha_IA32_4_a
Tu recopies le code et tu renommes la fonction en PosEx et voili voilou tu as la même que nous ^^
pas belle la vie ^^
21 avril 2008 à 10:21
c'est normal PosEx n'est apparue qu'avec D7 mais tu peux trouver une une implémentation ici :
http://www.developpez.net/forums/showthread.php?t=41069&highlight=PosEx
c'est pas la même que celle de Delphi mais elle fait le même travail (je l'ai pas testé personnellement)
Celle de Delphi est écrite en assembleur et est donc plus rapide en dehors de cela les résultats devraient être les mêmes
@++
21 avril 2008 à 10:02
Par contre, lorsque j'ouvre le projet, ds l' unit RecList à la fonction CustomRecList.SearchFieldValue, j'ai une erreur sur la ligne
P1:= PosEx(RL_FIELDSEPARATOR, S, P1 + 1);
Ça me donne une erreur Identificateur non déclaré : 'PosEx'.
J'utilise D6 Perso sous W2000 Pro.
21 avril 2008 à 09:21
Et heureux de voir que ce compo puisse t'être utile.
Thierry
21 avril 2008 à 07:28
Me servira sans avoir à réinventer la roue !
19 avril 2008 à 20:31
Si tu te mets aux champs typés, va falloir sacrément réfléchir car c'est pas si simple que ça en a l'air (je m'en souviens pour avoir essayé il y a un ou deux ans)
19 avril 2008 à 17:19
FiedValue par défaut et OnChange : excellente suggestion, j'ajouterai cela dans une prochaine mise à jour.
Cirec et toi, vous m'avez donné du coeur à l'ouvrage : je travaille déjà sur un compo dérivé avec champs typés...
"je vois déjà à quoi ça pourrait bien te servir..." : à faire un fichier de descriptifs de photos, p.ex ?
Thierry
19 avril 2008 à 16:27
Utile, très utile même, complet, optimisé et bien présenté, que demander de plus ?
[tu ne serais pas publicitaire par hasard ? ^^]
Juste dire de dire quelque chose: tu pourrais rendre la propriété FieldValue par défaut dans la classe TRecordsList et peut-être ajouter un évènement OnChange pour mettre à jour les composants lors d'un changement (avec un BeginUpdate et un EndUpdate comme TStrings)
Bref, Génial ! Et je vois déjà à quoi ça pourrais bien te servir...
10/10
19 avril 2008 à 14:05
Thierry
19 avril 2008 à 13:57
il y a eu beaucoup de travail de fait et une présentation soignée.
très très bien et certainement très utile ^^
10/10