Drag & Drop aus 2 verschiedenen DBGrids

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Bernie110
Beiträge: 140
Registriert: Mo 10. Feb 2020, 17:43

Drag & Drop aus 2 verschiedenen DBGrids

Beitrag von Bernie110 »

Hallo Zusammen,

ich möchte aus 2 verschiedenen DBGrids Daten in ein anderes DBGrid "schieben"
von DBGrid3 in DBGrid2 ( siehe ug. Beispiel Code )
von DBGrid4 in DBGrid2 ( ein anderer Code )

Jeweils benötige ich einen anderen Code.
Hab im Netz schon vergeblich gesucht wie man das Unterscheiden könnte.
Ich möchte nicht allen DBGrids die Möglichkeit geben Daten in DBGrid2 zu schieben.
Nur diesen Beiden. (DBGrid3/DBGrid4)

Momentan sieht mein Code so aus

Code: Alles auswählen

procedure Tfrm_STAMM_LTW.DBGrid2DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
   if (LTW_ID.text <> '') then
   begin
      Accept := Source = DBGrid3;
   end;
end;  

Code: Alles auswählen


procedure Tfrm_STAMM_LTW.DBGrid2DragDrop(Sender, Source: TObject; X, Y: Integer
  );
begin
 // AUS DBGRID3_________________________________________________________________DRAG DROP VON DBGRID3

   if LTW_ID.text <> '' then
     begin
        frm_Hauptmenu.SQLQuery2.close;
        frm_Hauptmenu.SQLQuery2.SQL.Clear;
        frm_Hauptmenu.SQLQuery2.SQL.Add('UPDATE STAMM_LTW_DISPO_TBL SET LTW_DISPO_LTW_ID = '''+LTW_ID.text+''' where LTW_DISPO_ID = '''+dbgrid3.DataSource.DataSet.FieldbyName('LTW_DISPO_ID').asString+'''; ');
        Frm_Hauptmenu.SQLQuery2.ExecSQL;
        frm_Hauptmenu.SQLTransaction2.Commit;


        //FILTER GRID 3
                if BIS_PLZ.text <> '' then
                  begin
                       //procedure
                       GRID_3_UFO_Filter_plz_auswahl;

                  end else
                  begin
                      //procedure
                      GRID_3_UFO_Filter_plz_auswahl_einzel;
                  end;

        //FILTER GRID 2
        if BIS_PLZ1.text <> '' then
          begin
               //procedure
               GRID_2_UFO_Filter_plz_auswahl;

          end else
          begin
              //procedure
              GRID_2_UFO_Filter_plz_auswahl_einzel;
          end;

 end; // End aus DBGRID3

end; 
Wie kann man den Sender bestimmen ?
habs so versucht:
Accept := Source = DBGrid3;
Accept := Source = DBGrid4;
und Ereignis DragDrop

If Source = DBGrid3 then
....
end;
If Source = DBGrid4 then
....
end;

Ging natürlich nicht :mrgreen:

Herzlichen Dank für eure Antworten.
Lg Bernie

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Drag & Drop aus 2 verschiedenen DBGrids

Beitrag von pluto »

Code: Alles auswählen

Accept := (Source = DBGrid3) or (Source = DBGrid4);
ich würde es so versuchen.
MFG
Michael Springwald

Bernie110
Beiträge: 140
Registriert: Mo 10. Feb 2020, 17:43

Re: Drag & Drop aus 2 verschiedenen DBGrids

Beitrag von Bernie110 »

Hi Pluto, danke!! Genau so meinte ich das. funktioniert prima. Lg Bernie

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Drag & Drop aus 2 verschiedenen DBGrids

Beitrag von pluto »

Es gebe da auch noch diese Möglichkeit:

Code: Alles auswählen

Accept := Source = DBGrid3;
if not Accept then
  Accept := Source = DBGrid4;
Die ist etwas länger, macht aber im Prinzip das gleiche.
MFG
Michael Springwald

Antworten