cs_ZZZEvelyne
Messages postés8Date d'inscriptionlundi 8 mars 2004StatutMembreDernière intervention 9 février 2009
-
9 févr. 2009 à 09:28
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
28 août 2009 à 13:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 28 août 2009 à 13:20
ah oui affectivement...
je ne sais vraiment pas ce qui s'est passé..
rien qu'à voir le premier fichier country2.db,j'ai tout de suite vu qu'il n'était pas de moi..
En tout cas meci d'avoir signalé cet incident.
je vais reposter le source.
beckerich
Messages postés302Date d'inscriptionjeudi 29 septembre 2005StatutMembreDernière intervention17 septembre 20132 28 août 2009 à 11:01
Bonjour Cantador,
je viens de télécharger le zip, et les fichiers ne sont apparemment pas ceux du projet !!!
Salutations, Luc.
UNIT Unit1;
INTERFACE
USES
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, DBTables, Grids, DBGrids;
TYPE
TForm1 = CLASS(TForm)
Query1: TQuery;
DataSource1: TDataSource;
Query2: TQuery;
DBGrid2: TDBGrid;
DataSource2: TDataSource;
Query2Name: TStringField;
Query2Capital: TStringField;
Query2Continent: TStringField;
Query2Area: TFloatField;
Query2Population: TFloatField;
DBGrid1: TDBGrid;
Query1Name: TStringField;
Query1Capital: TStringField;
Query1Continent: TStringField;
Query1Area: TFloatField;
Query1Population: TFloatField;
PROCEDURE DBGrid2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; VAR Accept: Boolean);
PROCEDURE FormCreate(Sender: TObject);
PROCEDURE DBGrid2DragDrop(Sender, Source: TObject; X, Y: Integer);
PROCEDURE DBGrid1StartDrag(Sender: TObject;
VAR DragObject: TDragObject);
PROCEDURE DBGrid1CellClick(Column: TColumn);
// procedure DBGrid2DragDrop(Sender, Source: TObject; X, Y: Integer);
PRIVATE
{ Déclarations privées }
PUBLIC
{ Déclarations publiques }
END;
VAR
Form1: TForm1;
DragRecords: ARRAY OF variant;
ASource, DestSource: TDataSource;
IMPLEMENTATION
{$R *.dfm}
PROCEDURE TForm1.DBGrid2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; VAR Accept: Boolean);
BEGIN
Accept := (Source IS TDBGrid) AND (TDBgrid(sender).DataSource <> NIL);
END;
PROCEDURE TForm1.FormCreate(Sender: TObject);
BEGIN
Query1.Open;
Query2.Open;
END;
PROCEDURE TForm1.DBGrid2DragDrop(Sender, Source: TObject; X, Y: Integer);
VAR
I: integer;
BEGIN
DestSource := TDBGrid(sender).DataSource;
IF ASource = DestSource THEN exit;
TRY
TDBGrid(sender).ReadOnly := false;
TDBGrid(sender).DataSource.DataSet.Insert;
FOR I := 0 TO TDBGrid(sender).FieldCount - 1 DO
TDBGrid(sender).Fields[I].Value := DragRecords[I];
TDBGrid(sender).DataSource.DataSet.Post;
FINALLY
TDBGrid(sender).ReadOnly := true;
TDBGrid(sender).DragMode := dmManual;
END;
END;
PROCEDURE TForm1.DBGrid1StartDrag(Sender: TObject;
VAR DragObject: TDragObject);
VAR
I: Integer;
BEGIN
ASource := TDBGrid(sender).DataSource;
SetLength(DragRecords, TDBGrid(sender).FieldCount);
FOR I := 0 TO TDBGrid(sender).FieldCount - 1 DO
DragRecords[I] := TDBGrid(sender).Fields[I].Value;
END;
PROCEDURE TForm1.DBGrid1CellClick(Column: TColumn);
BEGIN
DBGrid1.BeginDrag(true);
END;
END.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 9 févr. 2009 à 11:00
@Lebidouilleur:
Merci pour le compliment..mais le code est simple..
Quant à la fenêtre, j'aime bien surprendre et
encore si je m'écoutais j'aurais fait parchemin !
cs_ZZZEvelyne
Messages postés8Date d'inscriptionlundi 8 mars 2004StatutMembreDernière intervention 9 février 2009 9 févr. 2009 à 10:47
Merci Cantador. J'ai toujours le même message bloquant dans Delphi 7. Je suis sous Vista...
Pour tenter de contourner le problème j'ai ouvert le projet sous Delphi 2009. Et là impec !!! Ca fonctionne....
Je vais donc pouvoir tester.
cs_lebidouilleur
Messages postés6Date d'inscriptionmardi 9 septembre 2008StatutMembreDernière intervention 7 septembre 2009 9 févr. 2009 à 10:24
Ce code est tellement bien fait qu'il m'a permis de réparer une base endommagée, ce que je n'arrivais pas à faire avec des outils comme IBconsole ou IBEasy+.
juste une réserve sur l'esthétique de la fenêtre hexagonale...
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 9 févr. 2009 à 10:19
Bonjour @ZZZEvelyne,
J'ai éliminé un uses du thead correspondant à une unité non intégrée au projet..
Mais sauf erreur de ma part, je ne pense que cela va régler ton souci car je n'utilise pas de composant 'xtrafil'..
Je te précise également que le programme tourne sous XP Sp2 / Delphi 7.
cantador
cs_ZZZEvelyne
Messages postés8Date d'inscriptionlundi 8 mars 2004StatutMembreDernière intervention 9 février 2009 9 févr. 2009 à 09:28
Merci pour cette source qui est sans doute très utile, mais je ne parviens pas à la compiler. Erreur fatale : Paquet requis 'xtrafil' non trouvé. Je ne parviens pas trouver ce fameux paquet. Si quelqu'un peut me dire comment faire ce serait sympa et ça me permettrait de tester la source de cantador.
28 août 2009 à 13:20
je ne sais vraiment pas ce qui s'est passé..
rien qu'à voir le premier fichier country2.db,j'ai tout de suite vu qu'il n'était pas de moi..
En tout cas meci d'avoir signalé cet incident.
je vais reposter le source.
28 août 2009 à 11:01
je viens de télécharger le zip, et les fichiers ne sont apparemment pas ceux du projet !!!
Salutations, Luc.
9 févr. 2009 à 11:00
Merci pour le compliment..mais le code est simple..
Quant à la fenêtre, j'aime bien surprendre et
encore si je m'écoutais j'aurais fait parchemin !
9 févr. 2009 à 10:47
Pour tenter de contourner le problème j'ai ouvert le projet sous Delphi 2009. Et là impec !!! Ca fonctionne....
Je vais donc pouvoir tester.
9 févr. 2009 à 10:24
juste une réserve sur l'esthétique de la fenêtre hexagonale...
9 févr. 2009 à 10:19
J'ai éliminé un uses du thead correspondant à une unité non intégrée au projet..
Mais sauf erreur de ma part, je ne pense que cela va régler ton souci car je n'utilise pas de composant 'xtrafil'..
Je te précise également que le programme tourne sous XP Sp2 / Delphi 7.
cantador
9 févr. 2009 à 09:28
ZZZEvelyne