COMPOSANT LISTE DE STRINGS AVEC CHAMPS

Utilisateur anonyme - 19 avril 2008 à 13:57
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 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.

https://codes-sources.commentcamarche.net/source/46404-composant-liste-de-strings-avec-champs

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
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")
Utilisateur anonyme
21 avril 2008 à 10:53
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és 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
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és 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
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.

A +
Thierry
Utilisateur anonyme
21 avril 2008 à 10:38
tu as beaucoup de chance :

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 ^^
Utilisateur anonyme
21 avril 2008 à 10:21
@Delphiphi:

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
@++
Delphiphi Messages postés 12 Date d'inscription vendredi 1 décembre 2006 Statut Membre Dernière intervention 25 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és 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
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és 54 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 21 décembre 2009
21 avril 2008 à 07:28
Superbe boulot !

Me servira sans avoir à réinventer la roue !
Par exemple en effet !

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és 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
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 ?

Thierry
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és 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
19 avril 2008 à 14:05
Grand merci à toi, Cirec

Thierry
Utilisateur anonyme
19 avril 2008 à 13:57
Alors moi je dis bravo

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
Rejoignez-nous