begin process at 2012 02 11 03:05:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > TEXTE AU SURVOL DE L'ITEM D'UNE LISTBOX

TEXTE AU SURVOL DE L'ITEM D'UNE LISTBOX


 Description

Cliquez pour voir la capture en taille normale
Ce petit code (que je qualifirais plus d'astuce) permet de faire apparaitre un texte au survol d'un item grace à l'évènement OnMouseMove et à une Stringlist.
Chaque item à son texte biensure... Ca peut être utile pour faire un ASV au survol pour un chat par exemple...

Source

  • unit Unit1;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, StdCtrls, ExtCtrls, Buttons;
  • type
  • TForm1 = class(TForm)
  • Panel1: TPanel;
  • ListBox1: TListBox;
  • SpeedButton1: TSpeedButton;
  • Panel2: TPanel;
  • Edit1: TEdit;
  • Edit2: TEdit;
  • Panel3: TPanel;
  • Label1: TLabel;
  • procedure FormCreate(Sender: TObject);
  • procedure SpeedButton1Click(Sender: TObject);
  • procedure ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  • Y: Integer);
  • procedure FormClose(Sender: TObject; var Action: TCloseAction);
  • private
  • { Private declarations }
  • public
  • { Public declarations }
  • end;
  • var
  • Form1: TForm1;
  • com:Tstringlist;
  • implementation
  • {$R *.dfm}
  • procedure TForm1.FormCreate(Sender: TObject);
  • begin
  • com:=TStringlist.Create;// Création de la stringlist contenant les commentaires
  • end;
  • procedure TForm1.SpeedButton1Click(Sender: TObject);
  • begin
  • listbox1.Items.Add(Edit1.Text);//On ajoute le texte qui va apparaitre
  • com.Add(edit2.Text);//Et le commentaire qui lui correspond
  • end;
  • procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  • Y: Integer);
  • var
  • i:integer;
  • begin
  • i:=Y div Listbox1.ItemHeight;// I:= La position du curseur en Hauteur divisé par la hauteur d'un item
  • //Donc i= le numéro de l'item survolé.
  • if i>listbox1.Count-1 then begin
  • Panel3.hide;
  • exit //Pour ne pas créer d'erreur si i ne correspond à aucun item
  • end else begin //Si c bon alors on positionne le panel
  • Panel3.Left:=x-20;
  • Panel3.Top:=y-10;
  • Panel3.Caption:=' '+com.Strings[i]+' ';// LE texte du panel sera le commentaire correspondant à l'item
  • Label1.Caption:=ListBox1.Items[i]+' : '+com.Strings[i];
  • Panel3.Show;
  • end end;
  • procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  • begin
  • com.Free;
  • end;
  • end.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    ListBox1: TListBox;
    SpeedButton1: TSpeedButton;
    Panel2: TPanel;
    Edit1: TEdit;
    Edit2: TEdit;
    Panel3: TPanel;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  com:Tstringlist;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
com:=TStringlist.Create;// Création de la stringlist contenant les commentaires

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
listbox1.Items.Add(Edit1.Text);//On ajoute le texte qui va apparaitre
com.Add(edit2.Text);//Et le commentaire qui lui correspond
end;

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  var
  i:integer;
 begin
i:=Y div Listbox1.ItemHeight;// I:= La position du curseur en Hauteur divisé par la hauteur d'un item
//Donc i= le numéro de l'item survolé.

if i>listbox1.Count-1 then begin
Panel3.hide;
 exit         //Pour ne pas créer d'erreur si i ne correspond à aucun item
end else begin //Si c bon alors on positionne le panel
Panel3.Left:=x-20;
Panel3.Top:=y-10;
Panel3.Caption:=' '+com.Strings[i]+' ';// LE texte du panel sera le commentaire correspondant à l'item
Label1.Caption:=ListBox1.Items[i]+' : '+com.Strings[i];
Panel3.Show;
end end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
com.Free;
end;

end.



 Sources du même auteur

Source avec Zip Source avec une capture TRAITEMEMENT DES URL DANS UN TEXTE SIMPLEMENT
Source avec Zip Source avec une capture MULTI-PASS
Source avec Zip Source avec une capture TGENPASS : COMPOSANT GÉNÉRATEUR DE MOT DE PASSE
Source avec Zip Source avec une capture SIMULATION DE LANCEMENT D'UN DÉ (AVEC THREADS)
Source avec Zip AUTORUN BASE DE REGISTRE

 Sources de la même categorie

Source avec Zip DICTIONNAIRE WORD DANS UN RICHEDIT par H60
Source avec Zip TRIER DU GREC DANS UNE APPLI EN CODE LOCAL FRANÇAIS. par fricot
Source avec Zip Source avec une capture INTÉGRATION DE PAGE HTML DANS LES RESSOURCES D'UNE DLL par christophe75018
FONCTION DE CONVERSION DE MILLISECONDES EN HH:MM:SS:MMM par vyseR
Source avec Zip Source avec une capture UTILISER UNE DLL INCLUSE EN RESSOURCES par Bacterius

Commentaires et avis

Commentaire de DelphiCool le 12/10/2003 08:13:57 administrateur CS

J'aprécie la débrouille ;-D

Commentaire de Don0Choa le 12/10/2003 15:12:16

bah de toute façon je pense pas qu'il y est 36 manières de le faire ...
mais y doit bien y en avoir une plus propre :]

++

Commentaire de Ryuu le 30/12/2004 10:45:11

Merci ça sert toujours !

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,711 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales