Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Reihenfolge der ToolButtons wird willkürlich geändert... (https://www.delphipraxis.net/49893-reihenfolge-der-toolbuttons-wird-willkuerlich-geaendert.html)

FriFra 17. Jul 2005 23:34


Reihenfolge der ToolButtons wird willkürlich geändert...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe in meinem Programm eine ToolBar it mehreren Buttons. Die Reihenfolge zur Laufzeit ist jedoch eine andere als in der IDE :roll: ... was läuft da schief und was kann man da machen?

bigg 18. Jul 2005 00:30

Re: Reihenfolge der ToolButtons wird willkürlich geändert...
 
Könnte sein, das die AutoSize-Funktion der Toolbar/ Button bei dir alles zerschiesst. :mrgreen:

DP-Maintenance 18. Jul 2005 00:47

DP-Maintenance
 
Dieses Thema wurde von "alcaeus" von "Object-Pascal / Delphi-Language" nach "VCL / WinForms / Controls" verschoben.
TToolbar => VCL ;)

FriFra 18. Jul 2005 07:40

Re: Reihenfolge der ToolButtons wird willkürlich geändert...
 
Nein, am Autosize liegt es nicht :roll: ... Ich hab Autosize gerade mal für die ToolBar und die ToolButtons deaktiviert, dass hatte keinen Einfluß auf dieses Verhalten :wall: :x :cry:

bernhard_LA 16. Apr 2017 15:40

AW: Reihenfolge der ToolButtons wird willkürlich geändert...
 
ich habe seit kurzen genau dieses Problem .... IDE und *.exe unterscheiden sich jetzt plötzlich,
Eigenschaft left der Buttons ist weiterhin richtig in der IDE

Toolbar autosize hat keinen Einfluss

ralfstocker 16. Apr 2017 19:41

AW: Reihenfolge der ToolButtons wird willkürlich geändert...
 
Die Anordung der Tooolbarbuttons auf der Toolbar hat in Delphi noch nie funktioniert. Das ist in VCL schlecht programmiert oder die Windows-API funkt da dazwischen. Vor allem bei einem Resize merkt man es sehr negativ. Da gab es schon vor über 20 Jahren einen QC. Der wurde aber nie von Borland beachtet und geschlossen.

Hier ist eine Liste mit aktuellen Toolbar-Problemen (ca. 70 Stück):
https://quality.embarcadero.com/issues/?filter=13800

Uwe Raabe 16. Apr 2017 19:42

AW: Reihenfolge der ToolButtons wird willkürlich geändert...
 
Zitat:

Zitat von bernhard_LA (Beitrag 1367871)
ich habe seit kurzen genau dieses Problem .... IDE und *.exe unterscheiden sich jetzt plötzlich,
Eigenschaft left der Buttons ist weiterhin richtig in der IDE

Toolbar autosize hat keinen Einfluss

High-DPI aktiv?

a.def 16. Apr 2017 20:03

AW: Reihenfolge der ToolButtons wird willkürlich geändert...
 
Ich konnte dieses Verhalten bisher nur bei einem ToolButton feststellen, der die DropDown-Funktion aktiviert hatte.

bernhard_LA 16. Apr 2017 20:13

AW: Reihenfolge der ToolButtons wird willkürlich geändert...
 
@ Uwe : wo finde ich High DPI Active ?



gibt es ein Tool / Komponente um die Anordnung zur Laufzeit abzuändern

Michael II 16. Apr 2017 20:25

AW: Reihenfolge der ToolButtons wird willkürlich geändert...
 
Ich nehme an, UR meint die DPIAwareness:

Du findest die DPI Einstellung in neueren Delphis unter Projekt > Optionen > Anwendung, "Hochauflösung aktivieren"

oder falls du ein eigenes Manifest verwendest eventuell dort (*<dpiAware>true</dpiAware> )

