Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.
I have the following pointer problem: The shape was created dynamically, and was accessable through a pointer pointing to the object in a componentlist.
procedure Tfrm_tyd.OnMouseDownEvent(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var ManyShape: TManyShape; //pointer: Integer; begin if (Sender is TManyShape) then begin pointer := ComponentList1.IndexOf(ManyShape); ManyShape:= TManyShape(ComponentList1[pointer]); ManyShape.BeginDrag(True); end else begin BeginDrag(False); ShowMessage('False'); end;
/////////////////////////////////////////////////////////// //Asblik else if ((X > 416 + 120) and (X < 416 + 120+ 30)) and ((Y > 144) and (Y < 144 + 120)) then begin //ManyShape.Destroy; end
The problem is that the valua of the pointer in the next procedure does not correspond to the value of the pointer in the OnMouseDown event. I suspect it has something to do with dereferencing, something I worked with many years ago briefly. Can anyone help? Am I on the right track? I basically want to destroy the object with the FormDragDrop event by dropping it in a 'recycle bin area' (top, left, width, height) on the canvas.