[Delphi] Identifier le déclencheur d'une fonction :)

Identifier le déclencheur d'une fonction :) [Delphi] - Programmation

Marsh Posté le 08-01-2002 à 09:21:10    

Hello !
 
J'ai besoin d'identifier l'évenement déclencheur d'une fonction... je m'explique.
 
j'ai une table des clients.
 
Pour ajouter un client, j'appelle la procedure ajouterclient a partir d'un bouton.
 
pour modifier un client quand l'utilisateur 2xclic dessus, je mets tous les champs a la bonne valeur dans la fenetre d'ajout de client, et j'apelle la procedure ajouterclient ...
 
Enfin j'aimerai bien.
 
pour ca, j'aurai besoin d'identifier si le déclencheur est mon bouton ou le 2xclic, afin de faire les petites différences entre les 2 ( Table.modify au lieu de Table.append, le titre de la fenetre, etc).
 
Pouvez me dire comment ca se fait ? (jamais réussi :( jamais compris non plus)
 
PS : je sais je demande beaucoup, mais bon big projet a rendre pour Lundi (on viens de l'apprendre today ca la date butoir :sweat:), et le prof a dit avoir passé 50h a faire la correction (pas mal... imaginez nous, on en est a 24 heures dessus, spaassez ! )


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-01-2002 à 09:21:10   

Reply

Marsh Posté le 08-01-2002 à 09:36:16    

dans tous les événements tu as un paramètre Sender qui te permet de trouver quel composant a déclanché l'event.  
if sender is TButton then
...
else
if sender is TListBox then
...;


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

Marsh Posté le 08-01-2002 à 10:46:24    

Oky marchi ;)
 
Vé appliquer ca...
 
Sinon on a encore un probleme avec une DBgrid.
 
Quand on met la propriété "Dragmode" sur "dmAutomatic" , pour sélectionner une ligne précise (autre que la première) l'utilisateur doit faire un click droit...
 
En gros, pour faire un drag and drop de la ligne n°3, il doit faire un click droit pour mettre le focus sur la troisième ligne (le gauche ne met pas le focus :/ ) , puis seulement faire son drag & drop ...
 
T'as une idée du probleme ?


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-01-2002 à 12:16:21    

c'est le DBGrid qui ne prend pas le focus ou la ligne ?
tu peux tj essayer de tricher en donnant le focus à la ligne lors du mousedown


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

Marsh Posté le 08-01-2002 à 15:56:32    

C la ligne qui le prends pas...
 
Et lors du mousedown, comment tu veux faire pour mettre le focus, en fait surtout idenntifier l'élément sur lequel on doit le mettre (en fait la ligne plus exactement) :??:


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-01-2002 à 17:02:31    

Alors encore des chtits pb ? :D  
Pour ton histoire de focus peut pas vraiment t'aider (G pas de projet qui utilise une BD) sauf si tu m'envois un chtit projet de démo pour voire ce que je peux faire...
(T sur que le click gauche donne pas le focus ? ça m'étonne...)
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 08-01-2002 à 17:03:56    

avec les paramètres X et Y du mousedown...
sinon je sais pas vraiment t'aider plus, je sais pas comment réagissent les cellules de ce dbgrid
 
edit: ha mais voilà du renfort :)

 

[edtdd]--Message édité par antp--[/edtdd]


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

Marsh Posté le 08-01-2002 à 17:30:56    

En fait, C tout con a décrire.
 
Créé une DBgrid, relie la a une table lambda avec une paire d'enregistrement pour qu'elle affiche quelque chose.
 
Mets l'option "DragMode" sur "dmAutomatic"
 
Maintenant, lance l'appli.
 
Tu vois els enregistrement pépère, et a coté du premier, y a une fleche noire, montrant la ligne sélectionnée.
 
Fais un click gauche sur n'importe quelle autre ligne : la fleche ne bouge pas => Pour le programme, c'est toujours la première ligne qui est sélectionnée.
 
Fais un click droit => La fleche bouge. La pour le programme C la ligne sur la quelle tu as clické droit qui est sélectionnée.
 
Or, nous, pour le drag and drop, on a besoin que l'élément sur lequel le gars fait son click gauche pour le drag soit l'élément pointé par la fleche : comme le click gauche la bouge pas ben... les boules kwoa :/
 
Et quand tu mets la propriété 'dragmode" sur "dmManual", le click gauche bouge la fleche noire...

 

[edtdd]--Message édité par Tetedeiench--[/edtdd]


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-01-2002 à 17:34:44    

Franchement Iench ... tu me decois :ange:


---------------
VT ... Vaucluse / Vrille(euse :sarcastic: ) c'est pareil tant qu'il y a l'humour :D
Reply

Marsh Posté le 08-01-2002 à 17:37:32    

VisualC++ a écrit a écrit :

Franchement Iench ... tu me decois :ange:  




 
va mourire chacal :na:


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-01-2002 à 17:37:32   

Reply

Marsh Posté le 08-01-2002 à 17:38:00    

:heink:


---------------
VT ... Vaucluse / Vrille(euse :sarcastic: ) c'est pareil tant qu'il y a l'humour :D
Reply

Marsh Posté le 08-01-2002 à 17:39:28    

Tetedeiench a écrit a écrit :

En fait, C tout con a décrire.
 
Créé une DBgrid, relie la a une table lambda avec une paire d'enregistrement pour qu'elle affiche quelque chose.
 
Mets l'option "DragMode" sur "dmAutomatic"
 
Maintenant, lance l'appli.
 
Tu vois els enregistrement pépère, et a coté du premier, y a une fleche noire, montrant la ligne sélectionnée.
 
Fais un click gauche sur n'importe quelle autre ligne : la fleche ne bouge pas => Pour le programme, c'est toujours la première ligne qui est sélectionnée.
 
Fais un click droit => La fleche bouge. La pour le programme C la ligne sur la quelle tu as clické droit qui est sélectionnée.
 
Or, nous, pour le drag and drop, on a besoin que l'élément sur lequel le gars fait son click gauche pour le drag soit l'élément pointé par la fleche : comme le click gauche la bouge pas ben... les boules kwoa :/
 
Et quand tu mets la propriété 'dragmode" sur "dmManual", le click gauche bouge la fleche noire...  
 
 




Tu connais la feignatise ???
C pas que G pas compris ou que je sais pas utiliser un DBGrid C juste que ça me fait chier de faire un mini projet test et une BD pour faire des test  :D  
Mais bon vais voir....
(sinon mon mail C : gti-poire@wanadoo.fr)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 08-01-2002 à 17:47:50    

Et ça risque d'être long.... beh oui G pas que ça à faire non + ;)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 08-01-2002 à 17:55:32    

SDF[poire] > J'ai fait un exemple : http://perso.wanadoo.fr/tetedeiench/Exemple.zip
 
Tu pompes le fichier, et tu décompresse dans C:\Program Files\Borland\Delphi6\Projects\Demo
 
Enfin il faut que les bases soient la bas... A moins que tu ne change leur propriété "database name".
 
Essaie de faire un drag & drop de la DBgrid de droite vers celle de gauche, tu verra.
 
Puis fais la meme chopse, avec un click droit avant sur le champ que tu drag & droppe...


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-01-2002 à 18:31:54    

Bon ok en effet ça merde.....
Laisse DragMode à dmManual et quand tu veux faire un drag tu appels BeginDrag du composant source  
Tu le place par exemple dans le OnMouseMove.... (je te prépare 1 chtit exemple)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 08-01-2002 à 18:51:31    

Merci pour l'exemple, car on a pas reussi a le faire nous :(


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-01-2002 à 18:51:54    

et prends ton temps : on s'y remets pas avant demain midi !


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-01-2002 à 19:01:56    

unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, DBGrids, Db, DBTables;
 
type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    Edit1: TEdit;
    DataSource1: TDataSource;
    Table1: TTable;
    procedure DBGrid1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Edit1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure Edit1DragDrop(Sender, Source: TObject; X, Y: Integer);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.DFM}
 
