Weil es bei mir dasselbe Problem gibt, habe ich das aus dem letzten Beitrag mal ausprobiert, bekomme aber Fehlermeldungen.
procedure CenterOnMonitor(const AMonitor: TMonitor;
Da fehlt die Klammer vor dem Semikolon.
Ja, sorry, das kommt von zuviel Copy'n'Paste meinerseits....
Zitat:
Könntest Du bitte mal einen kompletten Quellcode eines (ansonsten leeren) Basisformulars veröffentlichen, bei dem der TC das Formular wirklich im gerade aktiven Fenster startet ?
Sicher. Gestern habe ich daraus eine Klasse mit erweiterten Methoden gebastelt. Da das etwas mehr als nur ein paar Funktionen sind, hänge ich mal die komplette
Unit an. Ich hoffe, da sind nicht allzu grobe Schnitzer drin
.
Benutzung der Klasse dann z.B. so:
Delphi-Quellcode:
uses ..., TotalCmdGUI;
type
TfmSvcProperties = class(TTotalCmdWfxForm)
//[...]
end;
implementation
procedure PluginShowForm(const AhParent: HWND);
var fmSvcProperties: TfmSvcProperties;
Lmon: TFormMonitor;
begin
fmSvcProperties:= TfmSvcProperties.Create(nil, AhParent);
try
case IniFile.Monitor of
0..4: Lmon:= TFormMonitor(IniFile.Monitor);
else Lmon:= fmActive;
end;
fmSvcProperties.ShowModal(Lmon);
finally
FreeAndNil(fmSvcProperties);
end;
end;
Wenn du die Methode Init nicht brauchst, kannst du auch direkt von TFormEx ableiten (TTotalCmdWfxForm ist eh nur eine leere Hülle).
Zitat:
Wie sehen diese "ganzen Ergänzungen" denn für Delphi 5 aus ?
Hier geht's in erster Linie um Funktionen wie TMonitor.GetWorkareaRect, die nötig ist, um den Arbeitsbereich des jeweiligen Monitors zu ermitteln (statt einfach nur die volle Auflösung).
MfG Dalai