Autor |
Beitrag |
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: So 10.07.05 17:44
Kann man den SaveDialog um ein weiteres Element erweitern? Ich bräuchte in diesem Dialog eine Checkbox, wo man eine Option, die beim Speichern benötigt wird, auswählen kann. Diese Box sollte unter dem Feld sein, wo man den Dateinamen angeben kann.
Ich könnte zwar auch den "Dateitypen-Filter" dafür missbrauchen, halte das aber für unschön. Gibts da ne einfache Möglichkeit?
Moderiert von Gausi: Topic aus Dateizugriff verschoben am So 10.07.2005 um 21:17 - is ja nun doch eher API als Dateizugriff geworden...
_________________ We are, we were and will not be.
Zuletzt bearbeitet von Gausi am So 10.07.05 21:18, insgesamt 1-mal bearbeitet
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: So 10.07.05 18:21
Hallo,
du kannst mit dem Handle und nonVCL Kenntnissen eine Checkbox erzeugen. Leider kenn ich mich da nicht so aus  Das hier funktioniert schonmal und einen Buttons habe ich auch schon hinbekommen: Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm1.SaveDialog1Show(Sender: TObject); var H:HWND; begin H:=GetParent(SaveDialog1.Handle); SetWindowPos(H,0,0,0,570,450,SWP_NOMOVE or SWP_NOZORDER); end; | Vielleicht hilft dir das erstmal
Gruß,
maxk
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 10.07.05 19:50
|
|
Gausi 
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: So 10.07.05 20:58
Jo, das war so ziemlich genau das, was ich brauchte. Ich musste mich nur noch durch das heissgeliebte MSDN durchwurschteln, um herauszufinden, wie ich aus dem Edit ne Checkbox mache, und dann war die Schrift auch noch etwas merkwürdig, aber so gehts:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| procedure TForm1.SaveDialog1Show(Sender: TObject); var hParent: THandle; rect: TRect; hCbox: THandle; hFont: THandle; begin hParent := GetParent(SaveDialog1.Handle); GetWindowRect(hParent, rect); SetWindowPos(hParent, 0, 0, 0, rect.Right - rect.Left, rect.Bottom - rect.Top + 30, SWP_NOMOVE); hFont := SENDMESSAGE(hParent,WM_GETFONT,0,0); hCBox := CreateWindowEx(WS_EX_LEFT, 'BUTTON', 'Anders speichern', BS_AUTOCHECKBOX OR BS_FLAT OR WS_VISIBLE or WS_CHILD, 195, rect.Bottom - rect.Top - 35, 250, 16, hParent, 101, 0, nil); if hCBox = 0 then RaiseLastOSError; SendMessage(hCBox,WM_SETFONT,hFont,0); end;
procedure TForm1.SaveDialog1Close(Sender: TObject); var hParent: THandle; begin hParent := GetParent(SaveDialog1.Handle); if IsDlgButtonChecked(hParent,101) = BST_CHECKED then showmessage('Check') else showmessage('No Check') end; |
_________________ We are, we were and will not be.
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 11.07.05 11:31
Delphi-Quelltext 1: 2:
| hCBox := CreateWindowEx(WS_EX_LEFT, 'BUTTON', 'Anders speichern', BS_AUTOCHECKBOX OR BS_FLAT OR WS_VISIBLE or WS_CHILD, 195, rect.Bottom - rect.Top - 35, 250, 16, hParent, 101, 0, nil); |
Das nenne ich doch mal einen sehr guten Titel! 
|
|
Gausi 
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mo 11.07.05 15:57
Naja, im richtigen Programm steht da natürlich anderes. In etwa sowas wie "Pfade mit Laufwerksbuchstaben speichern".
Es ist halt eine Auswahlmöglichkeit, ob die Daten auf die eine oder andere Art gespeichert werden sollen.
_________________ We are, we were and will not be.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 03.06.10 23:37
|
|
|