AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ausrichtung des Splitters unter Dot.Net

Ein Thema von Delbor · begonnen am 9. Dez 2006 · letzter Beitrag vom 12. Dez 2006
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#1

Re: Ausrichtung des Splitters unter Dot.Net

  Alt 12. Dez 2006, 13:39
Hi zusammen

@ Elvis: Dein Hinweis hat mir sehr geholfen! Danke! Nun sieht die Sache wie folgt aus:
Delphi-Quellcode:
procedure TWinForm.MenItemFourCells_Click(sender: System.Object; e: System.EventArgs);
   var Pnl : System.Windows.Forms.Panel; RTFEdit: System.Windows.Forms.RichTextBox;SPL:System.Windows.Forms.Splitter;
       i: integer;
begin
   Pnl := PanelCreate(Pnl);
   Pnl.BringToFront;
   CreateHSplitter(SPL);
   SPL.BringToFront;
Damit wird bei jedem Proceduraufruf ein Panel erzeugt, an dessen unterem Rand aussen ein horizontaler Splitter klebt.Eine Besonderheit gibt's dabei allerdings: das oder die Panel(s) lassen sich zur Laufzeit nur so lange vergrössern, bis der unterste Rand den bei Dockpadding festgelegten Wert erreicht haben. Erstelle ich zur Laufzeit mehr Panels, als im Clientbereich angezeigt werden können, werden die Scrollbars aktiviert, und ich kann ohne Probleme scrollen - nur die Splitter funktionieren nicht mehr; das heisst, ich kann die Hoehe der Panels nicht mal mehr verkleinern.
Das aber eigentlich mehr so am Rande.
Vielmehr erstaunt mich nun folgendes:
Delphi-Quellcode:
      case i of
      1: begin
            ...........
            RTFEdit.Anchor := AnchorStyles.Top or AnchorStyles.Left or AnchorStyles.Bottom;;
            Pnl.Controls.Add(RTFEdit);
            RTFEdit.BringToFront; //
            CreateVSplitter(SPL);
            Pnl.Controls.Add(SPL);
            SPL.BringToFront; // //
         end;
in solchen Anweisungsblöcken erstelle ich pro Panel bis zu 4 RichEdits. Da ich jetzt auch gerne die Länge der einzelnen Edits zur Laufzeit ändern können möchte, füge ich auch hier Splitter dazu. Und zwar sollte der Spitter jeweils am zuletzt erstellten Edit kleben. Das tun die 'lieben Splitterchen' aber beileibe nicht. Stattdessen kleben sie Left am Panel, schön aufgereiht wie eine Perlenschnur. Und zwar hinter oder vor den Edits, je nachdem, ob ich einen oder beide der oben gezeigten 'BringtoFront'-Aufrufe ausklammere oder nicht

Da lob ich mir doch das gute alte Clientsystem von Borland!

Weiss jemand eine Antwort auf dieses merkwürdig Verhalten?
Zitat:
Ein Control wird immer"obendrauf" eingefügt. Dadurch landet es auch ganz oben wenn alle Controls DockStyle.Top haben.
Ich habe versuchsweise auch alle BringtoFront-Aufrufe durch SendoBack ersetzt - mit dem selben Effekt: alle Splitter kleben ganz links am Container, nur das sie jetzt unter den Edits angeordnet sind.

Für eure Antworten schon mal vielen Dank!

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  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 18:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz