begin process at 2008 05 12 14:51:45
1 170 375 membres
265 nouveaux aujourd'hui
13 958 membres club

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 !

COMPOSANT LISTE DE STRINGS AVEC CHAMPS


Information sur la source

Catégorie :Composants Classé sous : liste, StringList, list, data Niveau : Initié Date de création : 19/04/2008 Date de mise à jour : 06/05/2008 10:01:42 Vu / téléchargé: 1 722 / 245

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

Description

TRecordsList est une liste de strings, chaque string comportant une ou plusieurs "sous-chaînes" (champs).
Le composant est dérivé de TList et non pas de TStrings, ce qui permet de stocker dans un seul champ un texte avec retours-chariot.
Exemple : MaListe.Add([Edit1.Text, Memo1.Text]);
La liste peut être triée de façon maintenue sur un ou plusieurs champs.
Fonctions de recherche par clés.
Petite démo jointe et présentation du composant dans un fichier .rtf

Merci d'avance pour vos commentaires.

Thierry

Conclusion

Utilité :
- sauvegarder dans un seul fichier les saisies de données par l'utilisateur du programme.
- simple BD "maison".
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

20 avril 2008 15:29:39 :
20/04/08 : propriété FieldValue déclarée par défaut + correction procedure DoFindkey (pas de problèmes en usage interne, mais bug avec FindKey utilisateur).
20 avril 2008 15:32:07 :
Propriété FieldValue déclarée par défaut. Correction de DoFindKey (pas de problèmes en interne, mais bug avec FindKey utilisateur)
06 mai 2008 10:01:43 :
Ajout function EditField pour faciliter modification d'un record.
  • signaler à un administrateur
    Commentaire de cirec le 19/04/2008 13:57:50 administrateur CS 10/10

    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

  • signaler à un administrateur
    Commentaire de ThWilliam le 19/04/2008 14:05:53

    Grand merci à toi, Cirec

    Thierry

  • signaler à un administrateur
    Commentaire de florenth le 19/04/2008 16:27:14

    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

  • signaler à un administrateur
    Commentaire de ThWilliam le 19/04/2008 17:19:10

    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

  • signaler à un administrateur
    Commentaire de florenth le 19/04/2008 20:31:34 10/10

    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)

  • signaler à un administrateur
    Commentaire de amiga68 le 21/04/2008 07:28:40 10/10

    Superbe boulot !

    Me servira sans avoir à réinventer la roue !

  • signaler à un administrateur
    Commentaire de ThWilliam le 21/04/2008 09:21:57

    Merci pour ton appréciation, Amiga68.
    Et heureux de voir que ce compo puisse t'être utile.

    Thierry

  • signaler à un administrateur
    Commentaire de Delphiphi le 21/04/2008 10:02:22

    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.

  • signaler à un administrateur
    Commentaire de cirec le 21/04/2008 10:21:18 administrateur CS

    @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
    @++

  • signaler à un administrateur
    Commentaire de cirec le 21/04/2008 10:38:09 administrateur CS

    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 ^^

  • signaler à un administrateur
    Commentaire de ThWilliam le 21/04/2008 10:45:41

    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





  • signaler à un administrateur
    Commentaire de ThWilliam le 21/04/2008 10:48:20

    Salut Cirec,
    désolé, je n'avais pas vu ton dernier commentaire avant d'ajouter le mien.
    A +
    Thierry

  • signaler à un administrateur
    Commentaire de cirec le 21/04/2008 10:53:34 administrateur CS

    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 ^^

  • signaler à un administrateur
    Commentaire de MAURICIO le 24/04/2008 18:48:10

    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")

Ajouter un commentaire

Discussions en rapport avec ce code source

Liste par MFC42

List par VB6fr.dll

Changer le nom d'un champ dans une base Paradox par Philippe

Probleme ListView par Shadow

FileListBox par jlg75

Parcourir un répertoire par DarkLago

combobox par cldvax

Liste des Extensions de fichier par Gysmo

Lecteur Mp3 par MAsterC

ecrire des data dans registre par crogger

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Téléchargements

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

Boutique

Boutique de goodies CodeS-SourceS