openDialog nicht in Bildschirmmitte
-
- Beiträge: 13
- Registriert: Fr 11. Mai 2012, 21:06
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
openDialog nicht in Bildschirmmitte
Hallo,
ich programmiere eine kleine Anwendung, die auf einem kleinen Industrie-Touchpanel-PC ausgeführt wird (Win XP embedded) Die Auflösung ist 800 x 600 Pixel. Der normale OpenDialog ist sehr groß. Erstens müßte der kleiner und zweitens darf der nicht in der Bildschirmmitte hin, weil sonst die virtuelle Tastatur nicht hinpasst. Wie kann ich das hinkriegen? Für die Position finde ich keine Eigenschaften und auf die Height Eigenschaft reagiert das nicht. Der Dialog bleibt immer so groß.
Mfg
Torsten
ich programmiere eine kleine Anwendung, die auf einem kleinen Industrie-Touchpanel-PC ausgeführt wird (Win XP embedded) Die Auflösung ist 800 x 600 Pixel. Der normale OpenDialog ist sehr groß. Erstens müßte der kleiner und zweitens darf der nicht in der Bildschirmmitte hin, weil sonst die virtuelle Tastatur nicht hinpasst. Wie kann ich das hinkriegen? Für die Position finde ich keine Eigenschaften und auf die Height Eigenschaft reagiert das nicht. Der Dialog bleibt immer so groß.
Mfg
Torsten
www.singleboerse-tipp.de - kostenloser Vergleich von Singlebörsen und Partnerbörsen
Re: openDialog nicht in Bildschirmmitte
So einfach geht das afaik nicht, ist aber kein Lazarus Problem.
Vllt. kannst du unter Windows was mit FindWindow und SetWindowPos machen. S.a.
http://stackoverflow.com/questions/1256 ... filedialog" onclick="window.open(this.href);return false;
Vllt. kannst du unter Windows was mit FindWindow und SetWindowPos machen. S.a.
http://stackoverflow.com/questions/1256 ... filedialog" onclick="window.open(this.href);return false;
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: openDialog nicht in Bildschirmmitte
Das ist so ein spezielles Anwendungsgebiet, dass es sich vielleicht sogar lohnen würde, einen eigenen OpenDialog zu implementieren (es sei denn, man will das XP-look'nFeel behalten)elcomportal hat geschrieben:Hallo,
ich programmiere eine kleine Anwendung, die auf einem kleinen Industrie-Touchpanel-PC ausgeführt wird (Win XP embedded) Die Auflösung ist 800 x 600 Pixel.
-
- Beiträge: 13
- Registriert: Fr 11. Mai 2012, 21:06
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: openDialog nicht in Bildschirmmitte
Hmm, an einen eigenen Dialog hatte ich auch schon gedacht, aber irgendwie kriege ich die Verzeichnisauswahl nicht hin. Der Baum wird angezeigt, aber wie komme ich wieder eine Ebene höher? XP-Look muss nicht unbedingt sein, aber ganz so altbacken wie Win 3.1 wäre auch nicht so gut. Einen eigenen Dialog wäre gut, aber da bräuchte ich mal etwas Hilfe. Es muss ja kein eigenes Dialogfenster sein. Ichkann das ja in die Mainform einbauen.
VG
Torsten
VG
Torsten
www.singleboerse-tipp.de - kostenloser Vergleich von Singlebörsen und Partnerbörsen
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: openDialog nicht in Bildschirmmitte
Nimm ein ShellTreeView und mach folgendes;
Die Funktion ist bis jetzt auf Windows beschränkt (weil wenn nur 1 Node da ist, dann ist das das C: , D: , ... Verzeichnis. Da muss aber noch ein "/" angehängt werden, bei Linux muss zum "\" verzeichnis kein weiteres "\" angehängt werden...)
Funktion kannst du verwenden wie du willst
Die Funktion ist bis jetzt auf Windows beschränkt (weil wenn nur 1 Node da ist, dann ist das das C: , D: , ... Verzeichnis. Da muss aber noch ein "/" angehängt werden, bei Linux muss zum "\" verzeichnis kein weiteres "\" angehängt werden...)
Funktion kannst du verwenden wie du willst

Code: Alles auswählen
function Getfullpath(aNode:TTreeNode):string;
var
par:TTreeNode;
begin
if aNode = nil then exit;
result := aNode.Text;
par := aNode.Parent;
if not assigned(par) then result += PathDelim;
while par <> nil do
begin
result := par.Text + PathDelim + result;
par := par.Parent;
end;
end;
Code: Alles auswählen
Signatur := nil;
-
- Beiträge: 13
- Registriert: Fr 11. Mai 2012, 21:06
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: openDialog nicht in Bildschirmmitte
Hi,
danke! ShellTreeView ist das was ich brauche. Dann baue ich in mein Formular direkt den OpenDialog ein. Ohne extra Fenster. Aber die Funktion, was bewirkt die und wie muss ich das aufrufen?
Danke.
VG
Torsten
danke! ShellTreeView ist das was ich brauche. Dann baue ich in mein Formular direkt den OpenDialog ein. Ohne extra Fenster. Aber die Funktion, was bewirkt die und wie muss ich das aufrufen?
Danke.
VG
Torsten
www.singleboerse-tipp.de - kostenloser Vergleich von Singlebörsen und Partnerbörsen
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: openDialog nicht in Bildschirmmitte
Naja, wenn du dir nen Shellview anschaust siehst du das ein Eintrag zum Beispiel
Test heißt.
Wählt der Mensch aber Test aus so meint er nicht den Pfad"Test" sondern "C:/Hierstehtwas/Test". "Test" ist nur der Namen des untersten Eintrag.
Die Funktion gibt dir einfach den Gesamtpfad an von dem Node den du wissen willst.
Test heißt.
Wählt der Mensch aber Test aus so meint er nicht den Pfad"Test" sondern "C:/Hierstehtwas/Test". "Test" ist nur der Namen des untersten Eintrag.
Die Funktion gibt dir einfach den Gesamtpfad an von dem Node den du wissen willst.
Code: Alles auswählen
Signatur := nil;
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: openDialog nicht in Bildschirmmitte
Das ist echt ein Problem unter XP. Windows Vista und 7 haben diese Adressleiste mit den "Klickbuttons". Da ich unter XP diese vermisste, habe ich sie als Frame implementiert. Die könnte bei der Implementierung eines kleineren Dialogs ehr nützlich sein, wenn man sie mit einer ShellTreeView kombiniert (habe ich so gemacht). Du bekommst den Dialog kleiner, ohne Navigationsmöglichkeiten zu verlieren. Im Großen und Ganzen erfüllt meine Komponente PathBarFrame die Funktion wie erwartet. Wenn du daran interessiert bist, hänge ich den Quelltext an.elcomportal hat geschrieben:Hallo,
(...) Der normale OpenDialog ist sehr groß. Erstens müßte der kleiner und zweitens darf der nicht in der Bildschirmmitte hin, weil sonst die virtuelle Tastatur nicht hinpasst. Wie kann ich das hinkriegen? (...)
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning