*DELPHI* Lire une ListView avec le Handle, probleme, aidez moi svp - Programmation
Marsh Posté le 26-05-2002 à 16:38:32
T'as au moins la unit CommCtrl dans les "uses" ?
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)
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
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