Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   arrastrar (https://www.clubdelphi.com/foros/showthread.php?t=78703)

gianfranco_tont 10-05-2012 18:09:12

arrastrar y soltar de un dbgrid a otro dbgrid
 
hola compañero he revisado todos los drag drop y todos los arrastre que hay en el foro y realmente no consigo nada, lo que quiero hacer y no se como ni si se puede es que dentro de form tengo un dbedit.text y en al piez del from tengo varios spedbuton que abren otros formularios, emplo anular, imprimir, y pagar. dentro de cada uno de ellos tengo un dbgrid. ahora bien. yo quisiera arrastrar el DBEDIT.TEXT hasta el boton y llenar con la informacion que se requiere el grid, (ejemplo arrastrar el dbedit.text que continene el numero de la factura hasta el boton de anular y convertir esta factura en nota de credito) tambien pudiera hacerlo con el dbgrid de la factura arratrarlo al spedbuton y alimentar otro dbgrid que esta en otro form.)

Casimiro Notevi 10-05-2012 18:20:11

Por favor, recuerda poner títulos descriptivos a tus preguntas, "arrastrar" es poco descriptivo :)

ecfisa 11-05-2012 19:29:47

Hola.
Cita:

al piez del from tengo varios spedbuton que abren otros formularios, emplo anular, imprimir, y pagar. dentro de cada uno de ellos tengo un dbgrid. ahora bien. yo quisiera arrastrar el DBEDIT.TEXT hasta el boton y llenar con la informacion que se requiere el grid
Con un TSpeedButton lo veo complicado... no tiene implementado los eventos de Drag&Drop. Si se puede hacer sin mayores problemas si en su lugar utilizas un TBitBtn por ejemplo.

Saludos.

gianfranco_tont 11-05-2012 23:48:34

Cita:

Empezado por ecfisa (Mensaje 432439)
Hola.

Con un TSpeedButton lo veo complicado... no tiene implementado los eventos de Drag&Drop. Si se puede hacer sin mayores problemas si en su lugar utilizas un TBitBtn por ejemplo.

Saludos.

tienes algun codigo de ejemplo como hacerlo de verdad que no tengo ni idea de donde comenzar.

ecfisa 13-05-2012 08:32:50

Cita:

Empezado por gianfranco_tont (Mensaje 432463)
tienes algun codigo de ejemplo como hacerlo de verdad que no tengo ni idea de donde comenzar.

Hola.

No tengo nada hecho pero te hice un ejemplo rápido y muy simple como para que te oriente. Usa dos TForm un TDBEdit y un TBitBtn:

Form1:
Código Delphi [-]
...
uses Unit2; 

procedure TForm1.DBEdit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  TDBEdit(Sender).BeginDrag(False);
end;

procedure TForm1.BitBtn1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept:= Source is TDBEdit;
end;

procedure TForm1.BitBtn1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  with TForm2.Create(Self) do
  try
    ValorCampo:= TDBEdit(Source).Field.AsString;
    ShowModal;
  finally
    Free;
  end;
end;
...

Form2:
Código Delphi [-]
...
var
  Form2: TForm2;
  ValorCampo: string;

implementation  {$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  DataSet2.Open;
end;

procedure TForm2.FormShow(Sender: TObject);
begin
  DataSet2.Locate('NUMERO_FACTURA', ValorCampo, []);
  {
   Aquí ya estas posicionado en el registro deseado,
   podés hacer lo que quieras con los campos de él
  }
end;
...
En el ejemplo supuse dos TDataSet, pero podría ser el mismo, eso depende de como desees implementarlo.

Saludos.

gianfranco_tont 15-05-2012 20:31:56

excelente, de verdad usted son grandes. Ahora el unico problema que tengo es que al moverlo hasta el bitbutoon me aperece una imagen de un circulo con una linea en el centro. la idea que se mueva y muestre el dbedit1 por todo el recorrido.


La franja horaria es GMT +2. Ahora son las 13:02:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi