Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dialog wird an falscher Stelle angezeigt (https://www.delphipraxis.net/17495-dialog-wird-falscher-stelle-angezeigt.html)

Kinimod8 7. Mär 2004 08:26


Dialog wird an falscher Stelle angezeigt
 
Delphi-Quellcode:
function OpenSaveFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir, Title: string; var FileName: string; IsOpenDialog: Boolean): Boolean;
var
  ofn: TOpenFileName;
  szFile: array[0..MAX_PATH] of Char;
begin
  Result := False;
  FillChar(ofn, SizeOf(TOpenFileName), 0);
  with ofn do
  begin
    lStructSize := SizeOf(TOpenFileName);
    hwndOwner := ParentHandle;
    lpstrFile := szFile;
    nMaxFile := SizeOf(szFile);
    if (Title <> '') then
      lpstrTitle := PChar(Title);
    if (InitialDir <> '') then
      lpstrInitialDir := PChar(InitialDir);
    StrPCopy(lpstrFile, FileName);
    lpstrFilter := PChar(CharReplace(Filter, '|', #0)+#0#0);
    if DefExt <> '' then
      lpstrDefExt := PChar(DefExt);
  end;
  if IsOpenDialog then
  begin
    if GetOpenFileName(ofn) then
    begin
      Result := True;
      FileName := StrPas(szFile);
    end;
  end
  else
  begin
    if GetSaveFileName(ofn) then
    begin
      Result := True;
      FileName := StrPas(szFile);
    end;
  end
end;
Mit diesem Code kann man einen Dialog mit den neuesten Features anzeigen...

Leider wird der Dialog ganz unten rechts und nicht in der Mitte angezeigt :(
Wie kann ich erreichen, dass er in der Mitte gezeigt wird?

fkerber 7. Mär 2004 10:28

Re: Dialog wird an falscher Stelle angezeigt
 
Hi!

Ich wollte deinen Code mal testen, werde allerdings mit Fehlermeldungen überhäuft.
Was muss noch in die Uses?

Zitat:

Zitat von Delphi
[Fehler] Unit1.pas(38 ): Undefinierter Bezeichner: 'TOpenFileName'
[Fehler] Unit1.pas(45 ): Undefinierter Bezeichner: 'lStructSize'
[Fehler] Unit1.pas(46 ): Undefinierter Bezeichner: 'hwndOwner'
[Fehler] Unit1.pas(47 ): Undefinierter Bezeichner: 'lpstrFile'
[Fehler] Unit1.pas(48 ): Undefinierter Bezeichner: 'nMaxFile'
[Fehler] Unit1.pas(50 ): Undefinierter Bezeichner: 'lpstrTitle'
[Fehler] Unit1.pas(52 ): Undefinierter Bezeichner: 'lpstrInitialDir'
[Fehler] Unit1.pas(54 ): Undefinierter Bezeichner: 'lpstrFilter'
[Fehler] Unit1.pas(54 ): Undefinierter Bezeichner: 'CharReplace'
[Fehler] Unit1.pas(56 ): Undefinierter Bezeichner: 'lpstrDefExt'
[Fehler] Unit1.pas(60 ): Undefinierter Bezeichner: 'GetOpenFileName'
[Fehler] Unit1.pas(68 ): Undefinierter Bezeichner: 'GetSaveFileName'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

Ciao fkerber

mirage228 7. Mär 2004 10:40

Re: Dialog wird an falscher Stelle angezeigt
 
Delphi-Quellcode:
uses Windows, Messages
mfG
mirage228

fkerber 7. Mär 2004 10:48

Re: Dialog wird an falscher Stelle angezeigt
 
Liste der Anhänge anzeigen (Anzahl: 1)
HI!

@Mirage228:

Gehts dann bei dir?
Die 2 sind nämlich drin und es geht nicht.

Ich häng meine Pas mal an.

Ciao fkerber

mirage228 7. Mär 2004 11:59

Re: Dialog wird an falscher Stelle angezeigt
 
Ähm, sorry!

Es muss die Unit "CommDlg" sein. (Wie in Luckies Win32API Tuts beschrieben, Seite 43 ff.)

Ausserdem habe ich die Funktion CharReplace nicht, ich habe sie durch StringReplace ersetzt.

mfG
mirage228

fkerber 7. Mär 2004 12:05

Re: Dialog wird an falscher Stelle angezeigt
 
Hi!

Danke für die Antwort @mirage.

@Kinimod:

Bei mir wird der Dialog schön in der Mitte angezeigt, so wie es wohl sein sollte.

Ciao fkerber

Kinimod8 7. Mär 2004 18:07

Re: Dialog wird an falscher Stelle angezeigt
 
Ist ja komisch...

Bei mir gehts nicht so :(

Kinimod8 7. Mär 2004 18:13

Re: Dialog wird an falscher Stelle angezeigt
 
Oops :oops:
ich habe ein wenig vom Code weggelassen...

Vollständig hier

Hilft aber trotzdem nicht weiter :wall:

mschaefer 7. Mär 2004 18:21

Re: Dialog wird an falscher Stelle angezeigt
 
Moin, ah N´abend

Also, würde mal bei Borland schauen ob es für D3 dort Updates gibt.
Das scheint doch was mit der internen Organisation zu tun haben.
Sonst kannst Du nur über das Windows-Handle die Position des Dialogs neu
setzen.

Grüße // Martin

Kinimod8 8. Mär 2004 06:53

Re: Dialog wird an falscher Stelle angezeigt
 
Zitat:

Zitat von mschaefer
Sonst kannst Du nur über das Windows-Handle die Position des Dialogs neu
setzen.

Und wie geht das genau :roteyes:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 Uhr.
Seite 1 von 3  1 23      

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