RadioGroup ohne Caption

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Mathias
Beiträge: 5038
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

RadioGroup ohne Caption

Beitrag von Mathias »

Wen in der Caption von RadioGroup '' steht, wird ein Rahmen gezeichnet, aber sobald etwa in der Caption steht verschwindet der Rahmen.
Dabei spielt es keine Rolle, ob RadioButtons vorhanden sind. Das einzige was passiert, das die RadionButtons die Postion wechseln.

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
begin
  RadioGroup1.Caption:='123'; // Rahmen verschwindet
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  RadioGroup1.Caption:=''; // Rahmen wird gezeichnet
end;
 

Ist das mit dem Rahmen ein Bug ?

Ich habe es mit Linux Mint 64Bit probiert.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Linkat
Lazarusforum e. V.
Beiträge: 445
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 20; Lazarus 2.0.10 FPC 3.2.0; Raspbian
CPU-Target: AMD 64Bit, ARM 32Bit
Wohnort: nr Stuttgart

Re: RadioGroup ohne Caption

Beitrag von Linkat »

Hallo Mathias,
ich kann das (seltsame) Verhalten bestätigen (Lazarus 1.6.4 FPC 3.0.2 64 bit; Linux Mint 18.1).

Hat nicht unbedingt etwas mit deinem Problem zu tun, habe aber auch das Problem gehabt, dass der Hotkey 'Strg - #' zum Auskommentieren nicht funktionierte (lies sich beheben mit: Werkzeuge -> Einstellungen -> Editor -> Tastaturbelegung -> Textauswahlbefehle .. ). Das Debian-Paket passt wohl nicht unbedingt zu 100% mit Linux Mint 18.1 zusammen. Aber schon bald kommt Lazarus 1.8, vielleicht sind dann die Probleme schon behoben?

Gruß, Linkat

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

Re: RadioGroup ohne Caption

Beitrag von Mathias »

Aber schon bald kommt Lazarus 1.8, vielleicht sind dann die Probleme schon behoben?

Ich verwende die Trunk 1.9.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

gladio
Beiträge: 119
Registriert: Sa 21. Jun 2014, 06:15
OS, Lazarus, FPC: Win10-32/64 - aktuelle Lazarus/FPC Standard-Edition
CPU-Target: 32/64Bit
Wohnort: Rügen

Re: RadioGroup ohne Caption

Beitrag von gladio »

Kann das Verhalten nicht bestätigen:
Win10/64 , Lazarus 1.6
Am Rahmen ändert sich nichts.

siro
Beiträge: 388
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 10
CPU-Target: 64Bit
Wohnort: Berlin

Re: RadioGroup ohne Caption

Beitrag von siro »

Windows 10/64 Bit, Lazarus 1.6.2
kein Problem

Windows 8.1 /64Bit Lazarus 1.6.4
kein Problem

Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

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

Re: RadioGroup ohne Caption

Beitrag von theo »

Mal das GTK2 Theme gewechselt?
Viele visuelle und z.T. sogar gröbere Probleme hängen mit dem Theme zusammen. Ist nicht so toll.

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

Re: RadioGroup ohne Caption

Beitrag von wp_xyz »

Ich kann den im 1.Beitrag beschriebenen Fehler mit Mint 18.1/KDE und Lazarus trunk nicht bestätigen, weder mit gtk2 noch mit qt. Bin allerdings auf 32 Bit.

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

Re: RadioGroup ohne Caption

Beitrag von Mathias »

Ich habe es jetzt noch mit Wine getestet, hier habe ich immer einen Rahmen, so wie es eigentlich erwünscht wäre.

Bei den RadioButtons, welche in der Lazarus-IDE vorkommen, fehlen auch überall die Rahmen, ausser in Wine.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Michl
Beiträge: 2340
Registriert: Di 19. Jun 2012, 12:54

Re: RadioGroup ohne Caption

Beitrag von Michl »

Ich kann das Verhalten mit 64bit Linux 18.1 Cinnamon bestätigen. Alle der Groupbox abstammenden Komponenten (TRadioGroup, TGroupBox, TCheckGroup...) zeigen das Verhalten. Durch das Label wird der Rahmen überzeichnet.

Keine Ahnung, ob man das fixen will. Eine Möglichkeit wäre das Align zu ändern https://people.gnome.org/~shaunm/girdoc/C/Gtk.Frame.html

@Mathias: Probiere doch mal:

Code: Alles auswählen

unit Gtk2WSStdCtrls; 
...
// Zeile 2238
class procedure TGtk2WSCustomGroupBox.SetLabel(AFrame: PGtkFrame; AText: String);
var
  Lbl: PGtkWidget;
begin
  Lbl := gtk_frame_get_label_widget(AFrame);
  if (AText = '') then
  begin
    if Lbl <> nil then
      gtk_widget_destroy(Lbl);
  end
  else
  begin
    if Lbl = nil then
    begin
      Lbl := gtk_label_new(nil);
      gtk_widget_show(Lbl);
      gtk_frame_set_label_widget(AFrame, Lbl);
      gtk_frame_set_label_align(AFrame, 1, 1)// <-- diese Zeile einfügen
    end;
    Gtk2Widgetset.SetLabelCaption(PGtkLabel(Lbl), AText);
  end;
end;
ob es nun deinen Wünschen entspricht?!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

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

Re: RadioGroup ohne Caption

Beitrag von wp_xyz »

Michl hat geschrieben:Ich kann das Verhalten mit 64bit Linux 18.1 Cinnamon bestätigen.

Aber wieso geht's bei mir? Liegt das an 64-Bit? Ich habe mir am Samstag einen sehr aktuellen Trunk gebaut. Welche Version habt ihr? Vielleicht hat jemand da vor kurzem noch etwas gemacht?

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

Re: RadioGroup ohne Caption

Beitrag von Mathias »

ob es nun deinen Wünschen entspricht?!

Brauchen tue ich es nicht, mir ist dies nur aufgefallen, als ich mit dem Fragespiel rumbastelte.

So wie es scheint, ist dies ein Problem von Cinnamon.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Michl
Beiträge: 2340
Registriert: Di 19. Jun 2012, 12:54

Re: RadioGroup ohne Caption

Beitrag von Michl »

Habe eben noch 64bit OpenSuse Leap 42.2 KDE GTK2 version 2.24.31, Lazarus 1.9.0 r55122 FPC 3.0.2 x86_64-linux-gtk2 und 64bit Linux Mint 17.3 KDE, GTK2 version 2.24.23, Lazarus 1.9.0 r54826 FPC 3.0.2 x86_64-linux-gtk2 getestet. Das Problem ist überall zu sehen.

wp_xyz hat geschrieben:Aber wieso geht's bei mir?
Nein, geht auch nicht richtig, ist aber nicht so offensichtlich. Wenn du ganz genau hinschaust, änders sich die Hintergrundfarbe (Grauverlauf) und bei einer vorhandenen Beschriftung verschwindet die untere Begrenzungslinie.

BTW: die oben eingefügte Zeile ist nicht günstig, da das Label dann oberhalb der Box ersichtlich ist.

Wie verhalten sich eigentlich andere Programme unter GTK2? Ich habe mal kurz geschaut, konnte aber nirgends sowas wie eine GroupBox entdecken.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

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

Re: RadioGroup ohne Caption

Beitrag von Mathias »

Wie verhalten sich eigentlich andere Programme unter GTK2?

Bei LibreOfficen scheine auch die Rahmen zu fehlen.
Bei NetBeans fehlen sie auch.
Bei Eclipse hat es Rahmen, aber ich denke dort wird es etwas Java eigenes zu haben.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Michl
Beiträge: 2340
Registriert: Di 19. Jun 2012, 12:54

Re: RadioGroup ohne Caption

Beitrag von Michl »

Mathias hat geschrieben:Bei LibreOfficen scheine auch die Rahmen zu fehlen.
Bei NetBeans fehlen sie auch.
Bei Eclipse hat es Rahmen, aber ich denke dort wird es etwas Java eigenes zu haben.
Tiptop! Dann ist ja alles in Butter!

Zum Problem:
Da bei einem leeren String das Widgetset-Label freigegeben wird, kannst du ja sowas machen:

Code: Alles auswählen

procedure TForm1.Button2Click(Sender: TObject);
begin
  RadioGroup1.Caption:=' ';
end;

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

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

Re: RadioGroup ohne Caption

Beitrag von Mathias »

Da bei einem leeren String das Widgetset-Label freigegeben wird, kannst du ja sowas machen:

Gute Idee, somit fällt der Fehler nicht so auf.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Antworten