[erledigt] Konvertierung dfm -> lfm mit VirtualStringTree

Für Fragen rund um die Ide und zum Debugger
Antworten
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

[erledigt] Konvertierung dfm -> lfm mit VirtualStringTree

Beitrag von fliegermichl »

Wenn ich ein Delphi Formular mit einem VirtualStringTree konvertiere, dann fehlen immer die Spalten.
Da Lazarus ja auch direkt mit dfm Dateien arbeiten kann, habe ich mal versucht die dfm zu öffnen und bekomme sofort die Fehlermeldung
unknown property "columns"

Wenn ich die dfm Datei mit einem Texteditor öffne, dann sehe ich, daß bei allen Properties des Headers ein Header.
vor dem Namen der Headereigenschaft steht.

Bei den Columns ist das nicht der Fall.
Ich hab dann einfach mal Header.Columns geschrieben, die Datei gespeichert und erneut versucht die dfm zu öffnen.

Da bekomme ich dann die Fehlermeldung unknown property "WideText".

Was macht der VirtualstringTree da in Delphi für einen Voodoozauber?
Da stehen die Columns im Objektinspektor unterhalb von Header und die Eigenschaft heisst Text und nicht WideText?.

Da ich sehr viele Formulare mit VirtualStringTree konvertieren möchte, wäre es schon sehr schön, wenn das so ginge.
Zuletzt geändert von fliegermichl am Do 13. Jul 2023, 09:52, insgesamt 1-mal geändert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6217
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Konvertierung dfm -> lfm mit VirtualStringTree

Beitrag von af0815 »

Ich würde sagen, da sind die published properties nicht gleich zwischen Delphi und Lazarus Version. Weil IMHO nur die werden vom Reader und Writer in die lfm (dfm) geschrieben und auch dann nur wenn der Inhalt vom default Wert abweicht. Nur so kann ich mir das erklären.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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: Konvertierung dfm -> lfm mit VirtualStringTree

Beitrag von fliegermichl »

Ich habe in der dfm "Columns" durch "Header.Columns" und "WideText" durch "Text" ersetzt.
Dann konvertiert Lazarus die dfm problemlos nach lfm.

Öffne ich die derart umgeschriebene dfm dann in Delphi5 und speichere sie wieder ab, sind meine Änderungen wieder weg.
Sie wird aber korrekt geöffnet. und angezeigt.

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: Konvertierung dfm -> lfm mit VirtualStringTree

Beitrag von fliegermichl »

In der Delphiversion wird TBaseVirtualTree.DefineProperties und TVirtualTreeColumn.DefineProperties überschrieben.
Da gab es wohl mal einen Bug in einer älteren Delphiversion bei dem es nicht möglich war, Collections im Formular zu speichern.

Die fehlen in der LCL Version vom VirtualTree. Damit erklärt sich das Verhalten.

Antworten