TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Rund um die LCL und andere Komponenten
charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von charlytango »

Hi,
frisches Lazarus (v13 -- FPV fixes 3.2 und Laz Fixes 2) geholt und per OPM unter anderem auch TVPlanit installiert.
Würde eine Kalenderfunktion für eine Sloteinteilung eines Kursbetriebs brauchen -- ziemlich schnell denn der 19. (Wiederaufnahme des Kursbetriebs unter erschwerten Bedingungen) ist nächsten Mittwoch ;)

Bin für Hinweise auf Kalender-Komponenten dankbar.
Vorgabe: Es gibt einige Terminslots pro Tag, denen jeweils bis zu x Paare zugewiesen werden können/sollen. Klar geht das auch mit Excel, Word und Konsorten, aber es sollte etwas Fehlertoleranter und bequemer sein.

Leider läuft kaum ein TVPlanit-Beispiel - auch nicht die fulldemo.
lässt sich kompilieren, scheint aber beim Starten abzuschmieren -> SIGSEV

Any Ideas?

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von Winni »

Hi!

PlanIt ist ein Monster, dass nicht funktioniert. Ich hab jedenfalls relativ schnell aufgegeben.

Langer Rede kurzer Sinn: Für Lazarus kenne ich nix.
Naürlich könnte man mit nem StringGrid, einem Memo als Editor und einem DateTimePicker (gibt's den noch?) etwas auf die Schnelle zusammenkloppen.

Aber ab von Lazarus: Thunderbird hat schon länger einen Kalender integriert, der funktioniert:

24 h, Tages/Wochen/Monats-Ansicht. Termine erstellen inkl "Teilnehmer einladen", Kategorie, Wiederholung, Erinnern X Minuten vorher usw.

Das hört sich doch danach an, was Du gebrauchen kannst.
Ich kenne jedenfalls Menschen, die damit arbeiten.

Winni

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von sstvmaster »

LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von wp_xyz »

charlytango hat geschrieben:
Sa 15. Mai 2021, 23:19
Leider läuft kaum ein TVPlanit-Beispiel - auch nicht die fulldemo.
lässt sich kompilieren, scheint aber beim Starten abzuschmieren -> SIGSEV
Hab gerade das FullDemo Projekt aktuell getestet: Laz trunk / fpc trunk (32 bit) und Laz trunk / fpc 3.2.0 (64) -- mit beiden läuft es problemlos (Win 10). TvPlanIt ist die Trunk Version aus ccr (aber ich meine, die ist ziemlich identisch mit der OPM-Version). Dein Betriebssystem?

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von charlytango »

wp_xyz hat geschrieben:
So 16. Mai 2021, 01:07
Hab gerade das FullDemo Projekt aktuell getestet: Laz trunk / fpc trunk (32 bit) und Laz trunk / fpc 3.2.0 (64) -- mit beiden läuft es problemlos (Win 10). TvPlanIt ist die Trunk Version aus ccr (aber ich meine, die ist ziemlich identisch mit der OPM-Version). Dein Betriebssystem?
i9-10850, 16GB
Win 10 pro, Version 20H2, Build 19042.985, Windows Feature Experience Pack 120.2212.2020.0

Gestern neues Lazarus geholt. Version 2.0.13 r64984 FPC 3.2.1 i386-win32-win32/win64
TVPlanit 1.4.0.0 aus dem OPM
Lazarus ist mit fpcupdeluxe geholt und in C:\Lazarus\2013_Lfix20_FPCfix32 installiert

gerade nochmal getestet. Fulldemo lässt sich mit "Clean Up and Build" fehlerlos erstellen.
Beim Starten (grüner Pfeil in Lazarus) kommt vor dem ersten Fenster ein SIGSEV.

PS: hab gerade probiert die EXE direkt zu starten, das klappt erstaunlicherweise.
und in Lazarus startet die EXE mit "Run without Debugging"

PPS: ich kenne das Monster TVPlanit noch dunkel aus Turbopower Zeiten und das war damals schon kaum zu verdauen. Jetzt scheinen noch etliche Datastores dazu gekommen zu sein. Die Flex-Variante mit Feldzuordnung scheint mir da noch die sinnvollste zu sein (wenn sich die Felder denn zuordnen lassen).
Aber es muss auch möglich sein meine Anforderungen zu erfüllen.

Hintergrund sind die aktuellen Corona-Vorschriften zur Zugangsbeschränkung und Dokumentation.
  • Es müssen Terminslots definierbar sein (denke das klappt - sind einfach Termine)
  • Diesen Terminen müssen 3 bis 5 Personen/Paare zuzuordnen sein (Das bekomme ich entweder über den Text hin indem man sie einfach reinschreibt oder mit Zuordnung über die Termintabelle)
  • Nur soll das auch so dargestellt werden dass man auf einen Blick pro Tag(ggfs mehrere nebeneinander) und pro Woche sieht wer welchem Slot zugeteilt wurde und als Sahnehäubchen noch ob der Slot noch freie Plätze hat.
Dazu müsste man die Art der Anzeige der Termine modifizieren -- zumindest dass der Text mit angezeigt wird, denn den könnte ich ja evtl von außen ändern. Denkst du dass das mit überschaubarem Aufwand möglich ist?
Ich denke da an vielleicht ein Panel neben dem Kalender in dem die Zuordnungen pro Termin aus der Kurs-Datenbank her gemacht werden und der daraus generierte Text in die Events-Tabelle eingetragen wird

Wie siehst du die Chancen? Vielleicht auch Hinweise? ;)

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von wp_xyz »

charlytango hat geschrieben:
So 16. Mai 2021, 09:48
wp_xyz hat geschrieben:
So 16. Mai 2021, 01:07
TvPlanIt ist die Trunk Version aus ccr (aber ich meine, die ist ziemlich identisch mit der OPM-Version).
Dein TVPlanit-Version 1.4 stammt aus dem Jan 2019, aber seitdem wurden nur wenige Änderungen im SVN committet. Da du das Problem im FullDemo hast und dieses den TBufDataset verwendet und du mit FPC-Fixes arbeitest, könnte evtl r7911 interessant sein: "Fix crash of TBufDSDataStore with FPC 3.2+". Am besten holst du dir die aktuelle TVPlanIt-Version vom CCR (Download snapshot von https://sourceforge.net/p/lazarus-ccr/s ... /tvplanit/, das zip entpacken, im Package-Editor laz_visualplanit.lpk kompilieren und laz_visualplanit_design.lpk installieren und, falls du ZEOS verwendest, dasselbe sinngemäß mit laz_visualplanit_zeos.lpk und laz_visualplanit_zeos_design.lpk). Oder du patchst die Datei vpbufds.pas (im source-Ordner der TVPlanIt-Installation): procedure TVpBufDSDatastore.CreateTable suchen. Gegen Ende der Prozedur gibt es ein "table.Close". Den nachfolgenden Code, bis zum "end;" austauschen gegen:

Code: Alles auswählen

  if FPersistent then
    table.FileName := dir + ATableName + TABLE_EXT;
  if ((not FPersistent) or (not FileExists(table.FileName))) and (table.FieldDefs.Count = 0) then
  begin
     CreateFieldDefs(ATableName, table.FieldDefs);
     if FUseAutoInc then
       table.FieldDefs[0].DataType := ftAutoInc;
     table.IndexDefs.Clear;
     table.IndexDefs.Update;
     CreateIndexDefs(ATableName, table.IndexDefs);
     table.CreateDataset;
  end else
    table.Open;
charlytango hat geschrieben:
So 16. Mai 2021, 09:48
PS: hab gerade probiert die EXE direkt zu starten, das klappt erstaunlicherweise.
und in Lazarus startet die EXE mit "Run without Debugging"
Welchen Debugger verwendest du? Ich nehme den GDB, der bei Laz 2.0.12 mitkommt - ich weiß nicht, welchen Debugger dir FPCUpDeluxe zur Verfügung stellt. Gut ist auch der FPDebug - durchsuche das Forum nach Beiträgen von Martin_fr, er hat hier mal beschrieben, wie der zu benutzen ist.

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von charlytango »

wp_xyz hat geschrieben:
So 16. Mai 2021, 10:31
Welchen Debugger verwendest du? Ich nehme den GDB, der bei Laz 2.0.12 mitkommt - ich weiß nicht, welchen Debugger dir FPCUpDeluxe zur Verfügung stellt. Gut ist auch der FPDebug - durchsuche das Forum nach Beiträgen von Martin_fr, er hat hier mal beschrieben, wie der zu benutzen ist.
Debugger .. puhhh... steht auf Automatic(-g)
Angeboten wird noch
Dwarf with sets
Dwarf2
Stabs
Dwarf3(beta)

Input hab ich erstmal genug - mal sehen ob ich das alles gebacken bekomme -- falls du Input zur Anzeige von Terminen hast würde ich die gern lesen ;)
jetzt lese ich mal die late TVPlanit Doku von Turbopower durch und dann stelle ich mich an den Griller -- THX

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von wp_xyz »

charlytango hat geschrieben:
So 16. Mai 2021, 11:15
jetzt lese ich mal die late TVPlanit Doku von Turbopower durch
TVPlanIt ist nicht mehr kompatibel zur Delphi-Version. Ich weiß nicht, was in der Original-TurboPower-Doc davon betroffen ist (wahrscheinlich nicht viel). Für unser wiki habe ich aber einmal ein Tutorial plus einfache Dokumentation geschrieben: https://wiki.freepascal.org/Turbopower_Visual_PlanIt

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von charlytango »

wp_xyz hat geschrieben:
So 16. Mai 2021, 10:31
Hab etwas rum geforscht...

Wenn ich das richtig verstanden habe dann wird in vpdayview.pas bei TVpDayView.BuildEventString der String zur Anzeige des Events zusammengebaut.
Die gleiche Funktion wird auch zur Erstellung des Hint-Textes verwendet.
Im Hint werden die Notes durchaus angezeigt.

Ob Details angezeigt werden wird entschieden, wenn in grp.ShowDetails odEventDescription vorkommt.
Es gibt sogar im demoMain.pas in Zeile 475 eine Stelle in der man offensichtlich grm.ShowDetails beeinflussen kann. Aber das lässt den Kalender kalt.

Denn die die AEvent.Notes nur bei der Verwendung als Hint berücksichtigt.

Im Else-Zweig bei { Usage as cell text } kommen die AEvent.Notes gar nicht vor.

... mein Grill wartet... bin gesopannt was passiert wenn ich dort mal was reinschreibe ggg

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von wp_xyz »

Langsam, langsam. Solange das FullDemo mit Debugger abstürzt, brauchst du gar nicht anzufangen. Funktioniert das jetzt?

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von charlytango »

ja, es funktioniert. Nachdem ich aber absolut nichts an den Einstellungen geändert habe weiß ich nicht warum es klappt.
Ich mag sowas ungemein ... grrrr

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von charlytango »

wp_xyz hat geschrieben:
So 16. Mai 2021, 13:44
Langsam, langsam.
Habs mal ausprobiert und erstaunlicherweise (für mich) hab ich die richtige Stelle gefunden und es scheint zu klappen.
Ich weiß natürlich dass das ein Quickhack ist und recht dirty. Aber damit könnte ich leben. :)

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von charlytango »

wp_xyz hat geschrieben:
So 16. Mai 2021, 11:46
TVPlanIt ist nicht mehr kompatibel zur Delphi-Version. Ich weiß nicht, was in der Original-TurboPower-Doc davon betroffen ist (wahrscheinlich nicht viel). Für unser wiki habe ich aber einmal ein Tutorial plus einfache Dokumentation geschrieben: https://wiki.freepascal.org/Turbopower_Visual_PlanIt
Gibt es eine Möglichkeit heraus zu bekommen welches Event gerade angeklickt oder markiert wurde?
Ich möchte ohne groß etwas zu verändern die "freien" Felder verwenden um Tabellen dazu zu hängen -- als von "außen" in den Record reinschreiben. Dazu müsste ich aber zuerst wissen um welchen record (RecordID) es sich gerade handelt?

Scheinbar wird das irgendwie gecached... grübel

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von wp_xyz »

charlytango hat geschrieben:
Mo 17. Mai 2021, 20:49
Gibt es eine Möglichkeit heraus zu bekommen welches Event gerade angeklickt oder markiert wurde?
Bei TVpDayView und TVpWeekView heißt gerade angewählte Event ActiveEvent.
charlytango hat geschrieben:
Mo 17. Mai 2021, 20:49
Scheinbar wird das irgendwie gecached... grübel
Ist schon lange her...

Die zentrale Daten-Struktur in TvPlanIt ist der DataStore, da gibt es ein listenähnliche Klasse Resources mit den einzelnen "Resourcen" (Mitarbeiter, Räume, Geräte). Die aktuell angezeigte Resource ist das Element Resource (TVpResource) des DataStore. Eine Resource, wiederum, enthält die Liste der Events (Schedule: TVpSchedule), die Kontaktliste (Contacts: TVpContacts) und die Taskliste (Tasks: TVpTasks). In TVpSchedule kommt man über GetEvent(index) an das Event (TVpEvent) mit dem angegebenen Index. TVpEvent, schließlich, speichert alle betreffenden Parameter in internen Feldern (RecordID, StartTime, EndTime, Description, Title, etc). Der eingangs erwähnte DataStore holt sich bei Bedarf die Daten aus der angeschlossenen Datenbank (oder Datei) und schreibt sie in die Felder der Events (analog natürlich mit den Kontakten und Tasks); umgekehrt werden im GUI geänderte Parameter der Events, Contacts, Tasks durch den Datastore wieder in die Datenbank zurückgeschrieben.

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: TVPlanit mit Lazarus v2.0.11 v2.0.12 v2.0.13

Beitrag von charlytango »

Danke sehr -- ich werde meinen Trüffelhund (natürlich Sourcedog) auf diese Spur setzen ;)

Antworten