PDA

Ver la Versión Completa : arrastrar


gianfranco_tont
10-05-2012, 18:09:12
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.

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
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
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:

...
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:

...
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.