BGRA Ribbon

Zur Vorstellung von Komponenten und Units für Lazarus
coasting
Beiträge: 21
Registriert: Mi 30. Apr 2014, 14:32

BGRA Ribbon

Beitrag von coasting »

Hey

Habe mithilfe der BGRA Controls ein Ribbon-Style Projekt Template erstellt.

Screenshot
Screenshot


Zum kompilieren werden die BGRABitmap und BGRAControls Packages benötigt.

Das Template ist noch nicht fertig und es gibt noch ein paar Dinge, die ich gerne umsetzen möchte. Sourcen liegen aber trotzdem schon mal bei. Bin für Anregungen und Kritik offen ;)

Update 06.04.2016
+ Fenster ist Resizeable und Moveable ohne Titelleiste
+ Fenster hat einen Schatten (CS_DROPSHADOW)
+ Maximize / Minimize des Fensters, inkl. Doppelklick der Titelleiste
+ Slide-in / Slide-out Effekt der Menus
+ XML Storage zum Abspeichern der Farbe, Größe und Position
+ Fokusstatus des Fensters wird berücksichtigt
+ Systemmenu
+ "Quick Access" Buttons
+ Fensterdeko in der Titelleiste
+ Cross Platform (so hoffe ich)
+ Diverse kleine Verbesserungen

coasting
Dateianhänge
BGRA Ribbon Custom 06042016.zip
BGRA Ribbon 06.04.2016
(1.13 MiB) 396-mal heruntergeladen
BGRA Styles.zip
BGRA Styles
(2.91 KiB) 361-mal heruntergeladen
BGRA Ribbon-Template.zip
Sourcen und EXE
(917.44 KiB) 404-mal heruntergeladen
Zuletzt geändert von coasting am Mi 6. Apr 2016, 21:48, insgesamt 6-mal geändert.

Benutzeravatar
Roland Chastain
Beiträge: 156
Registriert: Sa 7. Jul 2012, 21:50
Wohnort: Saargemünd
Kontaktdaten:

Re: BGRA Ribbon

Beitrag von Roland Chastain »

Hallo!

Das ist sehr hübsch. Danke für das Code. :)

Nur eine Frage: Ich habe nicht verstanden, was man mit die .bcbtn Dateien machen soll. :roll:
Zuletzt geändert von Roland Chastain am Fr 8. Apr 2016, 08:35, insgesamt 1-mal geändert.
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: BGRA Ribbon

Beitrag von Dragon »

@Roland Chastain
Ich glaube da sind die themes drin gespeichert also das aussehen der Ribbon bars

@coasting
Die komponente sieht auf jedenfall ziemlich nice aus gute arbeit. Werde mir bei gelegenheit den code mal ansehen.

coasting
Beiträge: 21
Registriert: Mi 30. Apr 2014, 14:32

Re: BGRA Ribbon

Beitrag von coasting »

Roland Chastain hat geschrieben:
Nur eine Frage: Ich habe nicht verstanden, was man mit die .bcbtn Dateien machen soll. :roll:


Die kannst Du in das ..\Styles\ Verzeichnis der BGRAControls kopieren. Sie dienen als Vorlage für die Tab- bzw. Ribbon-Buttons.

coasting

coasting
Beiträge: 21
Registriert: Mi 30. Apr 2014, 14:32

Re: BGRA Ribbon

Beitrag von coasting »

Dragon hat geschrieben:@coasting
Die komponente sieht auf jedenfall ziemlich nice aus gute arbeit. Werde mir bei gelegenheit den code mal ansehen.


Leider ist es (noch) keine Komponente, sondern erstmal nur ein Template für ein neues Projekt. Ja, schau bitte mal in den Source Code, da ist sicherlich einiges was man besser machen kann... :)

coasting

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: BGRA Ribbon

Beitrag von Dragon »

Ja, schau bitte mal in den Source Code, da ist sicherlich einiges was man besser machen kann... :)

Ich bin auch noch relativer anfänger kann zu dem code wrsl deshalb nicht alzuviel sagen, auch wenn ich mich mit Lazarus auch schon ne weile beschäftige, aber der Tag hat Leider auch nur 24Stunden, hat wer lust das mal zu patchen, aber selber draus lernen kann ich bestimmt ein wenig oder vll tipps geben.

Benutzeravatar
Roland Chastain
Beiträge: 156
Registriert: Sa 7. Jul 2012, 21:50
Wohnort: Saargemünd
Kontaktdaten:

Re: BGRA Ribbon

Beitrag von Roland Chastain »

coasting hat geschrieben:Die kannst Du in das ..\Styles\ Verzeichnis der BGRAControls kopieren. Sie dienen als Vorlage für die Tab- bzw. Ribbon-Buttons.


Ich sehe. Danke.
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: BGRA Ribbon

Beitrag von Mathias »

Ich habe die Example BGRA Ribbon-Template.zip probiert, wen man dort die Unit Windows entfernt. läuft es sogar unter Linux.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

coasting
Beiträge: 21
Registriert: Mi 30. Apr 2014, 14:32

Re: BGRA Ribbon

Beitrag von coasting »

Mathias hat geschrieben:Ich habe die Example BGRA Ribbon-Template.zip probiert, wen man dort die Unit Windows entfernt. läuft es sogar unter Linux.

Ohh... das ist gut zu wissen! Hatte bisher noch keine Gelegenheit, es auf anderen Systemen als Windows 10 zu probieren.

