Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   gesucht: Komponente des Objektexplorers von MsSql (https://www.delphipraxis.net/183284-gesucht-komponente-des-objektexplorers-von-mssql.html)

Perlsau 28. Dez 2014 02:44


gesucht: Komponente des Objektexplorers von MsSql
 
Liste der Anhänge anzeigen (Anzahl: 2)
Moin allerseits,

hat jemand von euch eine Ahnung oder gar sichere Kenntnisse davon, mit welcher Komponente die Fenster im Microsoft SQL Server Management Studio dargestellt werden? Man kann das Fenster andocken, die Verankerung wieder aufheben, das Ding automatisch in den Hintergrund schicken und es sogar "als Dokument im Registerkartenformat andocken". Ich würde gerne so etwas Ähnliches im aktuellen Projekt einsetzen, habe im Moment aber keinen Plan, was das für ein "Ding" ist.

Edit: Ich muß mich korrigieren. Das Fenster ist natürlich ein Formular mit Parent auf das Hauptformular und Align auf alLeft, wenn's angedockt ist. Jetzt muß ich nur noch irgendwie dafür sorgen, die entsprechenden Border-Icons zu zeichnen. Zwei TJvCaptionButton hab ich mal testweise auf das Formular geschoben, die werden aber zur Runtime nicht angezeigt, egal welchen Borderstyleich wähle.

Das erste Bild ist ein Screenshot vom Managementstudio, das andere oben "mein" Objektbrowser zur Laufzeit, unten zur Designtime.

Sir Rufo 28. Dez 2014 08:30

AW: gesucht: Komponente des Objektexplorers von MsSql
 
Es muss gar kein Formular sein, ein Panel kann das genau so. Wenn es nur um das Docken geht, dann ist sogar jedes Control dazu fähig gedockt zu werden.

Perlsau 28. Dez 2014 08:42

AW: gesucht: Komponente des Objektexplorers von MsSql
 
Zitat:

Zitat von Sir Rufo (Beitrag 1284831)
Es muss gar kein Formular sein, ein Panel kann das genau so. Wenn es nur um das Docken geht, dann ist sogar jedes Control dazu fähig gedockt zu werden.

Das ist natürlich richtig. Doch dient mir die Form mit der Mainform als Parent zum Kapseln eines VirtualStringTrees, der wiederum zur Steuerung dienen soll. Und da ist es schon ganz nett – sprich: übersichtlich –, wenn man das alles sauber in einem extra Formular (und vor allem in einer extra Unit) hat.

Nachdem ich die halbe Nacht nach einer Lösung für das Problem gesucht habe, daß das selbstentworfene BorderIcon via CaptionButton nicht angezeigt wird, hab ich mich entschlossen, die Form vorerst fix einzubinden und via Menüsteuerung der Hauptform ein- und auszublenden. Wäre halt nett gewesen, wenn man das Dingens frei verschieben könnte und bei Bedarf an- oder abdocken. Es gibt schon Komponenten, die das auf einfachste Weise zu bieten scheinen, aber Geld will ich dafür nicht ausgeben. Und ich kann mich ja nicht ewig bei diesem "kleinen" Problem aufhalten :roll:

Sir Rufo 28. Dez 2014 09:09

AW: gesucht: Komponente des Objektexplorers von MsSql
 
Versuch doch mal folgendes:

Ein PageControl auf die Form klatschen und
Delphi-Quellcode:
TPageControl.DockSite
auf
Delphi-Quellcode:
True
.
Dann irgendwo einen Button, der beim Klick dann das hier ausführt:
Delphi-Quellcode:
procedure TForm1.Button1Click( Sender: TObject );
var
  LPanel: TPanel;
begin
  LPanel := TPanel.Create( Self );
  LPanel.ShowCaption := False;
  LPanel.Caption := 'Test';
  LPanel.DragKind := TDragKind.dkDock;
  LPanel.DragMode := TDragMode.dmAutomatic;

  // Damit kann man rumspielen und ein eigenes DockForm unterjubeln
  LPanel.FloatingDockSiteClass := TCustomDockForm;

  // direkt ans PageControl docken
  // LPanel.ManualDock( PageControl1, nil, alClient );

  // Irgendwohin frei schwebend klatschen lassen
  LPanel.ManualFloat( Self.ClientRect );
end;
Die Form die dann erscheint verschieb mal in Richtung des PageControls. Irgendwann dockt die dann dort an ;)

arnof 28. Dez 2014 10:21

AW: gesucht: Komponente des Objektexplorers von MsSql
 
Da will ich dir auch mal helfen, da die Suchfunktion auch versagt :-D

Von tms gibt es sowas, habe ich schon lange in Benutzung

Sir Rufo 28. Dez 2014 10:26

AW: gesucht: Komponente des Objektexplorers von MsSql
 
Zitat:

Zitat von arnof (Beitrag 1284838)
Da will ich dir auch mal helfen, da die Suchfunktion auch versagt :-D

Von tms gibt es sowas, habe ich schon lange in Benutzung

Und das gibt es von denen kostenlos? (der TE möchte dafür kein Geld ausgeben) ;)

arnof 28. Dez 2014 10:32

AW: gesucht: Komponente des Objektexplorers von MsSql
 
http://tmssoftware.com/site/panels.asp

Tms Tool Panel

Kostenlos nicht aber tms ist echt nicht teuer ... Updates gibt über Jahre kostenfrei da kann man nicht meckern

Perlsau 28. Dez 2014 10:48

AW: gesucht: Komponente des Objektexplorers von MsSql
 
Zitat:

Zitat von Sir Rufo (Beitrag 1284833)

Das Andocken ist nicht das eigentliche Problem, sondern der zusätzliche Button in der Titelleiste des Sub-Forms. Meine Idee bestand darin, diesen Pin mit der Nadel nach unten anzuzeigen, wenn das Form nicht angedockt ist, und das Pin mit der Nadel nach links bzw. rechts im angedockten Zustand, sozusagen arretiert. Angedockt werden soll immer nur links oder rechts im Hauptformular. Dazu benötige ich die eigentlichen Andock-Funktionen nicht, sondern kann einfach sagen Align := alLeft oder Align := alRight bzw. alNone für nicht angedockt. Im nicht angedockten Zustand soll man das Sub-Form frei verschieben können. Und im angedockten Zustand soll man ein zweites Subform maximieren können. Sind weitere Subforms neben dem ersten und zweiten aktiv, soll man die untereinander anordnen können (statt maximieren). Und im Hauptmenü der Mainform, im Fenstermenü werden alle Fenster eingetragen, damit man wieder drankommt, wenn sie verdeckt sind. Das aktive Fenster wird durch das Checked-Property gekennzeichnet.

Zitat:

Zitat von arnof (Beitrag 1284838)
Da will ich dir auch mal helfen, da die Suchfunktion auch versagt :-D
Von tms gibt es sowas, habe ich schon lange in Benutzung
Tms Tool Panel
Kostenlos nicht aber tms ist echt nicht teuer ... Updates gibt über Jahre kostenfrei da kann man nicht meckern

Danke, aber das ist nicht, was ich benötige und kostet zudem 75 Euro.

Sir Rufo 28. Dez 2014 11:15

AW: gesucht: Komponente des Objektexplorers von MsSql
 
Zum einen wird ja diese Leiste mit dem Buttons ein- und ausgeblendet, je nachdem ob das Dingen da frei herumfliegt (Float) oder angedockt ist (Docked).

das würde z.B. so gehen
Delphi-Quellcode:
unit DockPanel;

interface

uses
  System.Types, { TRect }
  Vcl.Controls,
  Vcl.ExtCtrls;

type
  TDockPanel = class( TPanel )
  private
    FHead: TPanel;
  protected
    procedure DoDock( NewDockSite: TWinControl; var ARect: TRect ); override;

  public
    procedure AfterConstruction; override;
  end;

implementation

{ TDockPanel }

procedure TDockPanel.AfterConstruction;
begin
  inherited;
  // Ein ganz billiges Head-Dingen zum zeigen
  FHead := TPanel.Create( Self );
  FHead.Align := alTop;
  FHead.Height := 10;
  FHead.Caption := 'Head';
  FHead.Parent := Self;
  FHead.Visible := True;
end;

procedure TDockPanel.DoDock( NewDockSite: TWinControl; var ARect: TRect );
begin
  inherited;
  // Je nchdem, wo wir gedockt sind, ein- oder ausblenden
  FHead.Visible := not( NewDockSite is FloatingDockSiteClass );
end;

end.
Jetzt fehlt also nur noch das Ein- und Ausblenden im angedockten Zustand, wo also das DockPanel mit der DockSite sprechen muss

Perlsau 28. Dez 2014 12:13

AW: gesucht: Komponente des Objektexplorers von MsSql
 
@Sir Rufo: Nichts gegen deinen Vorschlag, aber die Lösung mit dem Sub-Formular gefällt mir besser, da hab ich eine Titelleise, kann auf OnShow und OnClose* reagieren und alles in einer Extra-Unit. Ich laß das Dingens jetzt links angedockt. Wenn ich dann irgendwann eine Möglichkeit finde, einen zusätzlichen Button in der Titelleiste unterzubringen (derzeit nur der Close-Button bei BorderStyle := bsSizeToolWin), kann ich das später immer noch ändern.

Danke für deine Mühe :thumb:

* In OnClose der Subform wird ein Ereignis ausgelöst, das im Mainform den entsprechenden Haken im Menü (eigentlich in der ActionList) entfernt.


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