Announcement

Collapse
No announcement yet.

Drag and Drop Probleme

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Drag and Drop Probleme

    Hi,

    ich versuche die BeginDrag Methode zu implementieren um andere MouseEvents abfangen zu können siehe folgende Quelltext:





    TImage* FUPImage;


    <snip>

    void __fastcall TMDIChild::PaintBox1DragOver(TObject *Sender, TObject *Source,
    int X, int Y, TDragState State, bool &Accept)
    {
    /*Only Accept Events from Class with Name TTreevie and TImage*/
    Accept = Source->ClassNameIs("TTreeView") | Source->ClassNameIs("TImage");


    }

    <snip>

    void __fastcall TMDIChild::PaintBox1DragDrop(TObject *Sender, TObject *Source,
    int X, int Y)
    {


    if ((Sender == PaintBox1 && Source == MainForm->TreeView1)&&
    (MainForm->TreeView1->Selected->Level == 1))
    {


    stcFupEntry* pk = new stcFupEntry;
    pk->asFUName = MainForm->TreeView1->Selected->Text;


    if ( pk->asFUName.AnsiCompare("In\0")== 0)
    {
    FUPImage = new TImage(this);
    FUPImage->Parent = this;
    FUPImage->DragKind = dkDrag;
    FUPImage->DragMode = dmAutomatic;
    FUPImage->DragCursor = crDrag;
    FUPImage->BeginDrag(false, 10);

    FUPImage->Enabled = true;
    FUPImage->Visible = true;
    FUPImage->Center = false;
    FUPImage->Stretch = false;


    pk->ui16FUType = LOG_INPUT;
    pk->i16XposFupEntry = X;
    pk->i16YposFupEntry = Y;
    pk->i16FupEntryWidth = 45;
    pk->i16FupEntryHeight = 20;
    pk->ui16xPosOf1Out = X-10;
    pk->ui16yPosOf1Out = Y-10;
    }
    else return;
    }
    drawFUPImage(Canvas, pk, FUPImage);

    }
    <snip>

    else if (Sender == PaintBox1 )
    {

    if (Sender != PaintBox1) // stelle dies gans am anfang deiner routine
    return;


    TImage *HelpImage = dynamic_cast<TImage*>(Source);

    if ( HelpImage )
    {
    HelpImage->Top = Y;
    HelpImage->Left = X-10;

    }

    }

    }



    auf diese Weise bekomme ich nach dem ablegen des FUPImage und anschließendem Bewegen der Mouse einen Laufzeitfehler in vcl100.bpl. Warum? Wenn ich FUPImage->BeginDrag (false, 10); auskommentiere funktioniert es wunderbar allerdings kann ich dann andere Mouseaktionen nicht abfangen.

    Kann mir jemand auf die Sprünge helfen ?

    Grüße

    Sascha
    Zuletzt editiert von Mr_Luke; 06.10.2008, 11:49. Reason: kleinere Fehler imCode

  • #2
    Hab mein Problem gelöst, den Laufzwitfehler verstehe ich trotzdem nicht..

    Danke für die Mühe.

    Gruß

    Sascha

    Comment

    Working...
    X