Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Kalender? (https://www.delphipraxis.net/148543-kalender.html)

Sanguis 4. Mär 2010 19:41

Re: Kalender?
 
Hallo,

ich versteh die Logik nicht... aber ich bastel mal nachher weiter, vielen Dank, für die Hilfe :)

Gruß,
Andreas

wicht 4. Mär 2010 19:56

Re: Kalender?
 
Naja. Damit kann man quasi mehrere Rückgabewerte ermöglichen.
Weil wenn du zum Beispiel bei X und Y Mist eingibst, quasi etwas, was es nicht gibt, was soll dann der Rückgabewert der Funktion sein (wenn keine Exceptions benutzt werden)? Das Ergebnis kann nur eine Zahl sein, und jede Zahl repräsentiert irgendein Datum. Da würde sich schwer unterscheiden lassen, ob die Funktion ein Ergebnis gebracht hat oder nicht.
Und das var-Schlüsselwort sagt eben vereinfacht gehalten, dass die Funktion, die aufgerufen wird, diese Variable verändern kann und sich diese Änderungen auch auf die aufrufende Funktion auswirken, die mit den Werten weiter arbeiten kann.

Sanguis 4. Mär 2010 22:14

Re: Kalender?
 
Jetzt hab ich was gan queer. Ich versuche folgenden Code:

Delphi-Quellcode:
if (Source is TLabel) then begin
    kalender.Caption := TLabel(Source).Caption;

    if PlannerCalendar1.DateAtXY(4, 5, d) then
    ShowMessage(PlannerCalendar1.DatesAsText(d));
Aber es geht nicht, ich bekomme die Fehlermeldung "Operator oder Semikolon fehlt"...Normalerweise ist es dann ne einfache Kleinigkeit. Aber ich finde einfach nix....

Sanguis 4. Mär 2010 23:05

Re: Kalender?
 
hmmm... wenn ich bei DateAsText den Parameter weglasse, compiliert er ordentlich. Allerdings kommt die MessageBox nicht... also bekomm ich auch nix übergeben..

DeddyH 5. Mär 2010 06:48

Re: Kalender?
 
Wie sieht es so aus?
Delphi-Quellcode:
if (Source is TLabel) then begin
    kalender.Caption := TLabel(Source).Caption;

    if PlannerCalendar1.DateAtXY(4, 5, d) then
      ShowMessage(DateToStr(d));
end;

Bebe 5. Mär 2010 07:22

Re: Kalender?
 
Guten Morgen,

hilfreich wäre es, wenn du uns nächstens sagst in welche Zeile der Fehler auftratt. Er meckert über die Zeile
Delphi-Quellcode:
ShowMessage(PlannerCalendar1.DatesAsText(d));
Delphi-Quellcode:
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.
Delphi-Quellcode:
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

Sanguis 5. Mär 2010 15:35

Re: Kalender?
 
Hallo,

vielen Dank! So funktioniert es. Danke Matze, du bist mene Rettung! Ich konnte schon nicht gut schlafen deshalb *g*

Nu muss ich nur noch rausfinden, wieso der Planner keine Captions anzeigt, obwohl die Events das Property haben.

Gruß,
Andy

Sanguis 8. Mär 2010 01:07

Re: Kalender?
 
Hallo,

ich finde das mit den Captions einfach nicht raus. Hat jemand ne Idee?

Gruß und gute Nacht,
Andreas

Bebe 8. Mär 2010 05:16

Re: Kalender?
 
Guten Morgen,

die Events vom TMSPlannerCalender haben keine Caption, nur die Hints zum anzeigen von Texten.

Gruß
Matze

Sanguis 8. Mär 2010 21:34

Re: Kalender?
 
Hallo,

ich kann den Events aber eine Caption geben.

Zur Not, gehen Hints auch mehrzeilig? /n funzt leider nicht als EscapeCharakter.

Gruß,
Andy


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz