LAZ 3.0 FPC 3.2.2 .lfm öffnet in Codeansicht [Fixed]

Für Fragen rund um die Ide und zum Debugger
Antworten
Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

LAZ 3.0 FPC 3.2.2 .lfm öffnet in Codeansicht [Fixed]

Beitrag von six1 »

Hi,
ich habe unter Linux mal die neue LAZ 3.0 FPC 3.2.2 mit fpcupdeluxe installiert.
Soweit alles ok.

Nun öffnen sich aber einige Fensteransichten als Codeansicht ohne irgendwelche Fehlerangaben! Mit der vorherigen Version 2.0.12 klappt alles.

Hat dazu jemand eine Idee?
Zuletzt geändert von six1 am Sa 2. Mär 2024, 09:55, insgesamt 4-mal geändert.
Gruß, Michael

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 338
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1

Re: LAZ 3.0 FPC 3.2.2 .lfm öffnet im Editor

Beitrag von Niesi »

six1 hat geschrieben:
Sa 17. Feb 2024, 12:33


Nun öffnen sich aber einige Fensteransichten als Codeansicht ohne irgendwelche Fehlerangaben! Mit der vorherigen Version 2.0.12 klappt alles.

Hat dazu jemand eine Idee?
Wie meinst Du das? Was für Fensteransichten? Ein Screenshot könnte helfen ...

(Auch ich habe u. a. diese Kombination unter Linux Mint installiert, aber ohne Probleme.)
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: LAZ 3.0 FPC 3.2.2 .lfm öffnet im Editor

Beitrag von six1 »

Naja, die lfm (Formdatei) wird als Code in einem Editorfenster angezeigt und nicht im Designfenster...
Screenshot 2024-02-17 174625.png
Screenshot 2024-02-17 174625.png (56.49 KiB) 4868 mal betrachtet
Das Projekt wird übrigens einwandfrei kompiliert!
Gruß, Michael

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 338
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1

Re: LAZ 3.0 FPC 3.2.2 .lfm öffnet im Editor

Beitrag von Niesi »

Also ich habe da überhaupt kein Problem mit, bei mir funktioniert das alles wie es soll. Meistens arbeite ich mit Fpc 3.3.1 / Laz 3.0. Wie geschrieben: Linux Mint.

Mein Sohn hat Manjaro und stable / stable, da gibt es auch keine Probleme.

Sorry, keine Ahnung, was da bei Dir schief läuft ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

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

Re: LAZ 3.0 FPC 3.2.2 .lfm öffnet in Codeansicht

Beitrag von wp_xyz »

six1 hat geschrieben:
Sa 17. Feb 2024, 12:33
Nun öffnen sich aber einige Fensteransichten als Codeansicht ohne irgendwelche Fehlerangaben!
Hast du bei diesen Formularen vielleicht einmal in der IDE die lfm-Datei geöffnet (Rechts-Klick auf Formular > "Quelltext .lfm anzeigen")? Das zeigt die Formulare genauso an wie in deinem Screenshot. Und solange du diese Fenster nicht schließt, kommten sie auch beim nächsten Start der IDE wieder.

Ich wüsste nicht, dass es eine andere Einstellung gibt, den lfm-Inhalt als Text angezeigt zu bekommen. Dennoch: erzeuge mal ein neues Formular, klicke irgendwelche Komponenten drauf und speichere alles ab. Wenn du nun das Formular neu lädst, müsste es "normal" im Designer erscheiden, nicht im Editor.
Zuletzt geändert von wp_xyz am Sa 17. Feb 2024, 19:18, insgesamt 1-mal geändert.

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: LAZ 3.0 FPC 3.2.2 .lfm öffnet in Codeansicht

Beitrag von six1 »

Es betrifft nur einige der Fenster in dem Projekt! Andere öffnen anstandslos.
Ich öffne eine .pas Datei und klicke auf Code/Design Umschaltung und bei manchen öffnet sich einfach die Codeansicht...
Gruß, Michael

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: LAZ 3.0 FPC 3.2.2 .lfm öffnet in Codeansicht

Beitrag von six1 »

Alsoooo... nach Deinstallieren aller Zusatzkomponenten und neuem Installieren, Schritt für Schritt, habe ich den Fehler gefunden.
Es liegt an der Komponente "Mplayer"

Ganz am Ende der Datei Mplayerctrl.pas habe ich folgendes geändert:

Code: Alles auswählen

class function TWSMPlayerControl.CreateHandle(const AWinControl: TWinControl;
  const AParams: TCreateParams): HWND;
var
  NewWidget: PGtkWidget;
  WidgetInfo: PWidgetInfo;
  Allocation: TGTKAllocation;
begin
  if csDesigning in AWinControl.ComponentState then
    Result:=inherited CreateHandle(AWinControl,AParams)
  else begin
    NewWidget:=gtk_event_box_new;

//    WidgetInfo := GetWidgetInfo(NewWidget,true); // destroyed in MPLayerWidgetDestroyCB
    WidgetInfo := GetWidgetInfo(NewWidget); // destroyed in MPLayerWidgetDestroyCB
    ^^^^^^^^                         ",true" entfernt
Damit lies sich die Komponente zwar fehlerfrei kompilieren, aber danach startete Lazarus mit dem Aufruf: "lazarus" schon mal nicht mehr, sondern quittiert mit Accessviolation den Dienst. Mit Startlazarus startet Lazarus aber.
Ist die Komponente installiert, werden alle Forms mit Bezug auf MPlayer nur als Code im Editor angezeigt!
Sehr ominös das Ganze....

https://forum.lazarus.freepascal.org/in ... #msg507117
Gruß, Michael

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: LAZ 3.0 FPC 3.2.2 .lfm öffnet in Codeansicht [Fehler gefunden, aber keine Lösung]

Beitrag von fliegermichl »

Da wirst du Lazarus mal im Debugger starten müssen. Ich konnte damit ähnlichen Merkwürdigkeiten auf die Spur kommen.

Benutzeravatar
theo
Beiträge: 10499
Registriert: Mo 11. Sep 2006, 19:01

Re: LAZ 3.0 FPC 3.2.2 .lfm öffnet in Codeansicht [Fehler gefunden, aber keine Lösung]

Beitrag von theo »

Tippe mal drauf, dass man hier im GTK2 Umfeld suchen muss, so à la https://gitlab.com/freepascal.org/lazar ... sues/38332
Ich sage nicht, dass dieser Bugreport direkt damit zu tun hat, aber in diese Richtung wird es wahrscheinlich gehen.

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: LAZ 3.0 FPC 3.2.2 .lfm öffnet in Codeansicht [Fixed dirty Hack :-)]

Beitrag von six1 »

Theo lag richtig!

Nach langer Sucherei und viel Lesen zu GTK2, habe ich alle GTK2 Inhalte aus der MPlayer Komponente entfernt, bis auf einen Aufruf, um ein Fenster X-Handle zu bekommen.
Ich konnte zwar partiell einige Dinge fixen, aber dann sind mir wieder andere Dinge um die Ohren geflogen; zudem gibt es nur spärliche Infos zu dem ganzen GTK2 Kram... echt frustrierend.
Zumal ich nie eine ordentliche Fehlermeldung bekommen habe, woran es denn lag.
Nach der Installation des MPlayer, ist die IDE regelmäßig abgeschmiert und ließ sich nur über "startlazarus" zum Leben erwecken.

Die Sache ist folgende:
Man muss für die Ausgabe von Videos unter Linux! eine Parent und eine Child Komponente verwenden.
Wird das Video auf die Child Komponente (Handle) geroutet, wird es auf dem Parent ausgegeben.
In der Version der MPlayerComponent, in welcher dieser Fehler auftritt, wurde das Child auf Basis von GTK2 Aufrufen erzeugt und an die FCanvas (Parent) gebunden.
Ich habe die Erzeugung eines GTK2 Widget heraus genommen und einfach für den Betrieb der Komponete unter Linux ein unsichtbares TPanel erzeugt und als Client zur FCanvas definiert.
Eigentlich finde ich das ganz gut, denn ein TPanel kapselt alle GTK2 Aufrufe und funktioniert für gewöhnlich ohne Probleme.
Durch Änderungen der GTK2 ist dieser Fehler irgendwann entstanden und es ist sehr schwierig, hier etwas zu debugen (zumindest für mich)
Zuletzt geändert von six1 am Di 5. Mär 2024, 06:40, insgesamt 3-mal geändert.
Gruß, Michael

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: LAZ 3.0 FPC 3.2.2 .lfm öffnet in Codeansicht [Fixed]

Beitrag von six1 »

Die Komonente MPlayeControl wurde ge-patched und funktioniert wieder anständig unter Linux und Windows.

Download im Lazarus CCR: https://sourceforge.net/p/lazarus-ccr/s ... s/mplayer/

Danke an wp_xyz für die Unterstützung!
Gruß, Michael

Antworten