ToolBar nachbauen

Für Fragen von Einsteigern und Programmieranfängern...
HobbyProgrammer
Beiträge: 206
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

ToolBar nachbauen

Beitrag von HobbyProgrammer »

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:
Toolbar_original.jpg
Toolbar_original.jpg (6.44 KiB) 1444 mal betrachtet
Toolbar_Lazarus_Linux.jpg
Toolbar_Lazarus_Linux.jpg (31.88 KiB) 1444 mal betrachtet
Toolbar_Lazarus_Windows.jpg
Toolbar_Lazarus_Windows.jpg (54.44 KiB) 1444 mal betrachtet
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.

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

Re: ToolBar nachbauen

Beitrag von theo »

Kannst du mal ein Beispiel hochladen, welches die Fehler zeigt?

HobbyProgrammer
Beiträge: 206
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: ToolBar nachbauen

Beitrag von HobbyProgrammer »

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.

Benutzeravatar
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

Beitrag von fliegermichl »

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?

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

Re: ToolBar nachbauen

Beitrag von wp_xyz »

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?
Eine TCoolBar aufs Formular klicken, dann einen Button reinklicken? So geht's zumindest unter Windows.

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.

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

Re: ToolBar nachbauen

Beitrag von theo »

Es gibt ein Beispiel in lazarus/examples/cooltoolbar/
Das verwendet aber keine Images.

Benutzeravatar
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

Beitrag von fliegermichl »

Danke, ich schätze, ich habe den Sinn vom TCoolBar noch nicht verstanden.

Benutzeravatar
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

Beitrag von m.fuchs »

fliegermichl hat geschrieben: Mo 9. Jan 2023, 11:43 Danke, ich schätze, ich habe den Sinn vom TCoolBar noch nicht verstanden.
Ist letztendlich das Gleiche wie das REBAR-Control von Microsoft, siehe hier: https://learn.microsoft.com/en-us/windo ... r-controls
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

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

Re: ToolBar nachbauen

Beitrag von wp_xyz »

fliegermichl hat geschrieben: Mo 9. Jan 2023, 11:43 Danke, ich schätze, ich habe den Sinn vom TCoolBar noch nicht verstanden.
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.

HobbyProgrammer
Beiträge: 206
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: ToolBar nachbauen

Beitrag von HobbyProgrammer »

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.
Den Lazarus Quelltext hab ich diesbezüglich angeschaut, aber dort wird die ToolBar wohl im Programm gecodet und nicht im Designer erstellt.
theo hat geschrieben: Mo 9. Jan 2023, 11:41 Es gibt ein Beispiel in lazarus/examples/cooltoolbar/
Das verwendet aber keine Images.
Das habe ich mir zuallererst angesehen und mit einer Kopie davon herumexperimentiert. Aber so wirklich glücklich bin ich damit leider nicht geworden.
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.

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

Re: ToolBar nachbauen

Beitrag von theo »

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:

cooltoolbar.png
cooltoolbar.png (10.09 KiB) 1259 mal betrachtet

Vielleicht stimmt bei dir mit den Bildern etwas nicht. Haben die alle die gleichen Dimensionen etc.?

HobbyProgrammer
Beiträge: 206
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: ToolBar nachbauen

Beitrag von HobbyProgrammer »

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.
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.

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

Re: ToolBar nachbauen

Beitrag von theo »

HobbyProgrammer hat geschrieben: Mo 9. Jan 2023, 18:51 Vielleicht lässt sich da etwas herausfinden.
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; 
coolbar2.png
coolbar2.png (17.71 KiB) 1215 mal betrachtet

HobbyProgrammer
Beiträge: 206
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: ToolBar nachbauen

Beitrag von HobbyProgrammer »

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?
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.

Benutzeravatar
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

Beitrag von af0815 »

HobbyProgrammer hat geschrieben: Mo 9. Jan 2023, 20:58 So wie ich das von Dir gelesen habe sollte generell mit dem Gtk2 Widgetset arbeiten?
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).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten