AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Gruppieren von zur Laufzeit erzeugten Toolbuttons
Thema durchsuchen
Ansicht
Themen-Optionen

Gruppieren von zur Laufzeit erzeugten Toolbuttons

Ein Thema von joseph_l · begonnen am 23. Nov 2006 · letzter Beitrag vom 25. Nov 2006
Antwort Antwort
joseph_l

Registriert seit: 26. Jan 2006
7 Beiträge
 
Delphi 2006 Professional
 
#1

Gruppieren von zur Laufzeit erzeugten Toolbuttons

  Alt 23. Nov 2006, 19:29
hallo,

die gruppierung von toolbuttons wird fehlerhaft, wenn zur laufzeit zusätzliche toolbuttons erzeugt werden. der fehler ist immer der gleiche, egal ob 1 oder mehrere toolbuttons zusätzlich erzeugt werden (in der toolbar rechts angefügt): die markierungs-anzeige verrutscht um eine position nach links.

beispiel: 4 toolbuttons sind vorgegeben, toolbutton2 und toolbutton3 sind gruppiert (grouped=true, style=tbsCheck), was auch wunderbar funktioniert bis sie zur laufzeit erzeugte gesellschaft bekommen, zb einen toolbutton5, in der toolbar rechts von toolbutton4 eingefügt. dann ist nämlich nach klick auf toolbutton3 toolbutton2 markiert, nach klick auf toolbutton2 ist toolbutton1 markiert (obwohl der gar nicht gruppiert ist).

mit folgendem code füge ich ein:
Delphi-Quellcode:
    MyToolbutton := TToolbutton.Create(form1);
    MyToolbutton.Caption := 'nBook1';
    MyToolbutton.Parent := toolbar1;
    mytoolbutton.ImageIndex:=48;
    mytoolbutton.name:='nBook01';
    mytoolbutton.enabled:=true;
    mytoolbutton.OnClick:=buttonClick;
    with Toolbar1.BoundsRect do
        mytoolbutton.SetBounds(Right, Top, mytoolbutton.Width, mytoolbutton.Height);
    MyToolbutton.visible:=true;
wie kann ich den fehler vermeiden?
joseph_l
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Gruppieren von zur Laufzeit erzeugten Toolbuttons

  Alt 24. Nov 2006, 20:58
Hallo joseph_l,

das alleinige Setzen der Parent-Eigenschaft reicht leider nicht aus um den Button in die Toolbar einzufügen. Zum Ansprechen der protected-Methode TToolButton.SetToolBar benötigt man einen "ClassCracker":

Delphi-Quellcode:
type
  TButtonCracker = class (TToolButton);
  
begin
  MyToolbutton := TToolbutton.Create(form1);
  MyToolbutton.Caption := 'nBook1';
// MyToolbutton.Parent := toolbar1; <-- entfernt
  mytoolbutton.ImageIndex:=48;
  mytoolbutton.name:='nBook01';
  mytoolbutton.enabled:=true;
  mytoolbutton.OnClick:=buttonClick;
  with Toolbar1.BoundsRect do
    mytoolbutton.SetBounds(Right, Top, mytoolbutton.Width, mytoolbutton.Height);
  MyToolbutton.visible:=true;
  TButtonCracker(MyToolbutton).SetToolBar(toolbar1); // <-- hinzugefügt
end;
Die Deklaration von TButtonCracker muß global sein, da Delphi keine lokalen Klassen unterstützt.

Gruß Hawkeye
  Mit Zitat antworten Zitat
joseph_l

Registriert seit: 26. Jan 2006
7 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Gruppieren von zur Laufzeit erzeugten Toolbuttons

  Alt 25. Nov 2006, 21:00
hallo adlerauge,
guter tip, danke
joseph_l
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz