AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TBX: Floatingwechsel macht Dockprobleme
Thema durchsuchen
Ansicht
Themen-Optionen

TBX: Floatingwechsel macht Dockprobleme

Ein Thema von Nils_13 · begonnen am 9. Jan 2007 · letzter Beitrag vom 10. Jan 2007
Antwort Antwort
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

TBX: Floatingwechsel macht Dockprobleme

  Alt 9. Jan 2007, 12:34
Hi,

es ist mit dem Code (unten) nur möglich, 1x fehlerfrei, mit einem TBXDockablePanel, zwischen Docked und Undocked zu wechseln: Beim 1. Mal wird es aus dem Dock genommen und auch wieder in den vorherigen (es werden am Ende mehrere TBXDockablePanels sein) Dock zurückgesetzt [gewünscht]. Beim 2. Mal wird es, wie gewünscht, herausgenommen, aber an die Position 0 (X) und 0 (Y) der Form gesetzt, obwohl es wieder in den Dock zurück soll, in dem es zuvor war [ungewünscht]. Ich sehe meinen Fehler nicht, sieht ihn jemand von euch ?
Delphi-Quellcode:
  private
    olddock : TTBDock;

[...]

procedure TfrmMain.Button3Click(Sender: TObject);
begin
  // tbxdp_std = TBXDockablePanel
  olddock := tbxdp_std.CurrentDock;
  tbxdp_std.Floating := True;
end;

procedure TfrmMain.Button4Click(Sender: TObject);
begin
  // tbxdp_std = TBXDockablePanel
  tbxdp_std.Dock(olddock, olddock.ClientRect);
  tbxdp_std.Floating := False;
end;
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#2

Re: TBX: Floatingwechsel macht Dockprobleme

  Alt 10. Jan 2007, 17:50
Keiner eine Idee ? Wenn bei der Frage eine Unklarheit besetehen sollte, dann sagt diese bitte.


*** edit 10.01.07/21:57 ***
Habe es so hinbekommen:
Delphi-Quellcode:
procedure TfrmMain.cbFloatingChange(Sender: TObject);
var i : Integer;
begin
  if cbFloating.ItemIndex = 0 then
  begin
    for i := 0 to ComponentCount - 1 do
    begin
      if Components[i] is TTBXDockablePanel then
      begin
        (Components[i] as TTBXDockablePanel).Floating := False;
        (Components[i] as TTBXDockablePanel).CurrentDock:=(Components[i] as TTBXDockablePanel).DefaultDock;
      end;
    end;
  end else
  begin
    for i := 0 to ComponentCount - 1 do
    begin
      if not (Components[i] = tbxdp_std) then // eine kleine Einschränkung, welche man natürlich weglassen könnte
      begin
        if Components[i] is TTBXDockablePanel then
        begin
          (Components[i] as TTBXDockablePanel).Floating := True;
        end;
      end;
    end;
  end;
end;
  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 21:08 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