Composant boite de saisie avec memorisation historique de saisie

Résolu
benalioua1975 Messages postés 93 Date d'inscription samedi 31 décembre 2005 Statut Membre Dernière intervention 26 juin 2013 - 14 janv. 2007 à 14:22
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 15 janv. 2007 à 20:03
bjr les
j'ai un ptt probleme , existe t-il un editeur comme edit ou dbedit qui garde l'historique comme
l'editeur ds le navigateur WEB

4 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 34
14 janv. 2007 à 20:20
Meme pas besoin de fichiers INI!

tu prend une ComboBox, si on entre du contenus on ajoute la ligne a la combobox et on sauve le tout dans un fichier texte simple.
La ComboBox fonctionne exactement comme une barre d'addresse et se positionne automatiquement sur une donnée qui est identique a la saisie.
La propriété ReadOnly doit etre a False et la propriété AutoComplete doit etre a True.

Ouverture de l'appli :

procedure TForm1.FormCreate(Sender: TObject);
begin
   CbxHistoryFile := ExtractFilePath(ParamStr(0))+'Temp\UrlHistory.hst');
   if FileExists(CbxHistoryFile) then begin
     ComboBox.Items.LoadFromFile(CbxHistoryFile);
     ComboBox.ItemIndex := -1;
   end;
   ComboBox.Text := '';
end;

Fermeture de l'appli :

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   ComboBox.Items.SaveToFile(CbxHistoryFile);

end;

Saisie d'une nouvelle entrée puis "Entrer" ou "GoButton" :

procedure TForm1.AddHistory;
var Idx : integer;

begin
    idx : = ComboBox1.Items.IndexOf(ComboBox.Text);
    if (Idx  = -1) and (ComboBox1.Text <> EmptyStr) then
      ComboBox1.ItemIndex := ComboBox1.Items.Add(ComboBox1.Text);

end;

procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin

   if Key = #13 then AddHistory;

end;


procedure TForm1.GoButtonClick(Sender: TObject);

begin

   AddHistory;

end;

Suppression de l'historique :

procedure TForm1.ClearHistory;
begin
    ComboBox1.Items.Clear;
    ComboBox.Items.SaveToFile(CbxHistoryFile);

end;

<hr size ="2" width="100%" />Croc (click me)
benalioua1975 Messages postés 93 Date d'inscription samedi 31 décembre 2005 Statut Membre Dernière intervention 26 juin 2013
15 janv. 2007 à 09:41
merci beaucoup

ta solution marche a merveille
Utilisateur anonyme
14 janv. 2007 à 15:25
Salut,

La meilleure solution est de créer un fichier Ini qui contient les URL que tu as visité. Au démarrage de l'appli si le fichier en question existe, tu le charges dans une listbox. Tu en as pou 10 lignes de codes

Un tuto sur les fichiers ini : ICI
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 34
15 janv. 2007 à 20:03
de rien, en fait, j'avais deja fait un petit navigateur web qui utilisé ce principe d'historique, on peu bien sur carrement ameliorer le truc en ajoutant un parametre de temps de l'historique avec effacement des url trop vieille.

<hr size="2" width="100%" />Croc (click me)
Rejoignez-nous