Was mir ein wenig Kopfweh bereitet, ist das Zeichnen der Form ohne Titelleiste. Eigentlich funktioniert das schon, nur das die Form ohne Schatten gezeichnet wird und das das Resize ein wenig holprig aussieht. Aber beides weicht zu deutlich vom UI des Betriebssystems ab, daher belass ich es erst mal bei dem normalen Form Style.

coasting

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: BGRA Ribbon

Beitrag von Mathias »

Was mir ein wenig Kopfweh bereitet, ist das Zeichnen der Form ohne Titelleiste.

Damit habe ich auch schon geübt, dies ist gar nicht so einfach.
Ich wollte eine eigene Titel-Leiste machen, so wie es zB. Chrome hat.
Verstellt man BorderStyle auf bsNone, dann hat man nicht mal mehr ein Rand am Form, welcher man braucht um die Fenstergrösse zu verändern.
Die Titel-Leiste selbst könnte man mit einem Panel, welches auf Align=alTop ist, bauen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: BGRA Ribbon

Beitrag von Soner »

Für das Zeichnen ohne Titelzeile braucht ihr das:

Code: Alles auswählen

 
procedure TForm1.FormCreate(Sender: TObject);
begin
  //Nicht vergessen: uses LCLIntf;
  SetWindowLong(Handle,GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION);
  Height:=ClientHeight;
  Refresh;
end;
 
// Falls man Formular verschieben will, dann man Mausklickereignis verwenden:
// Entwerde für Formular selbst oder bei Panel, Label usw.
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 {Diese 1. Möglichkeit für das Verschieben funktioniert bei Lazarus nicht,
   aber bei Delphi funktioniert's!}

  ReleaseCapture;
  Perform(WM_SYSCOMMAND, $F012, 0);
 
  {Diese 2. Möglichkeit für das Verschieben funktioniert bei Lazarus nicht,
   aber bei Delphi funktioniert's!}

  //SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
 


Leider funktionieren die beiden Verschiebemöglichkeiten bei Lazarus nicht. Ich habe es trotzdem hinzugefügt. Einfach probieren ob das bei euch funktioniert.

Es gibt auch eine Ribboncomponente für Lazarus:
http://forum.lazarus.freepascal.org/index.php?topic=17126.15

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: BGRA Ribbon

Beitrag von Mathias »

Leider funktionieren die beiden Verschiebemöglichkeiten bei Lazarus nicht.

Das ist vielfach bei Lazarus so, ich hatte mal eigene Button für das Fenster gebaut, aber wie erwartet läuft dies nur mit Delphi und Windows.
Das Haupt-Problem wird die Platformübergreifung von Lazarus sein, man kann nicht den Fünfer und das Weggli haben.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

coasting
Beiträge: 21
Registriert: Mi 30. Apr 2014, 14:32

Re: BGRA Ribbon

Beitrag von coasting »

Soner hat geschrieben:Leider funktionieren die beiden Verschiebemöglichkeiten bei Lazarus nicht. Ich habe es trotzdem hinzugefügt. Einfach probieren ob das bei euch funktioniert.

Es gibt auch eine Ribboncomponente für Lazarus:
http://forum.lazarus.freepascal.org/index.php?topic=17126.15


Ich habe eine neue Version im ersten Post hochgeladen. Die ist nun Resizable und Moveable. Allerdings fehlt noch der Schatten der Form.

Screenshot
Screenshot
Screenshot.png (8.82 KiB) 5983 mal betrachtet


Die SpkToolbar kenne ich ebenfalls. Allerdings lassen sich damit keine Ribbons im neuen Stil erstellen. Ein weiterer Tip sind die FZControls https://code.google.com/archive/p/fz-controls/ Eine Sammlung von Komponenten die sich ebenfalls toll anpassen lassen.

coasting

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

Re: BGRA Ribbon

Beitrag von wp_xyz »

coasting hat geschrieben:Die SpkToolbar kenne ich ebenfalls. Allerdings lassen sich damit keine Ribbons im neuen Stil erstellen.

Bei SpkToolbar kann man jede Farbe jedes Farbübergangs verändern, die "flachen" neuen Ribbons sollte man damit hinbekommen. Was fehlt, das ist diese 1. Seite (plus einige weitere Controls, z.B. einrastende Buttons - ich wollte das immer mal probieren, habe aber nie mehr die Energie aufgebracht, mich in diese Komponenten tiefer einzuarbeiten).

coasting hat geschrieben: Ein weiterer Tip sind die FZControls https://code.google.com/archive/p/fz-controls/ Eine Sammlung von Komponenten die sich ebenfalls toll anpassen lassen.

Leider funktioniert der Google-Link nicht mehr.

coasting
Beiträge: 21
Registriert: Mi 30. Apr 2014, 14:32

Re: BGRA Ribbon

Beitrag von coasting »

wp_xyz hat geschrieben:Bei SpkToolbar kann man jede Farbe jedes Farbübergangs verändern, die "flachen" neuen Ribbons sollte man damit hinbekommen. Was fehlt, das ist diese 1. Seite (plus einige weitere Controls, z.B. einrastende Buttons - ich wollte das immer mal probieren, habe aber nie mehr die Energie aufgebracht, mich in diese Komponenten tiefer einzuarbeiten).

coasting hat geschrieben: Ein weiterer Tip sind die FZControls https://code.google.com/archive/p/fz-controls/ Eine Sammlung von Komponenten die sich ebenfalls toll anpassen lassen.

Leider funktioniert der Google-Link nicht mehr.


Hmm... komisch. Wenn ich auf den Link klicke, wird die Seite angezeigt. Hier https://code.google.com/archive/p/fz-controls/downloads ist die Downloadseite.

coasting

Antworten