Hallo,
ich verwende folgenden Code um ein Bitmap von einem Image in ein anderes mittels DrapDrop zu verschieben:
Delphi-Quellcode:
procedure TSymboleForm.Image_DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
S : String;
i : Integer;
Taste_Sender: String;
Taste_Source: String;
begin
If Sender is TImage then
begin
//kommt das Drag vom TImage?
If Source is TImage then
begin
//ausgewähltes Bild vom sendenden Image laden
TImage(Sender).Picture.Assign(TImage(Source).Picture);
//Bild im sendenden Image löschen
TImage(Source).Picture.Bitmap := nil;
//Variablen beschreiben
Taste_Sender := Imagenamen_aendern(TImage(Sender).Name);
Taste_Source := Imagenamen_aendern(TImage(Source).Name);
with FEinAusgabe_StringList_Tasten do
begin
//Index der Taste auslesen
i := IndexOfName(Taste_Source);
//Taste in Liste vorhanden?
If i > -1 then
begin
//Dateinamen aus Liste lesen
S := ValueFromIndex[i];
//Eintrag löschen
Delete(i);
end;
end;
end;
end;
end;
procedure TSymboleForm.Image_DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
//Drag akzeptieren wenn es von TShellListView oder TImage kommt
//Wenn Sender und Source das gleiche Image sind (Bild wird wieder zurück-
//bewegt, dann Accept = false
Accept := (Source is TShellListView) or ((Source is TImage) and
not (Sender = Source));
end;
Ich hab festgestellt, dass immer DragDrop aktiv ist, auch wenn ein Image
kein Bild enthält.
Wie kann ich das Abfragen ob in einem TImage kein Bild drin ist und damit
das DragDrop deaktivieren kann?
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<