AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TOpendialog verändern

Ein Thema von NikoMitDaMacht · begonnen am 7. Sep 2004 · letzter Beitrag vom 8. Sep 2004
Antwort Antwort
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#1

TOpendialog verändern

  Alt 7. Sep 2004, 18:22
Wie kann ich einen OpenDialoge verändern?
Ich will ein weiters edit-feld für parameter draufsetzen!
Wie komm ich da dran?
Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: TOpendialog verändern

  Alt 7. Sep 2004, 19:02
Sieh dir mal die Unit extdlgs oder so an, die, in der TOpenPictureDialog drin ist. Der ist nämlich so eine Modifizierung des "normalen" OpenPictureDialogs.

Falls du keine Delphi-Sources hast, kann ich dir ja die von D3 geben, frag mich einfach per PN.
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: TOpendialog verändern

  Alt 7. Sep 2004, 19:09
Delphi-Quellcode:
procedure TForm1.OpenDlgOnShow(Sender: TObject);
var
  hParent: THandle;
  rect: TRect;
  hEdit: THandle;
begin
  hParent := GetParent(OpenDialog1.Handle);
  GetWindowRect(hParent, rect);
  SetWindowPos(hParent, 0, 0, 0, rect.Right - rect.Left, rect.Bottom - rect.Top
    + 25, SWP_NOMOVE);
  hEdit := CreateWindowEx(WS_EX_CLIENTEDGE, 'EDIT', '', WS_VISIBLE or WS_CHILD,
    195, 318, 150, 20, hParent, 101, 0, nil);
  if hEdit = 0 then
    RaiseLastOSError;
end;

procedure TForm1.OpenDlgOnClose(Sender: TObject);
var
  hParent: THandle;
  hEdit: THandle;
  Buffer: PChar;
  len: Integer;
begin
  hParent := GetParent(OpenDialog1.Handle);
  hEdit := GetDlgItem(hParent, 101);
  len := SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0);
  GetMem(Buffer, len+1);
  try
    SendMessage(hEdit, WM_GETTEXT, len, lParam(Buffer));
    ShowMessage(Buffer);
  finally
    FreeMem(Buffer, len+1);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenDialog1.OnShow := OpenDlgOnShow;
  OpenDialog1.OnClose := OpenDlgOnClose;
  if OpenDialog1.Execute then
  begin
    ShowMessage(OpenDialog1.FileName);
  end;
end;
So geht's.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: TOpendialog verändern

  Alt 7. Sep 2004, 19:25
Zitat von FAlter:
Falls du keine Delphi-Sources hast, kann ich dir ja die von D3 geben, frag mich einfach per PN.
Die Weitergabe der Quellcodes verstößt gegen die Lizenz.

Desweiteren wird das nur ein Aufruf einer API Funktion aus der DLL ComDlg.dll sein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: TOpendialog verändern

  Alt 7. Sep 2004, 20:16
Zitat von Luckie:
Die Weitergabe der Quellcodes verstößt gegen die Lizenz.
Hm, ich habe aber in Foren schön öfters solche Codeschnipsel gefunden, die aus solchen Units kommen.
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: TOpendialog verändern

  Alt 7. Sep 2004, 20:21
Du kannst nicht nachweisen, dass der Poster das nicht selber geschrieben hat. Aber darüber wünsche ich hier keine Diskussion. Hier wurde es klar und deutlich anboten und du wurdest gemäß den Forenregeln belehrt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: TOpendialog verändern

  Alt 8. Sep 2004, 11:15
Klasse!
Das problem nur der letzte buchstabe der edit wird abgeschnitten!

Und wie kann ich noch ein label drauf setzten?

Aber danke schonmal
Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: TOpendialog verändern

  Alt 8. Sep 2004, 11:20
Da
Code:
SendMessage(hEdit, WM_GETTEXT, len[color=red][b]+1[/b][/color], lParam(Buffer));
hat ein +1 gefehlt.

Die API-Fensterklasse eines Labels ist STATIC.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:57 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