AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi gesucht: Komponente des Objektexplorers von MsSql

gesucht: Komponente des Objektexplorers von MsSql

Ein Thema von Perlsau · begonnen am 28. Dez 2014 · letzter Beitrag vom 28. Dez 2014
Antwort Antwort
Perlsau
(Gast)

n/a Beiträge
 
#1

gesucht: Komponente des Objektexplorers von MsSql

  Alt 28. Dez 2014, 03:44
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.
Miniaturansicht angehängter Grafiken
mssqldbmanag.jpg   bordericons.jpg  

Geändert von Perlsau (28. Dez 2014 um 05:15 Uhr) Grund: Ergänzung nach Tests
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: gesucht: Komponente des Objektexplorers von MsSql

  Alt 28. Dez 2014, 09:30
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: gesucht: Komponente des Objektexplorers von MsSql

  Alt 28. Dez 2014, 09:42
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
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: gesucht: Komponente des Objektexplorers von MsSql

  Alt 28. Dez 2014, 10:09
Versuch doch mal folgendes:

Ein PageControl auf die Form klatschen und TPageControl.DockSite auf 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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.237 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: gesucht: Komponente des Objektexplorers von MsSql

  Alt 28. Dez 2014, 11:21
Da will ich dir auch mal helfen, da die Suchfunktion auch versagt

Von tms gibt es sowas, habe ich schon lange in Benutzung
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: gesucht: Komponente des Objektexplorers von MsSql

  Alt 28. Dez 2014, 11:26
Da will ich dir auch mal helfen, da die Suchfunktion auch versagt

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)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.237 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: gesucht: Komponente des Objektexplorers von MsSql

  Alt 28. Dez 2014, 11:32
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
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: gesucht: Komponente des Objektexplorers von MsSql

  Alt 28. Dez 2014, 11:48
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.

Da will ich dir auch mal helfen, da die Suchfunktion auch versagt
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.

Geändert von Perlsau (28. Dez 2014 um 11:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: gesucht: Komponente des Objektexplorers von MsSql

  Alt 28. Dez 2014, 12:15
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#10

AW: gesucht: Komponente des Objektexplorers von MsSql

  Alt 28. Dez 2014, 13:13
@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

* In OnClose der Subform wird ein Ereignis ausgelöst, das im Mainform den entsprechenden Haken im Menü (eigentlich in der ActionList) entfernt.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf