Hallo,
ich versuche mich gerade ein wenig in der mseIDE zurecht zu finden. Ich habe das Projekt msekicadbom geöffnet und versuche herauszufinden, wie die Menüverbindung von "global settings" funktioniert.
Als "action" ist mainmo.globalsettingsact und bei dem unter "ifilink" steht editglobalsettings. Da ist aber nirgends ein Verweis auf das Formular zu finden, welches sich darauf öffnet.
Um hinter die Funktionalität zu kommen, habe ich mainmodule.pas in Zeile 1083 einen Breakpoint gesetzt und das Programm hält da auch an. Jetzt will ich mir den Stack anschauen und klicke auf View | Stack aber da wird kein Fenster angezeigt.
Ein ähnliches Problem hatte ich schonmal. Da war im "Source|message" Fenster plötzlich nur noch messages zu sehen und ich bekam den Source nicht mehr zu Gesicht.
Gibt es irgendeine Möglichkeit, das ganze Layout zu resetten?
Viele Grüße
Michael
mseIDE Fensterproblem
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1651
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: mseIDE Fensterproblem
Schau mal oben links im Bildschirm, wahrscheinlich hat das Stack Fenster eine gespeicherte Grösse von 0. Ich habe irgendwo eine fehlerhafte default Datei die ich versehentlich als Projektdatei für MSEkicadBOM verwendet habe.Um hinter die Funktionalität zu kommen, habe ich mainmodule.pas in Zeile 1083 einen Breakpoint gesetzt und das Programm hält da auch an. Jetzt will ich mir den Stack anschauen und klicke auf View | Stack aber da wird kein Fenster angezeigt.
MSEkicadBOM habe ich dazu benutzt, um die strikte Trennung von Code und GUI zu demonstrieren, es ginge also auch einfacher.

"editglobalsettings" ist ein "tifiactionendpoint" im Hauptformular. Wenn das Ereignis getriggert wird, wird "onexecute" aufgerufen. Doppelklick auf "editglobalsettingsev" im Objektinspektor zeigt den entsprechenden Handlercode. Es wird ein "tglobalsettingsfo" Formular erstellt.
Bitte berichte, falls du das Problem reproduzieren kannst.Ein ähnliches Problem hatte ich schonmal. Da war im "Source|message" Fenster plötzlich nur noch messages zu sehen und ich bekam den Source nicht mehr zu Gesicht.
Ein Windowlayout kannst du aus einer beliebigen "*.prj" MSEide Projektdatei mit 'View'-'Load Window Layout' Laden.Gibt es irgendeine Möglichkeit, das ganze Layout zu resetten?
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1651
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: mseIDE Fensterproblem
Ah jetzt ja! 
Also kann man von der Menüseite her gar nicht herausfinden, wer alles mit dem tifiactionlinkcomp Objekt verknüpft ist.
Zum testen habe ich im mainfo nochmal eine zusätzliche tifiactionendpoint Komponente platziert und in dem onexecute event "showmessage('test 123');" untergebracht.
Dann erscheint zuerst das Formular "global settings" und danach dann "test 123".
Strikte Trennung von GUI und bussines finde ich gut. Es macht die Sache aber sehr schwer nachvollziehbar.
Das wirkt so ein bißchen wie globale Variablen auf mich. Man dreht hier ein klein wenig an einer Schraube und auf der anderen Seite fällt alles auseinander.
Für was steht eigentlich "ifi" ?
Das Problem mit dem verschwundenen Source Teil in dem Source|Messages Panel kann ich auch nicht mehr nachvollziehen. Das trat nur einmal auf. Mit View | Load Window Layout kam dann auch das Stackfenster wieder zum Vorschein.
Viele Grüße
Michael

Also kann man von der Menüseite her gar nicht herausfinden, wer alles mit dem tifiactionlinkcomp Objekt verknüpft ist.
Zum testen habe ich im mainfo nochmal eine zusätzliche tifiactionendpoint Komponente platziert und in dem onexecute event "showmessage('test 123');" untergebracht.
Dann erscheint zuerst das Formular "global settings" und danach dann "test 123".
Strikte Trennung von GUI und bussines finde ich gut. Es macht die Sache aber sehr schwer nachvollziehbar.
Das wirkt so ein bißchen wie globale Variablen auf mich. Man dreht hier ein klein wenig an einer Schraube und auf der anderen Seite fällt alles auseinander.
Für was steht eigentlich "ifi" ?
Das Problem mit dem verschwundenen Source Teil in dem Source|Messages Panel kann ich auch nicht mehr nachvollziehen. Das trat nur einmal auf. Mit View | Load Window Layout kam dann auch das Stackfenster wieder zum Vorschein.
Viele Grüße
Michael
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: mseIDE Fensterproblem
Korrekt, tifiactionlinkcomp verteilt die Ereignisse an die angeschlossen tifiactionendpoint.fliegermichl hat geschrieben: Also kann man von der Menüseite her gar nicht herausfinden, wer alles mit dem tifiactionlinkcomp Objekt verknüpft ist.
Zum testen habe ich im mainfo nochmal eine zusätzliche tifiactionendpoint Komponente platziert und in dem onexecute event "showmessage('test 123');" untergebracht.
Dann erscheint zuerst das Formular "global settings" und danach dann "test 123".
Ich habe für die ifi-Links und die ifi-Endpoints jeweils die gleichen Komponentennamen verwendet. Eine weitere Möglichkeit ist in den Formulardateien mit der Funktion 'Search-Find in Files' nach dem im Menu eingehängten ifi-Link zu suchen. Doppelklick in Zeile 2 zeigt, dass "mainmo.editglobalsettings" im Objekt "editglobalsettings" von mainfo in die Property "ifilink" gewählt ist. RightClick-'Show as Form' im Editor wechselt wieder zur Formularanzeige. Die Idee der strikten Trennung ist, dass die Steuersoftware von der GUI nichts weiss, das hat natürlich Konsequenzen. Meist ist auch eine weniger strikte Trennung vernünftiger.Strikte Trennung von GUI und bussines finde ich gut. Es macht die Sache aber sehr schwer nachvollziehbar.
Das wirkt so ein bißchen wie globale Variablen auf mich. Man dreht hier ein klein wenig an einer Schraube und auf der anderen Seite fällt alles auseinander.

Da hat keine Bedeutung mehr. Denke dir was aus!Für was steht eigentlich "ifi" ?
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1651
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: mseIDE Fensterproblem
Ich finde das schon gut.
Ich möchte eine Anwendung schreiben, bei der der (geschulte) Anwender oder wer auch immer die Oberfläche selbst gestalten können soll. Da darf der bussines Bereich des Programmes keinerlei Annahmen über die GUI machen.
Mit den ifiactionendpoints hat man den Vorteil, daß ein Ereignis eine ganze Reihe von Reaktionen auslösen kann und das ganze auch recht flexibel.
Man muß es nur halt erstmal verstehen.
Ich werde das msekicadbom Projekt noch etwas weiter untersuchen.
Das ist ein schönes Beispiel für die Verwendung der Datenbankkomponenten und auch der Reportfunktion. (Der konnte ich bislang noch keinerlei Reaktion entlocken
Hat es einen Grund, daß die Daten der Datenbank in dbdata.pas als Konstanten definiert sind?
Ich würde eher eine Liste der Tabellen mit entsprechenden "create table if not exist ..." Konstrukten machen.
Viele Grüße
Michael
Ich möchte eine Anwendung schreiben, bei der der (geschulte) Anwender oder wer auch immer die Oberfläche selbst gestalten können soll. Da darf der bussines Bereich des Programmes keinerlei Annahmen über die GUI machen.
Mit den ifiactionendpoints hat man den Vorteil, daß ein Ereignis eine ganze Reihe von Reaktionen auslösen kann und das ganze auch recht flexibel.
Man muß es nur halt erstmal verstehen.
Ich werde das msekicadbom Projekt noch etwas weiter untersuchen.
Das ist ein schönes Beispiel für die Verwendung der Datenbankkomponenten und auch der Reportfunktion. (Der konnte ich bislang noch keinerlei Reaktion entlocken

Hat es einen Grund, daß die Daten der Datenbank in dbdata.pas als Konstanten definiert sind?
Ich würde eher eine Liste der Tabellen mit entsprechenden "create table if not exist ..." Konstrukten machen.
Viele Grüße
Michael
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: mseIDE Fensterproblem
Die Daten in dbdata.pas wurden mit "gbak -M" erstellt. Das hat den Vorteil, dass MSEkicadBOM die Datenstruktur nicht genau kennen muss. Zudem ist die Struktur recht kompliziert mit Triggern und vielen Foreignkeys. Es wäre gar nicht so einfach, die DB Schritt für Schritt aufzubauen.fliegermichl hat geschrieben: Hat es einen Grund, daß die Daten der Datenbank in dbdata.pas als Konstanten definiert sind?
Ich würde eher eine Liste der Tabellen mit entsprechenden "create table if not exist ..." Konstrukten machen.
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: mseIDE Fensterproblem
Report Beispiele gibt es hier:fliegermichl hat geschrieben: Ich werde das msekicadbom Projekt noch etwas weiter untersuchen.
Das ist ein schönes Beispiel für die Verwendung der Datenbankkomponenten und auch der Reportfunktion. (Der konnte ich bislang noch keinerlei Reaktion entlocken
https://gitlab.com/mseide-msegui/mseuni ... als/report
Weitere Beispiele:
https://gitlab.com/mseide-msegui/mseuni ... er/samples