Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2795 connectés 

 


Dernière réponse
Sujet : [Delphi] Identifier le déclencheur d'une fonction :)
[SDF]Poire Tu me tiendra au courant de ta note  ;)  
 :hello:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
[SDF]Poire Tu me tiendra au courant de ta note  ;)  
 :hello:
[SDF]Poire :D
Tetedeiench 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...
[SDF]Poire Tu fais quoi comme études ?
(ça ressemble à une application de ce que je fais en GL SGBD, MLD, et autre.....)
Tetedeiench 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]

[SDF]Poire Au fait C quoi le projet ?
[SDF]Poire 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]

Tetedeiench et prends ton temps : on s'y remets pas avant demain midi !
Tetedeiench Merci pour l'exemple, car on a pas reussi a le faire nous :(
[SDF]Poire 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)
Tetedeiench 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...
[SDF]Poire Et ça risque d'être long.... beh oui G pas que ça à faire non + ;)
[SDF]Poire

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)

VisualC++ :heink:
Tetedeiench

VisualC++ a écrit a écrit :

Franchement Iench ... tu me decois :ange:  




 
va mourire chacal :na:

VisualC++ Franchement Iench ... tu me decois :ange:
Tetedeiench 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]

antp 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]

[SDF]Poire 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:
Tetedeiench 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) :??:
antp 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
Tetedeiench 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 ?
antp 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
...;
Tetedeiench 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 ! )

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR