*DELPHI* Lire une ListView avec le Handle, probleme, aidez moi svp

*DELPHI* Lire une ListView avec le Handle, probleme, aidez moi svp - Programmation

Marsh Posté le 26-05-2002 à 16:22:39    

Je voudrai recuperer le text d'une case d'une listview à partir de son handle, je dois m'y prendre mal, le handle est correctement recuperé, mais, quand je compille, il  me dit que ListView_GetItemText n'est pas declaré, aidez moi svp, voici tt mon code :)
 
//Debut du code
procedure TForm1.Button1Click(Sender: TObject);
var h1,h2,hHandle,ServerBhandle,ListTable1server:hwnd;
Buffer : array[0..99] of Char;
begin
// Recuperation du handle de la fiche
hHandle:= FindWindow(nil, 'Titre de l'application';);
  If hHandle<>0 then
   begin
//On enregistre le Handle du list BOX
 
{ICI JE RECUPERE LE HANDLE DE LA LISTVIEW}
//Etape intermediaire
h1:=    FindWindowEx(
    hHandle, // handle to parent window
    0, // handle to a child window
    '#53453', // pointer to class name
    nil // pointer to window name
   );
h2:=    FindWindowEx(
    h1, // handle to parent window
    0, // handle to a child window
    '#53453', // pointer to class name
    nil // pointer to window name
   );
 
//**** HANDLE DE LA PAGE SERVER ****
ServerBhandle:=    FindWindowEx(
    h2, // handle to parent window
    0, // handle to a child window
    '#53453, // pointer to class name
    'Server' // pointer to window name
   );
 
{HANDLE DE LA LIST VIEW RECUPERER ICI}
ListTable1server:=    FindWindowEx(
    ServerBhandle, // handle to parent window
    0, // handle to a child window
    'SysListView32', // pointer to class name
    nil // pointer to window name
   );
 
{Je recupere le text}
ListView_GetItemText(      // PARTI KI NE SEMBLE PAS MARCHER
    ListTable1server,      // PARTI KI NE SEMBLE PAS MARCHER
    1,                     // PARTI KI NE SEMBLE PAS MARCHER
    0,                     // PARTI KI NE SEMBLE PAS MARCHER
    Buffer,                // PARTI KI NE SEMBLE PAS MARCHER
    100                    // PARTI KI NE SEMBLE PAS MARCHER
   );                      // PARTI KI NE SEMBLE PAS MARCHER
form1.Caption:= string(Buffer);
   end;
end;
//Fin du code

Reply

Marsh Posté le 26-05-2002 à 16:22:39   

Reply

Marsh Posté le 26-05-2002 à 16:38:32    

T'as au moins la unit CommCtrl dans les "uses" ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-05-2002 à 17:42:36    

J'ai rajouté ca ya pas long
javou ke javai oublier, mai on ma di de mettre ca sur un otre forum...
 
Ca compille, tt ce passe bien maintenant, mais, je n'arrive pas a recuperer le text dans le buffer, soit le logiciel  plante (celui ou je li linfo), soit ca ne plante pas et ca renvoye des infos bizarre
genre "eé3é42'(é'...."
Jai essayer de convertie avec Pchar, j'obtien dautre caractere bizarre :/
 
Alors si tu as un truc a me cosneillie :)
 
Merchi:)
 
(Desolé pour l'orthographe, j'ai ecris comme une fusée)

Reply

Marsh Posté le 26-05-2002 à 17:46:55    

Tu dois donner un pointeur vers une chaîne, je suis pas sûr qu'un array de char ce soit pareil (enfin ça l'est peut-être).
 
buffer: PChar;
chaine: string;
 
avant le listgettext :
 
GetMem(buffer, 100);
 
après :
 
SetString(chaine, buffer, StrLen(buffer));
FreeMem(buffer);
 
Si ça ne marche pas c'est que l'erreur est ailleurs je pense :/


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed