TEmbeddedForm
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
TEmbeddedForm
Hat jemand hier sowas oder weiß jemand wo man sowas "for free" bekommt?
Hintergrund dürfte lar sein, anstatt Frames zu verwenden gleich ein echtes Formular in eine Listbox, Panel oder ähnlich einbetten. Ideal wäre, wenn man es dann noch per (Drag and Drop) auf einen anderen virtuellen Desktop verschieben könnte.
Sollte möglichst für Delphi und Kylix auch funzen.
Hintergrund dürfte lar sein, anstatt Frames zu verwenden gleich ein echtes Formular in eine Listbox, Panel oder ähnlich einbetten. Ideal wäre, wenn man es dann noch per (Drag and Drop) auf einen anderen virtuellen Desktop verschieben könnte.
Sollte möglichst für Delphi und Kylix auch funzen.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Wie jetzt? Soll es ne MDI werden?
MDI gibts ja nur ein paar ansätze für Laz:
http://wiki.lazarus.freepascal.org/MultiDoc
und irgendwo gabs da auch noch eine.
MDI gibts ja nur ein paar ansätze für Laz:
http://wiki.lazarus.freepascal.org/MultiDoc
und irgendwo gabs da auch noch eine.
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- 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:
Hallo Schnullerbacke,
gehts in die Richtung ?
http://www.midnightbeach.com/jon/pubs/M ... rames.html" onclick="window.open(this.href);return false;
gehts in die Richtung ?
http://www.midnightbeach.com/jon/pubs/M ... rames.html" onclick="window.open(this.href);return false;
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
@af0815
Genau das war gemeint.
@monta
Genau MDI war nicht gemeint. Normalerweise kannst man ein Formular nicht in ein anderes visuelles Objekt (TListBox, TPanel, TScrollBox) einbetten, weil der Code für *.dfm (*.xfm, *.lfm) nicht unterhalb des Owner-Objektes in dem gerade verwendeten Formular eingetragen werden kann. Die Spezialität der Formulare verhindert das, weil die halt ihre eigene *.dfm (*.xfm, *.lfm) anlegen möchten.
Spätestens beim inherited Create(AOwner) geht das schief, weil TForm.Create seine eigen Instanz prüft und dabei TForm feststellt. Das wird dann abgelehnt weil eben die *.dfm (*.xfm, *.lfm) nicht angelegt werden kann, andereseits in der aktuellen *.dfm... der Code nicht eingetragen werden kann.
Früher gabs bei Delphi (1.0 ff) mal das Objekt TWindow, das verhielt sich ähnlich wie ein Formular, konnte aber in andere visuelle Objekte eingebettet werden und ließ sich mit einem einfachen Trick selbst zum Formular machen.
Genau das war gemeint.
@monta
Genau MDI war nicht gemeint. Normalerweise kannst man ein Formular nicht in ein anderes visuelles Objekt (TListBox, TPanel, TScrollBox) einbetten, weil der Code für *.dfm (*.xfm, *.lfm) nicht unterhalb des Owner-Objektes in dem gerade verwendeten Formular eingetragen werden kann. Die Spezialität der Formulare verhindert das, weil die halt ihre eigene *.dfm (*.xfm, *.lfm) anlegen möchten.
Spätestens beim inherited Create(AOwner) geht das schief, weil TForm.Create seine eigen Instanz prüft und dabei TForm feststellt. Das wird dann abgelehnt weil eben die *.dfm (*.xfm, *.lfm) nicht angelegt werden kann, andereseits in der aktuellen *.dfm... der Code nicht eingetragen werden kann.
Früher gabs bei Delphi (1.0 ff) mal das Objekt TWindow, das verhielt sich ähnlich wie ein Formular, konnte aber in andere visuelle Objekte eingebettet werden und ließ sich mit einem einfachen Trick selbst zum Formular machen.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Das is noch richtig das würde ja Docking unmöglich machen.
probier doch einfach mal sowas
Unter windows gibts diesbezüglich einen Focusbug den man aber umschiffen kann. Ansonsten funktionierts.
probier doch einfach mal sowas
Code: Alles auswählen
Form1.Parent := Panel2;
Form1.Align := alClient;
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
@Christian
Danke für den Hinweis. Geht hauptsächlich darum, das man zu Einen damit das Formular in der IDE zusammenbauen kann und es dann halt einfach irgendwo einhängt wenn man das will, es aber eben auch komplett auf einen virtuellen Desktop auslagern kann. Dabei darf dann aber eben auch der Focus nicht auf das ausgelagerte Formular übergehen.
Nimm an du hast 4 Bildschirme a la Börsenbroker. Anstatt nun 4 Programme zu starten die für sich jedes die gleiche Datenbank abfragen und nur verschiedene Sichtweisen der gleichen Datenbank anbieten, brauchste halt nur eine Anwendung und etablierst einfach auf jedem Bildschirm eine Sichtweise. Wer nur einen Bildschirm hat, bekommt alle 4 Sichten in einer ScrollBox und kann jederzeit wechseln. Der Main-Thread bleibt immer der gleiche. Die 4 Sichten machen ihre Anfragen an die DB alle gesondert und sind damit fast Synchron, deswegen darf der Focus nicht verloren gehen, sonst läuft das Update nicht mehr.
Danke für den Hinweis. Geht hauptsächlich darum, das man zu Einen damit das Formular in der IDE zusammenbauen kann und es dann halt einfach irgendwo einhängt wenn man das will, es aber eben auch komplett auf einen virtuellen Desktop auslagern kann. Dabei darf dann aber eben auch der Focus nicht auf das ausgelagerte Formular übergehen.
Nimm an du hast 4 Bildschirme a la Börsenbroker. Anstatt nun 4 Programme zu starten die für sich jedes die gleiche Datenbank abfragen und nur verschiedene Sichtweisen der gleichen Datenbank anbieten, brauchste halt nur eine Anwendung und etablierst einfach auf jedem Bildschirm eine Sichtweise. Wer nur einen Bildschirm hat, bekommt alle 4 Sichten in einer ScrollBox und kann jederzeit wechseln. Der Main-Thread bleibt immer der gleiche. Die 4 Sichten machen ihre Anfragen an die DB alle gesondert und sind damit fast Synchron, deswegen darf der Focus nicht verloren gehen, sonst läuft das Update nicht mehr.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Du hast noch nie n programm von mir gesehn oder ? Ich mach das schon seit 2 Jahren so das man jede Ansicht aushängen kann und auf nen anderen Bildschirm verschieben.
hä ? Bahnhof ?Dabei darf dann aber eben auch der Focus nicht auf das ausgelagerte Formular übergehen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/