Hallo,
ich hab' mal wieder ein Problem.
Ich habe einen Code vom Swissdelphicenter verwendet und ein bisschen an meine Umgebung angepaßt. Es sollte damit möglich sein, die Caption eines Labels via Drag & Drop in ein Formularfeld einer Seite zu schieben, die im TWebBrowser aufgerufen wird.
Das Problem: Es geht nicht. Dabei scheint das Problem beim Label zu liegen. Fasse ich den Labeltext nämlich mit dem Mauszeiger an, verwndelt sich dieser in ein Stop-Symbol. Ziehe ich ihn dann über ein Formularfeld, wird daraus ein Formular-Symbol. Ich schließe daraus, daß irgendwas beim Label falsch ist.
Hier der Code:
Delphi-Quellcode:
procedure TForm1.WebBrowser1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var
item: Variant;
begin
//check if document is interactive
if (Webbrowser1.ReadyState and READYSTATE_INTERACTIVE) = 3 then
begin
item := WebBrowser1.OleObject.Document.elementFromPoint(x, y);
if Source is TLabel then
Accept := True;
Accept := (item.tagname = 'INPUT') and ((item.type = 'text') or
(item.type = 'password')) or (item.tagname = 'TEXTAREA');
end;
end;
procedure TForm1.WebBrowser1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
item: Variant;
begin
//check if document is interactive
if (Webbrowser1.ReadyState and READYSTATE_INTERACTIVE) = 3 then
begin
item := WebBrowser1.OleObject.Document.elementFromPoint(x, y);
item.Value := labelHaupttext.Caption;
end;
end;
Bei oncreate habe ich außerdem eingetragen:
labelHaupttext.DragMode := dmAutomatic;
Vielleicht weiß jemand Rat.
Viele Grüße
Holger