Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - TMS TDBPlaner das verschieben eines Items bestätigen
Kostas - Di 22.02.11 13:06
Titel: TMS TDBPlaner das verschieben eines Items bestätigen
Hallo Zusammen,
ich verwende den TDBPlaner von TMS-Software.
Wenn ich ein Item mit der Maus auf eine andere Resource oder innerhalb der Timeline verschiebe, soll
über ein Dialog das Verschieben vom User bestätigt werden. Es könnte ja ein Versehen sein.
Der Event DBPlaner.OnItemMove wird nach dem Move gefeuert, doch wie kann ich die Änderung rückgängig machen.
Es gibt keine Methode z.B.: Item.CancelChanges oder so ähnlich.
Hat jemand eine Idee?
Gruß Kostas
DonManfred - Di 22.02.11 13:48
Delphi-Quelltext
1: 2:
| procedure TForm5.DBPlanner1ItemMove(Sender: TObject; Item: TPlannerItem; FromBegin, FromEnd, FromPos, ToBegin, ToEnd, ToPos: Integer); |
Du hast doch alles, was du brauchst... Bei einem NEIN in der Abfrage schiebst du das Item wieder auf
Delphi-Quelltext
1:
| FromBegin, FromEnd, FromPos |
zurück.
Kostas - Di 22.02.11 16:13
DonManfred hat folgendes geschrieben : |
Du hast doch alles, was du brauchst... Bei einem NEIN in der Abfrage schiebst du das Item wieder auf zurück. |
Hallo DonManfred,
ja genau das ist es. Es war vor meiner Nase und habs nicht gesehen.
In onItemMoving gibt es ein var Allow: Boolean nach dem habe ich gesuch nicht weiter gelesen.
Delphi-Quelltext
1: 2: 3:
| procedure TfrKalender.DBPlanner1ItemMoving(Sender: TObject; Item: TPlannerItem; DeltaBegin, DeltaPos: Integer; var Allow: Boolean); begin |
Tausend Dank DonManfred.
DonManfred - Di 22.02.11 16:55
Mit dem Event OnItemMoving geht´s natürlich auch (sogar einfacher weil du da das allow einfach auf False setzen kannst).
Aber Du sprachst ja vom ItemMove und meine Antwort bezog sich explizit darauf.
Freut mich, das ich helfen konnte
Kostas - Di 22.02.11 16:57
DonManfred hat folgendes geschrieben : |
Mit dem Event OnItemMoving geht´s natürlich auch (sogar einfacher weil du da das allow einfach auf False setzen kannst).
Aber Du sprachst ja vom ItemMove und meine Antwort bezog sich explizit darauf. |
nein das geht nicht, da dieses Event vor dem Bewegen gefeuert wird. Ich kann damit verhindern das ein User ein Item verschibt.
DonManfred - Di 22.02.11 17:06
Ja, eben. Du kannst verhindern das der User es "aus versehen" verschiebt.
Wenn Du aber erst NACH dem verschieben eingreifen willst (prüfen, ob "Zielzeiten erlaubt" o.ä.) dann ist die von dir gewählte Variante (OnItemMoving) besser. aber auch dafür hast Du ja nun eine Lösung wie Du das Item wieder an die alte Stelle bekommst wenn es nötig ist... ;)
Kostas - Di 22.02.11 17:15
DonManfred hat folgendes geschrieben : |
Ja, eben. Du kannst verhindern das der User es "aus versehen" verschiebt.
Wenn Du aber erst NACH dem verschieben eingreifen willst (prüfen, ob "Zielzeiten erlaubt" o.ä.) dann ist die von dir gewählte Variante (OnItemMoving) besser. aber auch dafür hast Du ja nun eine Lösung wie Du das Item wieder an die alte Stelle bekommst wenn es nötig ist... ;) |
Grundsätzlich ist das Verschieben von Items erlaubt.
Der User soll nur eine Sicherheitsfrage bestätigen die als Dialog hoch kommt.
Wenn ich diesen Dialog am Anfang bringe, wird das verschieben beendet bzw. verhindert durch den modalen Dialog.
Der user klick auf ja, und muss mit dem Verschieben neu anfangen, was zur Folge hat das er schon wieder gefragt wird. :-)
Ich bin zwar manchmal gemein aber so gemein dann doch nicht.
Gruß Kostas
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!