AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls [FMX] Splitter in einem bestimmten Bereich verschieben
Thema durchsuchen
Ansicht
Themen-Optionen

[FMX] Splitter in einem bestimmten Bereich verschieben

Ein Thema von RWarnecke · begonnen am 8. Jul 2013 · letzter Beitrag vom 10. Jul 2013
Antwort Antwort
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.365 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: [FMX] Splitter in einem bestimmten Bereich verschieben

  Alt 9. Jul 2013, 23:07
Oh, ich kann Dein Formular mit XE3 gar nicht öffnen. Da ist offenbar noch einiges geschraubt worden.

Für die erste Frage kannst Du vielleicht TSplitter überschreiben und Grenzwerte für X+Y festlegen.
Die sind natürlich evtl. etwas schwierig zu ermitteln.
Alternativ könntest Du eine Ereignisbehandlung OnIsSplitterInRange ausführen und wenn False zurückgeliefert wird Veränderungen verweigern.
Delphi-Quellcode:
procedure TSplitter.MouseMove(Shift: TShiftState; X, Y: Single);
var
  NewSize, Split: Single;
  RangeResult: Boolean;
begin
  inherited;
  if FPressed and Assigned(FControl) then
  begin
// X und Y "korrigieren"
// if Assigned(fOnIsSplitterInRange) then
// begin
// fOnIsSplitterInRange(Self, RangeResult);
// if not RangeResult then Exit;
// end; ... irgendwie sowas
    CalcSplitSize(X, Y, NewSize, Split);
    if DoCanResize(NewSize) then
    begin
      FNewSize := NewSize;
      FSplit := Split;
      UpdateControlSize;
    end;
  end;
end;
Constraints für Deine Panels gibt es noch nicht - oder?
Evtl. deren Breite immer wieder auf einen Maximalwert setzen?

So ganz verstehe ich Deine Fragen aber noch nicht. Kann morgen Abend das mal unter XE3 nachbauen...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#2

AW: [FMX] Splitter in einem bestimmten Bereich verschieben

  Alt 9. Jul 2013, 23:19
Hallo Andre,

danke erstmal für Deine Antwort.

Für die erste Frage kannst Du vielleicht TSplitter überschreiben und Grenzwerte für X+Y festlegen.
Die sind natürlich evtl. etwas schwierig zu ermitteln.
Die X und Y Werte ist nur die Position der Maus innerhalb des Splitters.

Alternativ könntest Du eine Ereignisbehandlung OnIsSplitterInRange ausführen und wenn False zurückgeliefert wird Veränderungen verweigern.
Das habe ich ja schon mit meinen beiden Procedure's erreicht.

Constraints für Deine Panels gibt es noch nicht - oder?
Nein, ein Contraints gibt es für keine Komponente.

Ich habe mal eine EXE angehängt, die mein Problem vielleicht etwas verdeutlicht.
Angehängte Dateien
Dateityp: zip Project1.zip (1,63 MB, 1x aufgerufen)
Rolf Warnecke
App4Mission
  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 05:31 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