IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

probleme procedure ListBox


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bionicleman
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Par défaut probleme procedure ListBox
    Bonjour a tous,

    j'ai un enorme probleme avec une ListBox...
    Je voudrais récupérer les applications en cours sur Windows j'ai un tutorial sur ca
    mais le probleme c'est que Delphi m'indique une erreure sur une ListBox, voyez mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    [...]type
      TForm3 = class(TForm)
        ListBox1: TListBox;
        Label1: TLabel;
        procedure ListBox1Click(Sender: TObject);//l'erreure est ici d'apres delphi
        procedure FormActivate(Sender: TObject);
        procedure ListBox1DblClick(Sender: TObject);
        [...]
        function UpString(Str: string): string;
    var i: integer;
    begin
      result:='';
      for i:=1 to length(str) do
        result:=result+UpCase(str[i]);
    end;
    function GetProcessId(ProgName:string):cardinal;
    var  Snaph:thandle;
         Proc:tprocessentry32;
         PId:cardinal;
    begin
      PId:=0;
      Proc.dwSize:=sizeof(Proc);
      Snaph:=createtoolhelp32snapshot(TH32CS_SNAPALL,0);
      process32first(Snaph,Proc);
      if UpString(extractfilename(Proc.szExeFile))=UpString(ProgName) then
         PId:=Proc.th32ProcessID
      else
        begin
          while process32next(Snaph,Proc) do
            begin
               if extractfilename(Proc.szExeFile)=ProgName then
                  PId:=Proc.th32ProcessID;
            end;
       end;
      Closehandle(Snaph);
      result:=PId;
    end;
    function GetProcessList():TStringList;
    var  Snaph:thandle;
         Proc:tprocessentry32;
         PList:TStringList;
    begin
      PList:= TStringList.Create();
      PList.Clear;
      Proc.dwSize:=sizeof(Proc);
      Snaph:=createtoolhelp32snapshot(TH32CS_SNAPALL,0);
      process32first(Snaph,Proc);
      PList.Add(extractfilename(proc.szExeFile));
      while process32next(Snaph,Proc) do
          PList.Add(extractfilename(Proc.szExeFile));
      result:=PList;
      Closehandle(Snaph);
    end;
    
    procedure TForm3.FormActivate(Sender: TObject);
    var TSL : TStringList;
    begin
      Listbox1.Clear;
      TSL := GetProcessList;
      Try Listbox1.Items.Assign(TSL);
      Finally
        TSL.Free;
      end;
    end ;
    
    procedure TForm3.ListBox1DblClick(Sender: TObject);
    var  Proch:thandle;
         PId:cardinal;
    begin
        PId:=GetProcessId(Listbox1.items[Listbox1.itemindex]);
        Proch:=openprocess(PROCESS_ALL_ACCESS ,true,PId);
        if not terminateprocess(Proch,PId) then
            showmessage('Impossible d''arrete '+Listbox1.items[Listbox1.itemindex])
        else
        begin
          Listbox1.Clear;
          Listbox1.Items:=GetProcessList();
        end;
        Closehandle(Proch);
    end;
    Merci de votre aide

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Par défaut
    Et pas de message particulier ?

  3. #3
    rbh
    rbh est déconnecté
    Membre chevronné Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Par défaut
    Salut
    C'est vrai qu'avec le message ce serait plus facile.
    Par contre, si tu as mis tout le code de ton unité à part ce qui est contenu dans le "[...]" au début de ton code, il manque l'implémentation de cette procédure.
    Si tu ne veux rien faire au click sur la listbox, tu peux supprimer cette ligne. Sinon il faut que tu écrives l'implémentation de cette fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Procedure TForm3.ListBox1Click(Sender: TObject);
    begin
    ...
    end;

  4. #4
    Membre confirmé Avatar de bionicleman
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Par défaut
    Merci de vos reponses ;
    si il y a un message particulier :
    "Déclaration forward ou external non satisfaite: 'TFrom3.ListBox1Click'"
    PS : désolé je commence le delphi

  5. #5
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Salut
    Citation Envoyé par bionicleman
    si il y a un message particulier :
    "Déclaration forward ou external non satisfaite: 'TFrom3.ListBox1Click'"
    Logique !
    Tu déclares la procedure ListBox1Click dans l'interface de ta form, mais la procédure est absente de l'implémentation (apparemment)
    En supprimant la déclaration de l'interface, ça devrait régler le pb

    Bonne prog

  6. #6
    Membre confirmé Avatar de bionicleman
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Par défaut
    héhé j'ai déjà esseyé
    Ca marche sauf que après je ne vois pas les applications que doit écrire dans laListBox du programme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme dans listbox
    Par sanfour_walhan dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 24/12/2006, 18h18
  2. [VB.NET]probleme avec listbox.selectedvalue
    Par elastoplas dans le forum ASP.NET
    Réponses: 9
    Dernier message: 07/11/2006, 14h13
  3. [Pl/SQL]Probleme Procedure stockee[/Pl/SQL]
    Par rafounette dans le forum Oracle
    Réponses: 4
    Dernier message: 14/06/2006, 12h56
  4. probleme procedure stockée avec Mysql
    Par emna_bz dans le forum Installation
    Réponses: 2
    Dernier message: 01/02/2006, 16h26
  5. [interbase6]probleme procedure stockee
    Par macadam314 dans le forum InterBase
    Réponses: 6
    Dernier message: 13/02/2005, 12h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo