Guten Morgen,
hilfreich wäre es, wenn du uns nächstens sagst in welche Zeile der Fehler auftratt. Er meckert über die Zeile
ShowMessage(PlannerCalendar1.DatesAsText(d));
property DatesAsText: string read GetDatesAsText; //Returns the selected days as text
Hier wird kein Parameter übergeben (d), sondern gelesen. Du wirst höchstwahsrcheinlich nicht das richtige Ergebnis bekommen, da du das Datum erst selektieren mußt (bei Drag n Drop wird nichts selektiert, ausser du machst es selber)
War das Copy and Paste? Ich frage nur, weil du das Beispiel vom wicht mehr oder weniger übernommen hast.
if PlannerCalendar1.DateAtXY(4, 5, d) then
Die Werte 4 und 5 waren nur Beispiele, du mußt natürlich die Cursorposition ermitteln, wo zum Zeitpunkt des Drop's der Cursor auf dem Kalender steht und dann der Funktion übergeben.
Mit dem Rückgabewert (Boolean) wird nur übermittelt, ob du in der Kalenderkomponente überhaupt ein Datum getroffen hast. Wenn kein Datum getroffen wird, sollte der Vorgang abgebrochen werden.
Da das Event DragDrop die Position liefert, brauchst du nur die beiden Werte an die Funktion DateAtXY übergeben .
So z. B.
Delphi-Quellcode:
procedure TForm3.PlannerCalendar1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
d: TDatetime;
begin
if (Source is TLabel) then
begin
begin
if PlannerCalendar1.DateAtXY(x, y, d) then
begin
with PlannerCalendar1.Events.Add do
begin
Date := d;
Hint := TLabel(Source).Caption;
Color := clBlue;
Shape := evsTriangle;
end;
end;
end;
end;
end;
Gruß
Matze