From: Peter T. <pe...@pr...> - 2002-11-18 11:03:07
|
Update of /cvsroot/jvcl/jvcl/source In directory sc8-pr-cvs1:/tmp/cvs-serv7566/source Modified Files: JvFunctions.pas Log Message: New function (RestoreOtherInstance) from cginzel (Mantis #446) Index: JvFunctions.pas =================================================================== RCS file: /cvsroot/jvcl/jvcl/source/JvFunctions.pas,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** JvFunctions.pas 23 Sep 2002 07:14:48 -0000 1.19 --- JvFunctions.pas 18 Nov 2002 11:03:01 -0000 1.20 *************** *** 19,24 **** Anthony Steele [as...@ia...] Peter Thörnqvist [pe...@pe...] ! Last Modified: 2000-02-28 You may retrieve the latest version of this file at the Project JEDI's JVCL home page, --- 19,25 ---- Anthony Steele [as...@ia...] Peter Thörnqvist [pe...@pe...] + cginzel [cg...@ho...] ! Last Modified: 2002-11-18 You may retrieve the latest version of this file at the Project JEDI's JVCL home page, *************** *** 155,158 **** --- 156,162 ---- // returns true if this is the first instance of the program that is running function FirstInstance(const ATitle: string): boolean; + // restores a window based on it's classname and Caption. Either can be left empty + // to widen the search + procedure RestoreOtherInstance(MainFormClassName, MainFormCaption: string); // manipulate the traybar and start button *************** *** 302,308 **** uses Forms, Registry, ExtCtrls, ! {$IFNDEF DelphiPersonalEdition}Cpl,{$ENDIF} {$IFDEF COMPILER6_UP}Types, {$ENDIF}MMSystem, ! ShlObj, CommCtrl, { jvcl} JvDirectories, { jcl } JCLStrings; --- 306,312 ---- uses Forms, Registry, ExtCtrls, ! {$IFNDEF DelphiPersonalEdition}Cpl, {$ENDIF} {$IFDEF COMPILER6_UP}Types, {$ENDIF}MMSystem, ! ShlObj, CommCtrl, { jvcl} JvDirectories, { jcl } JCLStrings; *************** *** 344,348 **** Result := APath; while (Length(Result) > 0) and (Result[Length(Result)] = '\') do ! SetLength(Result,Length(Result)-1); end; --- 348,352 ---- Result := APath; while (Length(Result) > 0) and (Result[Length(Result)] = '\') do ! SetLength(Result, Length(Result) - 1); end; *************** *** 577,581 **** C: TCanvas; LP: PLogPalette; ! tmpPalette:HPalette; Size: Integer; img: TImage; // (p3) change to bmp? --- 581,585 ---- C: TCanvas; LP: PLogPalette; ! tmpPalette: HPalette; Size: Integer; img: TImage; // (p3) change to bmp? *************** *** 975,978 **** --- 979,1005 ---- {***************************************************} + procedure RestoreOtherInstance(MainFormClassName, MainFormCaption: string); + var + OtherWnd, OwnerWnd: HWnd; + begin + OtherWnd := FindWindow(PChar(MainFormClassName), PChar(MainFormCaption)); + ShowWindow(OtherWnd, SW_SHOW); //in case the window was not visible before + + OwnerWnd := 0; + if OtherWnd <> 0 then + OwnerWnd := GetWindow(OtherWnd, GW_OWNER); + + if OwnerWnd <> 0 then OtherWnd := OwnerWnd; + + if OtherWnd <> 0 then + begin + if IsIconic(OtherWnd) then + ShowWindow(OtherWnd, SW_RESTORE); + + SetForegroundWindow(OtherWnd); + end; + end; + {***************************************************} + procedure HideTraybar; var FHwnd: THandle; *************** *** 1670,1674 **** begin pc.Top := //pcParent.Top + ! ((pcParent.Height - pc.Height) div 2); end; --- 1697,1701 ---- begin pc.Top := //pcParent.Top + ! ((pcParent.Height - pc.Height) div 2); end; |