begin process at 2013 05 20 04:38:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

Naviguer dans listbox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Naviguer dans listbox

jeudi 27 septembre 2012 à 12:39:25 | Naviguer dans listbox

FanoAndria

Bonjour à tous,
je debute en delphi XE2, avant, j'ai programmé en turbopascal mais cela fait des années que je ne le fait plus, voilà mon problème: j'ai fait un petit programme utilisant un Tlisbox et un TAacroPDF, le but c'est de voir l'apercu d'un fichier pdf, le fichier étant listé dans le listbox.
le problème:
j'ai utilisé OnClick dans listbox et après le click, evidemment, je peut voir le pdf dans Acropdf, seulement, c'est pas réellement ce que je veux avoir, je voulais que tout en naviguant dans listbox (sans sortir) avec les touches flechés haut et bas, je peux visualiser dans acropdf l'aperçu.
est ce que quelqu'un peut me proposer quelque choses pour arriver y arriver ?

Merci
jeudi 27 septembre 2012 à 20:18:38 | Re : Naviguer dans listbox

solilog

Salut,
Je viens de vérifier, que tu te déplaces avec la souris ou au clavier l'evenmt onclick est toujours appelé. Ton prob est sans doute dans la manière dont tu affiches ton tAacroPDF.
Tu dois simplement conserver le focus sur ta liste.
Cordialement
solilog
jeudi 27 septembre 2012 à 20:34:46 | Re : Naviguer dans listbox

cantador

Membre Club Administrateur CodeS-SourceS
Bonsoir,

Code Delphi :
procedure TForm1.ListBox1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  i: integer;
begin
  with ListBox1 do
    for i := 0 to Count - 1 do
      if selected[i] then
        AacroPDF.print;
end;


L'aperçu se déclenche sur déplacement avec les flèches

cantador
vendredi 28 septembre 2012 à 00:15:22 | Re : Naviguer dans listbox

solilog

Bonsoir,
Mmmouais cantador,
pas besoins, le onclick suffit, le clavier le déclenche aussi bien chaque fois (même en gardant le touche down):
proc onclick(...
var name :string;
begin
with listbox1 do
name := items[itemindex];
if name<>'' then // devrait jamais être vide
begin
... AacroPDF.filename := name; // connais pas AacroPDF
... AacroPDF.preview; // ou print, ...
end;
// si changement de fenêtre ou perte de focus
if not self.active then self.activate;
if not listbox1.focused then listbox1.setfocus;
end;

Simplement il ne faut pas que la proc appelée (print, preview, ..., ne pique le focus ni ne change de fenêtre,
dans ce cas les 2 dernières lignes devraient rêgler le prob.

Bonne nuit
solilog
vendredi 28 septembre 2012 à 08:26:37 | Re : Naviguer dans listbox

FanoAndria

Merci les amis pour votre célérité et conseil, je vais essayer et je vous donnerais la suite plus tard

FanoAndria




vendredi 28 septembre 2012 à 10:50:37 | Re : Naviguer dans listbox

FanoAndria

Bjr,
Je reviens encore une fois, je suis désolé les amis mais je n'y arrive pas, je vais donner mes codes et commentaires:

pour charger listbox, pas de problème:
listbox1.items.add(..)

pour les afficher, j'ai fait

procedure Tform1.Listbox1Click(Sender: TObject);
begin
// J'ai utilisé un TopenDialog
OpenDialog1.FileName:=ListBox1.Items.Strings[Listbox1.ItemIndex];
AcroPDF1.LoadFile(OpenDialog1.FileName);
// c'est là que la main change vers TacroPDF;
end;

A partir de là j'ai automatiquement la main sur l'affichage pdf (zoom,print,sauvegarde...)et il faut que je refais un clic sur listbox pour afficher un autre fichier;alors que je voudrais naviguer seulement dans listbox, voir l'apercu et bien sur faire clic sur le pdf pour print ou autre chose
Merci
FanoAndria
vendredi 28 septembre 2012 à 11:56:31 | Re : Naviguer dans listbox

cirec

Membre Club Administrateur CodeS-SourceS
salut,

premièrement ton OpenDialog ne sert à rien ici.
ensuite la propriété Strings est la propriété par défaut
il n'est donc pas utile de le préciser :
ListBox1.Items.Strings[0] == ListBox1.Items[0]
et pour finir, pour forcer le focus sur un composant
il faut utiliser sa méthode SetFocus:
ListBox1.SetFocus ....

ce qui donne:
Code Delphi :
procedure Tform1.Listbox1Click(Sender: TObject);
begin
  with ListBox1 do
  try
    // c'est là que la main change vers TacroPDF;
    AcroPDF1.LoadFile(Items[ItemIndex]);
  finally
    // ici on récupère la main sur ListBox1
    SetFocus;
  end;
end;


j'ai pas testé le code mais ça devrait fonctionner



@+Cirec
vendredi 28 septembre 2012 à 13:51:08 | Re : Naviguer dans listbox

FanoAndria

Merci Cirec,

je suis d'accord pour OpenDialog, je viens de l'enlever, par contre j'ai recopié ton code mais j'ai toujours pas la main sur listbox, il faut re-cliquer.

sinon, en lancant l'executable, je me rend compte qu'après appui sur la touche TAB, je peut revenir sur listbox (ce qui est tout à fait normal avec windows à mon avis); ma question est: comment faire pour simuler cette action dans mon code delphi

Merci
FanoAndria
samedi 29 septembre 2012 à 17:55:54 | Re : Naviguer dans listbox

solilog

Salut tous,
Bon dois-je me répéter ?
Après le loadfromfile qui te fait perdre la main,
tu fais çà:

// si changement de fenêtre ou perte de focus
if not self.active then self.activate;
if not listbox1.focused then listbox1.setfocus;
et tu reviendras sur ta listbox.

Bonne fin de journée.
solilog
dimanche 30 septembre 2012 à 11:04:57 | Re : Naviguer dans listbox

cirec

Membre Club Administrateur CodeS-SourceS
non non il n'est pas utile de répéter
tu l'as dit je l'ai dit ... et il semblerait que ça ne fonctionne pas !!!

Sinon pour simuler la touche Tab :
Code Delphi :
Perform(WM_NEXTDLGCTL, 0, 0);




@+Cirec

1 2

Cette discussion est classée dans : fichier, problème, listbox, voir, naviguer


Répondre à ce message

Sujets en rapport avec ce message

Sauvegarde txt : Nom de fichier par défaut [ par finipe ] Bonjour à tous. Problème tout bête mais je butte : je veux sauvegarder les lignes d'une listbox dans un fichier txt. Là aucun problème je sais faire. URGENT : problème d'installation de composant [ par Henri ] problème d'installationBonjour,Je vous remercie de résoudre le problème suivant :Je voudrais installer un composant téléchargé sans son fichier *.pas Problème de ListBox [ par tof.p ] Bonjour, j'ai un problème que je n'arrive pas à expliquer, je vais essayer d'être clair :J'utilise 2 ListBox, une procédure recherche dans une premièr Fichiers textes occupés [ par padsou ] Bonjour à tous,j'ai un problème avec mes fichiers texte sous delphi. J'ai une procédure qui traite deux fichiers textes, une fois le traitement termin Problème fichier INI [ par TiDaN326 ] Bonjour à tous :)Bon je me sert de la fonction pour créer/lire des fichiers INI... jusque là, tout va bien, mais comment je fait pour créer le fichier scaner un disque [ par norton ] bonjour,je vais essayer d'être claire.Je désirerai scaner un disque (C:\) a la recherche de fichiers ayant une extension .exe.Les fichiers à trouver s Sauvegarde d'une ListBox... [ par mentral ] Bonjour à tous...Voilà, je sais sauver le contenu d'une ListBox dans un fichier texte (ou .ini, peu importe...), mais j'aimerais pouvoir sauver les co Autoscrool sur une listBox [ par billou_13 ] Voila mon petit problème qui ne doit pas en être un gros.J'ai programmé un chat en delphi et pour conserver les messages (c'est a dire la liste de mes Comment importer/voir un fichier 3d studio [ par Armkreuz_Spiderz ] Bonjour, je me demande si il y a une facon simple d'importer un fichier 3d de 3d studio max dans mon application? et si possible aussi permettre la ro Readln fichier unicode [ par glainfam ] Bonjour,voila je voudrais exploiter les lignes d'un fichier texte UNICODE, le problème c'est que delphi plante lors du readln !si je transforme manuel


Nos sponsors


Sondage...

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 3,245 sec (4)

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