ToolBar nachbauen
-
- Beiträge: 206
- Registriert: Di 29. Okt 2019, 12:51
- Wohnort: Deutschland , Baden-Württemberg
ToolBar nachbauen
Hallo,
ich versuche gerade ein älteres Open-Source Projekt welches seit nunmehr 11 Jahren nichtmehr weiterentwickelt wird und ursprünglich mit Delphi 6 und Delphi 7 für Windows geschrieben wurde auf Lazarus und damit evtl. auf eine Linux Version zu Portieren. Das Konvertieren der Delphi *.dfm Dateien schlug fehl, daher mache ich mir jetzt die Mühe und erstelle das GUI-Design in Lazarus neu.
Das MainMenu zusammen mit der ActionList und der ImageList war kein Problem. Nun jedoch hänge ich an der Toolbar. In der ursprünglichen Delphi-Version was das durch eine TControlBar mit mehreren TToolBar mit TToolButtons ausgeführt.
Mit der TControlBar in Lazarus hat das überhaupt nicht funktioniert. Mit der TCoolBar sieht es schon besser aus, aber funktioniert vor allem unter Linux noch nicht wirklich gut. Auch da unter Linux die TToolButtons nicht richtig enabled/disabled werden, sobald diese mit der jeweiligen TAction verknüpft werden.
Ich habe zwar schon gelesen das es mit der TControlBar und der TCoolBar diverse Probleme geben soll, aber das es so daneben haut hätte ich nicht gedacht.
Ich habe ein paar Screenshots angehängt und den Sachverhalt etwas zu verdeutlichen:
Meine Wunschvorstellung wäre eine Toolbar wie sie in der Lazarus-IDE vorhanden ist.
Würde mich über Tips und Hilfestellung sehr freuen.
Grüße
HobbyProgrammer
ich versuche gerade ein älteres Open-Source Projekt welches seit nunmehr 11 Jahren nichtmehr weiterentwickelt wird und ursprünglich mit Delphi 6 und Delphi 7 für Windows geschrieben wurde auf Lazarus und damit evtl. auf eine Linux Version zu Portieren. Das Konvertieren der Delphi *.dfm Dateien schlug fehl, daher mache ich mir jetzt die Mühe und erstelle das GUI-Design in Lazarus neu.
Das MainMenu zusammen mit der ActionList und der ImageList war kein Problem. Nun jedoch hänge ich an der Toolbar. In der ursprünglichen Delphi-Version was das durch eine TControlBar mit mehreren TToolBar mit TToolButtons ausgeführt.
Mit der TControlBar in Lazarus hat das überhaupt nicht funktioniert. Mit der TCoolBar sieht es schon besser aus, aber funktioniert vor allem unter Linux noch nicht wirklich gut. Auch da unter Linux die TToolButtons nicht richtig enabled/disabled werden, sobald diese mit der jeweiligen TAction verknüpft werden.
Ich habe zwar schon gelesen das es mit der TControlBar und der TCoolBar diverse Probleme geben soll, aber das es so daneben haut hätte ich nicht gedacht.
Ich habe ein paar Screenshots angehängt und den Sachverhalt etwas zu verdeutlichen:
Meine Wunschvorstellung wäre eine Toolbar wie sie in der Lazarus-IDE vorhanden ist.
Würde mich über Tips und Hilfestellung sehr freuen.
Grüße
HobbyProgrammer
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 24.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 3.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.
Re: ToolBar nachbauen
Kannst du mal ein Beispiel hochladen, welches die Fehler zeigt?
-
- Beiträge: 206
- Registriert: Di 29. Okt 2019, 12:51
- Wohnort: Deutschland , Baden-Württemberg
Re: ToolBar nachbauen
Das mache ich gerne heut Abend.
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 24.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 3.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: ToolBar nachbauen
Ich habe mal versucht, in den TCoolBar einen Button zu bekommen. Ist mir nicht gelungen. Gibt es denn dafür keinerlei Dokumentation oder ein Beispiel?
Re: ToolBar nachbauen
Eine TCoolBar aufs Formular klicken, dann einen Button reinklicken? So geht's zumindest unter Windows.fliegermichl hat geschrieben: Mo 9. Jan 2023, 11:02 Ich habe mal versucht, in den TCoolBar einen Button zu bekommen. Ist mir nicht gelungen. Gibt es denn dafür keinerlei Dokumentation oder ein Beispiel?
Aber warum willst du einen Button direkt in eine TCoolbar setzen? Ich bezweifle, ob das viel getestet ist. Normalerweise nimmt man Toolbars.
Schau dir einmal die Lazarus IDE an, die verwendet auch eine TCoolbar, und zwar auf allen Plattformen.
Re: ToolBar nachbauen
Es gibt ein Beispiel in lazarus/examples/cooltoolbar/
Das verwendet aber keine Images.
Das verwendet aber keine Images.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: ToolBar nachbauen
Danke, ich schätze, ich habe den Sinn vom TCoolBar noch nicht verstanden.
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: ToolBar nachbauen
Ist letztendlich das Gleiche wie das REBAR-Control von Microsoft, siehe hier: https://learn.microsoft.com/en-us/windo ... r-controlsfliegermichl hat geschrieben: Mo 9. Jan 2023, 11:43 Danke, ich schätze, ich habe den Sinn vom TCoolBar noch nicht verstanden.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Re: ToolBar nachbauen
Das ist ein Container, der in der Regel mehrere Toolbars aufnimmt, die der User dann selbst umarrangieren, auch z.B. vertikal an die Seiten des Formulars docken kann.fliegermichl hat geschrieben: Mo 9. Jan 2023, 11:43 Danke, ich schätze, ich habe den Sinn vom TCoolBar noch nicht verstanden.
-
- Beiträge: 206
- Registriert: Di 29. Okt 2019, 12:51
- Wohnort: Deutschland , Baden-Württemberg
Re: ToolBar nachbauen
Den Lazarus Quelltext hab ich diesbezüglich angeschaut, aber dort wird die ToolBar wohl im Programm gecodet und nicht im Designer erstellt.wp_xyz hat geschrieben: Mo 9. Jan 2023, 11:30 Schau dir einmal die Lazarus IDE an, die verwendet auch eine TCoolbar, und zwar auf allen Plattformen.
Das habe ich mir zuallererst angesehen und mit einer Kopie davon herumexperimentiert. Aber so wirklich glücklich bin ich damit leider nicht geworden.theo hat geschrieben: Mo 9. Jan 2023, 11:41 Es gibt ein Beispiel in lazarus/examples/cooltoolbar/
Das verwendet aber keine Images.
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 24.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 3.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.
Re: ToolBar nachbauen
Ich habe mal ein bisschen herumgespielt damit und sehe im Moment keine grösseren Probleme. (Lazarus 2.3.0 (rev main-2_3-2199-g898f4009c0) FPC 3.2.2 x86_64-linux-gtk2)
Das Herz mit dem Warnschild ist via Action disabled:
Vielleicht stimmt bei dir mit den Bildern etwas nicht. Haben die alle die gleichen Dimensionen etc.?
Das Herz mit dem Warnschild ist via Action disabled:
Vielleicht stimmt bei dir mit den Bildern etwas nicht. Haben die alle die gleichen Dimensionen etc.?
-
- Beiträge: 206
- Registriert: Di 29. Okt 2019, 12:51
- Wohnort: Deutschland , Baden-Württemberg
Re: ToolBar nachbauen
Welches Linux benutzt Du? Ich arbeite mit KUbuntu 22.04 LTS.
Habe das Widgetset auch schon auf gtk2 geändert, jedoch ohne Erfolg.
Ich habe mein Demo-Projekt angehängt, mit der MainForm welche ich gemacht habe.
Vielleicht lässt sich da etwas herausfinden.
Habe das Widgetset auch schon auf gtk2 geändert, jedoch ohne Erfolg.
Ich habe mein Demo-Projekt angehängt, mit der MainForm welche ich gemacht habe.
Vielleicht lässt sich da etwas herausfinden.
- Dateianhänge
-
MyToolbar.zip
- (156.67 KiB) 53-mal heruntergeladen
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 24.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 3.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.
Re: ToolBar nachbauen
Mach GTK2 als WidgetSet. GTK3 ist "alpha" mit einigen Bugs. Nicht zu empfehlen.
Dann mache einen Handler rein bei Action -> OnUpdate oder setze "DisableIfNoHandler" auf false.
Dann müsste es schon mal besser sein.
Code: Alles auswählen
procedure TMainForm.actMsgCopyUpdate(Sender: TObject);
begin
TAction(Sender).Enabled:=true;
end;
-
- Beiträge: 206
- Registriert: Di 29. Okt 2019, 12:51
- Wohnort: Deutschland , Baden-Württemberg
Re: ToolBar nachbauen
Wenn es bei Dir mit dem Gtk2 Widgetset besser funktioniert werde ich das bei mir auf jeden Fall nochmal versuchen. Werd aber warscheinlich erst am Mittwoch dazu kommen.
So wie ich das von Dir gelesen habe sollte generell mit dem Gtk2 Widgetset arbeiten?
So wie ich das von Dir gelesen habe sollte generell mit dem Gtk2 Widgetset arbeiten?
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 24.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 3.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- 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: ToolBar nachbauen
Sagen wir so, GTK3 braucht noch etwas Zeit um zu reifen. Es ist teilweise noch Alpha-Status, also nicht mal Beta. GTK2 ist zwar auf einigen Plattformen am langsamen auslaufen, aber noch immer die beste Wahl (von den GTKx Widgetsets).HobbyProgrammer hat geschrieben: Mo 9. Jan 2023, 20:58 So wie ich das von Dir gelesen habe sollte generell mit dem Gtk2 Widgetset arbeiten?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).