AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TTaskiDialog: Breite manuell setzten möglich?

Ein Thema von romber · begonnen am 29. Nov 2012 · letzter Beitrag vom 29. Nov 2012
Antwort Antwort
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#1

TTaskiDialog: Breite manuell setzten möglich?

  Alt 29. Nov 2012, 12:03
Hallo!

Ich benutze in meinem Projekt TTaskDialog. Manche Dialogs, vor allem die mit etwas längerem Textinhalt, ziehen sich in die Höhe bis zum geht nicht mehr, die Breite bleibt aber gleich. Sieht gar nicht schön aus. Auch die Dateipfade, die ich dem Kunden gerne vollständig angezeigt bekommen möchte, werden zum Teil durch Punkte [\...\] ersetzt.

Gibt es die Möglichkeit, die TTaskDialogs breiter zu machen bzw. die Breite manuell setzten?
Wie teile ich dem TTaskDialog mit, dass ich die Dateipfade vollständig anzeigen möchte?

Viele Dank!
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#2

AW: TTaskiDialog: Breite manuell setzten möglich?

  Alt 29. Nov 2012, 12:22
Also, die entsprechende API-Struktur MSDN-Library durchsuchenTASKDIALOGCONFIG enthält ein Feld cxWidth :
Zitat:
The width of the task dialog's client area, in dialog units. If 0, the task dialog manager will calculate the ideal width.
Du kannst ja mal schauen, ob das im VCL-Quelltext verwendet wird.
Uli Gerhardt
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: TTaskiDialog: Breite manuell setzten möglich?

  Alt 29. Nov 2012, 12:38
Vielen Dank! Probiere ich aus.
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#4

AW: TTaskiDialog: Breite manuell setzten möglich?

  Alt 29. Nov 2012, 13:10
Du kannst ja mal schauen, ob das im VCL-Quelltext verwendet wird.
Wird zwar verwendet in der Unit CommCtrl.pas. TCustomTaskDialog im Unit Dialogs.pas verwendet eine Variable LTaskDialog vom Typ TTaskDialogConfig (TASKDIALOGCONFIG). Der kann ich cxWidth zuweisen, ändert sich an dem Dialog aber nichts.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#5

AW: TTaskiDialog: Breite manuell setzten möglich?

  Alt 29. Nov 2012, 13:19
Wird zwar verwendet in der Unit CommCtrl.pas. TCustomTaskDialog im Unit Dialogs.pas verwendet eine Variable LTaskDialog vom Typ TTaskDialogConfig (TASKDIALOGCONFIG). Der kann ich cxWidth zuweisen, ändert sich an dem Dialog aber nichts.
Du hast also die Original-Dialogs.pas geändert, oder?
Uli Gerhardt
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#6

AW: TTaskiDialog: Breite manuell setzten möglich?

  Alt 29. Nov 2012, 13:23
Du hast also die Original-Dialogs.pas geändert, oder?
Ja, testweise. Ich hatte vor, eine andere alternative Execute-Funktion zu erstellen, falls es mit der cxWidth klappen sollte.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#7

AW: TTaskiDialog: Breite manuell setzten möglich?

  Alt 29. Nov 2012, 13:37
Du hast also die Original-Dialogs.pas geändert, oder?
Ja, testweise.
Ich frage nur, weil das manchmal etwas diffizil ist. Vielleicht hast du keine Änderung gesehen, weil er noch die Original-Dialogs.dcu genommen hat oder so.

Ich hatte vor, eine andere alternative Execute-Funktion zu erstellen, falls es mit der cxWidth klappen sollte.
Jetzt, wo du's erwähnst: Ich habe vor Zeiten mal in einem Testprojekt die Execute-Methode überschrieben:
Delphi-Quellcode:
  TMyCustomTaskDialog = class(TCustomTaskDialog)
  strict protected
    function DoExecute(ParentWnd: HWND): Boolean; override;
  end;

  TMyTaskDialog = class(TMyCustomTaskDialog)
  published
    property Buttons;
    property Caption;
    property CommonButtons;
    property CustomFooterIcon;
    property CustomMainIcon;
    property DefaultButton;
    property ExpandButtonCaption;
    property ExpandedText;
    property Flags;
    property FooterIcon;
    property FooterText;
    property HelpContext;
    property MainIcon;
    property ProgressBar;
    property RadioButtons;
    property Text;
    property Title;
    property VerificationText;
    property OnButtonClicked;
    property OnDialogConstructed;
    property OnDialogCreated;
    property OnDialogDestroyed;
    property OnExpanded;
    property OnHyperlinkClicked;
    property OnNavigated;
    property OnRadioButtonClicked;
    property OnTimer;
    property OnVerificationClicked;
  end platform;
TMyTaskDialog kannst du dann zwar nicht ohne weiteres im Formdesigner nutzen, aber für einen Test tut's das ja. Die Implementation von TMyCustomTaskDialog.Execute ist leider eine komplette Kopie, da TTaskDialog mal wieder ein Musterbesipiel an Wiederverwertbarkeit ist.
Uli Gerhardt
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:59 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