|
Dernière réponse | |
---|---|
Sujet : [Delphi] Identifier le déclencheur d'une fonction :) | |
[SDF]Poire | Tu me tiendra au courant de ta note ;) :hello: |
Aperçu |
---|
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 |
|
VisualC++ | :heink: |
Tetedeiench |
|
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 ! ) |