oder du könntest das Ding auch zur Laufzeit beim Programmstart aktivieren (es gibt Menschen, welche dies nicht empfehlen ;-)).

bernhard_LA 16. Apr 2017 20:49

AW: Reihenfolge der ToolButtons wird willkürlich geändert...
 
auf dem Toolbar sind ~30 Toolbutton , der Buttons.index läüft über alle Buttons .
ferner ist eine Combobox plaziert, deren Index = -1 ;

wir haben versucht in unsere Anwendung Ribbons zu implementieren, dieses Vorhaben haben wir aktuell aufgegeben.
Beim Rückbau muss sich jetzt dieser Fehler eingeschlichen haben ....

Michael II 16. Apr 2017 22:12

AW: Reihenfolge der ToolButtons wird willkürlich geändert...
 
Hast du die Formulardatei vor dem Ribbonversuch verglichen mit deiner Formulardatei nach dem Rückbau?

Die Reihenfolge der ToolButtons kannst du zur Laufzeit ändern, indem du die Eigenschaft left änderst.

1 und 2 tauschen:

l := toolbutton2.Left;
toolbutton2.Left := toolbutton1.Left;
toolbutton1.Left := l;

Ich hab's rasch mit Delphi Berlin mit 5 ToolButtons getestet - es klappt.

Wenn das auch nicht klappt, dann würde ich echt mal deine Formulardatei unter die Lupe nehmen.

bernhard_LA 17. Apr 2017 08:16

AW: Reihenfolge der ToolButtons wird willkürlich geändert...
 
in der dfm Datei steht der richtige .left wert für jeden meiner buttons

Delphi-Quellcode:
      object Button_1: TToolButton
        Left = 0
        Top = 0
 
        ImageIndex = 0
        ParentShowHint = False
        ShowHint = True
        OnClick =
      end
      object Button_1: TToolButton
        Left = 32
        Top = 0
        Hint = 'Open new project file'
        Caption = 'Open project'
        ImageIndex = 1
        ParentShowHint = False
        ShowHint = True
        OnClick =
      end
      object Button_3: TToolButton
        Left = 64
        Top = 0
        Hint = 'Close project'
        Caption = 'Close project'
        ImageIndex = 2
        ParentShowHint = False
        ShowHint = True
        OnClick = ExitClick
      end

....


vertauschen via code hätte ich schon gelöst (nach der Vorlage oben) , ich bin aber auf der Suche nach der richtigen Ursache, weil ein anderes Formular im Entwurf als dann zur Laufzeit ist natürlich Käse

Michael II 17. Apr 2017 13:26

AW: Reihenfolge der ToolButtons wird willkürlich geändert...
 
Also wenn ich du wäre, dann würde ich echt mal die alte dfm laden, jene welche noch OK war.

Zu deinem "Codeschnipsel":

1. Die "leeren" OnClick = Zeilen würde ich löschen - als ich deinen dfm Auszug bei mir lud und in ein Form verwandeln wollte, bemängelte Tokyo das Fehlen eines objects im dfm nach Fileende. Als ich die Zeilen löschte war diese Fehlermeldung weg. Es wurde aber nicht besser:

2. Noch etwas "schlimmer" ist, dass du zwei ToolButtons gleich bennennst. Du hast zwei Mal eine Definition für object Button_1: TToolButton. Auch hier motzt Tokyo (zurecht), dass das nicht OK sein könnte.

Neben Tokyo würden es wohl auch andere Delphi Versionen so halten ;-).

Prüf mal, ob das Löschen der leeren Ereignisse und der Leerzeilen im dfm und das Umbenennen des einen Buttons hilft.


Wenn das oben nix bringt, dann schreib doch einfach eine kleine Sortierprozedur, welche du im initialization Teil deiner Form aufrufst. Solange die Buttons 1,1,3,4,5 (kleiner Joke), .... eh Sorry 1,2,3,4,5,.... heissen ist das ja ein Werk von Minuten.


Viel Spass.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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