procedure TForm1.DBGrid1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := True;
end;
 
procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ssLeft in Shift then
    DBGrid1.BeginDrag(True, -1);
end;
 
procedure TForm1.Edit1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := True; // pas necessaire ici c'etais pour le test d'avant  ;)  
end;
 
procedure TForm1.Edit1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  Edit1.Text := TDBGrid(Source).Fields[TDBGrid(Source).SelectedIndex].AsString;
end;
 
end.
 
Si tu veux tout le projet file ton Mail
 :hello:

 

[edtdd]--Message édité par [SDF]Poire--[/edtdd]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 08-01-2002 à 19:02:48    

Au fait C quoi le projet ?


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 08-01-2002 à 19:07:15    

Un truc infame : Faire une appli qui gère entièrement un club de plongée, a savoir :
 
Clients , Lieux de plongée, bateau, Matos loué, Inscriptions, Facturation, réglements...
 
Avec une table des clients comprenant 35 enregistrements (bien lourd ! )
 
Et la facturation via OLE, du drag & drop a gogo, la gestion des bateaux libres ou non, des groupes de plongée, des niveaux des plongeurs, initiateur ou non, la location de matos, tout ce qui est possible d'imaginer d'ailleurs ...
 
Tu vois le bordel ?
 
Pasla peine pour le mail, ca  me suffit AMPLEMENT, merci bcp ! :hello:

 

[edtdd]--Message édité par Tetedeiench--[/edtdd]


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-01-2002 à 19:24:57    

Tu fais quoi comme études ?
(ça ressemble à une application de ce que je fais en GL SGBD, MLD, et autre.....)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 08-01-2002 à 19:32:38    

Je suis en IUP Miage, 2ème année (en gros Licence miage).
 
le prof nous balance ca a faire apres 2 mois de cours uniquement théoriques sur Delphi...
 
je te raconte pas la galère :(
 
Enfin, on arrive au quart la... apres 20 heures de boulot.
 
le prof l'a fini en 50 heures : tu vois la somme de boulot :eek:  
 
Enfin merci de ton aide !
 
La base C obligé de passer par ODBC...


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-01-2002 à 19:46:43    

:D


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 08-01-2002 à 21:47:30    

Tu me tiendra au courant de ta note  ;)  
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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