AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Dialog an bestimmter Stelle erscheinen lassen
Thema durchsuchen
Ansicht
Themen-Optionen

Dialog an bestimmter Stelle erscheinen lassen

Ein Thema von Delbor · begonnen am 9. Jul 2018 · letzter Beitrag vom 10. Jul 2018
 
Delbor

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

Dialog an bestimmter Stelle erscheinen lassen

  Alt 9. Jul 2018, 20:07
Delphi-Version: 10.2 Tokyo
Hi zusammen

Zur Zeit arbeite ich an einer Einstellungsseite. Aktuell sollen verschiedenen (SQLite-) Datenbankpfade definiert werden können, die in einem StringGrid angezeigt werden.
Ursprünglich wollte ich mit Selectdirectory arbeiten, hab das aber ziemlich schnell wieder verworfen.
So hab ich mir denn einen eigenen FolderDialogFrame gebaut (TFileSearcher, der nur die Ordner findet). Angezeigt wird dieser, auf einem Fenster klebend, so:
Delphi-Quellcode:
function TSettingsFrame.CreateFolderDlg: String;
  var FolderDlg : TFolderDialog;
begin
  FolderDlg := TFolderDialog.Create(Self);
  try
    FolderDlg.SelectDirectoryFrame1.FileSearcher1.RootDir := 'C:\';
    FolderDlg.Left := ClientToScreen(); //<==
    if FolderDlg.ShowModal = mrOK then
      Result := FolderDlg.FolderName;
  finally
    FreeAndNil(FolderDlg);
  end;
end;
TFolderDialog ist ein normales Fenster, das Modal angezeigt werden soll. TSettingsFrame ist der Basisframe, von dem eine Instanz auf der Mainform platziert wurde. Wo auf dieser Form er angelegt wird/werden muss, darf nicht bestimmend sein - der durch obige function erzeugte FolderDialog darf den aufrufenden SettingsFrame aber nicht verdecken, höchstens jedoch etwas anschneiden, sollte aber auch nicht komplett unabhängig von der Position des Aufrufers angeziegt werden.

Im Anhang noch 2 jpegs, die die Mainform normal und Maximized mit jeweils Mainformzentriertem Dialog zeigen. Die Lösung mit demm Positionproperty ist mir nachträglich eingefallen - wirklich befriedigend ist sie aber nicht. Das Stringgrid sollte im Endeffekt gross genug sein, um einen kompletten Pfad anzuzeigen (der in Node.Data meines TFolderFrames steht).

Hat jemand eine Idee für eine befriedigendere Lösung?

Gruss
Delbor
Angehängte Grafiken
Dateityp: jpg 20_25_59-MainformCenterNormal.jpg (102,0 KB, 52x aufgerufen)
Dateityp: jpg MainformCenterMaximized.jpg (63,7 KB, 34x aufgerufen)
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
 


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:54 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