From: <jfu...@us...> - 2009-01-25 21:27:54
|
Revision: 12178 http://jvcl.svn.sourceforge.net/jvcl/?rev=12178&view=rev Author: jfudickar Date: 2009-01-25 21:27:47 +0000 (Sun, 25 Jan 2009) Log Message: ----------- Improved Creation of the dialogs. Now the dialog could not be larger than the screen size. Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2009-01-25 21:21:34 UTC (rev 12177) +++ trunk/jvcl/run/JvDSADialogs.pas 2009-01-25 21:27:47 UTC (rev 12178) @@ -759,9 +759,33 @@ Image: TWinControl; DynControlImage: IJvDynControlImage; DynControlLabel: IJvDynControlLabel; - DynControlAutoSize: IJvDynControlAutoSize; - Panel: TWinControl; +// DynControlAutoSize: IJvDynControlAutoSize; + DynControlAlign: IJvDynControlAlign; + MessagePanel: TWinControl; + BottomPanel: TWinControl; + ResultForm : TDSAMessageForm; + Button : TButton; + CheckBox : TWinControl; + ImagePanel: TWinControl; + DynControlBorder: IJvDynControlBevelBorder; + + {$IFDEF COMPILER12_UP} + procedure CalcTextRect (iSingle : Boolean; lpString: PWideChar; nCount: Integer;var lpRect: TRect); + {$ELSE} + procedure CalcTextRect (iSingle : Boolean; lpString: PChar; nCount: Integer;var lpRect: TRect); + {$ENDIF} + begin + if iSingle then + DrawText(ResultForm.Canvas.Handle, lpString, nCount, lpRect, + DT_CALCRECT or DT_LEFT or DT_SINGLELINE or ResultForm.DrawTextBiDiModeFlagsReadingOnly) + else + DrawText(ResultForm.Canvas.Handle, lpString, nCount, lpRect, + DT_EXPANDTABS or DT_CALCRECT or DT_WORDBREAK or ResultForm.DrawTextBiDiModeFlagsReadingOnly); + end; + + begin + ResultForm := nil; if Assigned(ADynControlEngine) then DynControlEngine := ADynControlEngine else @@ -787,167 +811,161 @@ end else begin - with TWinControl(CenterParent) do - begin - CenterParLeft := Left; - CenterParTop := Top; - CenterParWidth := Width; - CenterParHeight := Height; - end; + CenterParLeft := TWinControl(CenterParent).Left; + CenterParTop := TWinControl(CenterParent).Top; + CenterParWidth := TWinControl(CenterParent).Width; + CenterParHeight := TWinControl(CenterParent).Height; end; if HelpButton = High(Integer) then HelpButton := High(Buttons); - Result := TDSAMessageForm.CreateNew(Screen.ActiveCustomForm); + ResultForm := TDSAMessageForm.CreateNew(Screen.ActiveCustomForm); try - with Result do + ResultForm.Position := poDesigned; // Delphi 2005 has a new default + ResultForm.BiDiMode := Application.BiDiMode; + ResultForm.BorderStyle := bsDialog; + ResultForm.Canvas.Font := ResultForm.Font; + ResultForm.KeyPreview := True; + ResultForm.OnKeyDown := ResultForm.CustomKeyDown; + ResultForm.OnShow := ResultForm.CustomShow; + ResultForm.OnMouseDown := ResultForm.CustomMouseDown; + DialogUnits := GetAveCharSize(ResultForm.Canvas); + HorzMargin := MulDiv(mcHorzMargin, DialogUnits.X, 4); + VertMargin := MulDiv(mcVertMargin, DialogUnits.Y, 8); + HorzSpacing := MulDiv(mcHorzSpacing, DialogUnits.X, 4); + VertSpacing := MulDiv(mcVertSpacing, DialogUnits.Y, 8); + ButtonWidth := MulDiv(mcButtonWidth, DialogUnits.X, 4); + ResultForm.Timeout := Abs(ATimeout); + for I := Low(Buttons) to High(Buttons) do begin - Position := poDesigned; // Delphi 2005 has a new default - BiDiMode := Application.BiDiMode; - BorderStyle := bsDialog; - Canvas.Font := Font; - KeyPreview := True; - OnKeyDown := CustomKeyDown; - OnShow := CustomShow; - OnMouseDown := CustomMouseDown; - DialogUnits := GetAveCharSize(Canvas); - HorzMargin := MulDiv(mcHorzMargin, DialogUnits.X, 4); - VertMargin := MulDiv(mcVertMargin, DialogUnits.Y, 8); - HorzSpacing := MulDiv(mcHorzSpacing, DialogUnits.X, 4); - VertSpacing := MulDiv(mcVertSpacing, DialogUnits.Y, 8); - ButtonWidth := MulDiv(mcButtonWidth, DialogUnits.X, 4); - Timeout := Abs(ATimeout); - for I := Low(Buttons) to High(Buttons) do + TextRect := Rect(0, 0, 0, 0); + CalcTextRect (true, PChar(Buttons[I]), -1, TextRect); + if (TextRect.Right - TextRect.Left + 8) > ButtonWidth then + ButtonWidth := (TextRect.Right - TextRect.Left + 8); + end; + ButtonHeight := MulDiv(mcButtonHeight, DialogUnits.Y, 8); + ButtonSpacing := MulDiv(mcButtonSpacing, DialogUnits.X, 4); + if (Screen.Width div 2) > (CenterParWidth + (2 * CenterParLeft)) then + SetRect(TextRect, 0, 0, CenterParWidth + (2 * CenterParLeft), 0) + else + SetRect(TextRect, 0, 0, Screen.Width div 2, 0); + CalcTextRect (False, PChar(Msg), Length(Msg) + 1, TextRect); + + IconTextWidth := TextRect.Right; + IconTextHeight := TextRect.Bottom; + if CheckCaption <> '' then + begin + SetRect(TempRect, 0, 0, Screen.Width div 2, 0); + CalcTextRect (False, PChar(CheckCaption), Length(CheckCaption) + 1, TempRect); + ChkTextWidth := TempRect.Right; + end + else + ChkTextWidth := 0; + if ATimeout > 0 then + begin + SetRect(TempRect, 0, 0, Screen.Width div 2, 0); + CalcTextRect (False, PChar(TimeFormatter(ResultForm.Timeout)), + Length(TimeFormatter(ResultForm.Timeout)) + 1, TempRect); + TimeoutTextWidth := TempRect.Right; + end + else + TimeoutTextWidth := 0; + if APicture <> nil then + begin + Inc(IconTextWidth, APicture.Width + HorzSpacing); + if IconTextHeight < APicture.Height then + IconTextHeight := APicture.Height; + end; + ButtonCount := Length(Buttons); + ButtonGroupWidth := 0; + if ButtonCount <> 0 then + ButtonGroupWidth := ButtonWidth * ButtonCount + ButtonSpacing * (ButtonCount - 1); + ResultForm.ClientWidth := Max(TimeoutTextWidth, + Max(17 + ChkTextWidth, + Max(IconTextWidth, ButtonGroupWidth))) + + HorzMargin * 2; + ResultForm.ClientHeight := IconTextHeight + ButtonHeight + VertSpacing * 2 + VertMargin; + if CheckCaption <> '' then + ResultForm.ClientHeight := ResultForm.ClientHeight + VertMargin + 17; + if ATimeout > 0 then + ResultForm.ClientHeight := ResultForm.ClientHeight + VertMargin + 13; + if ResultForm.Width > Screen.Width then + ResultForm.Width := Screen.Width; + if ResultForm.Height > Screen.Height then + ResultForm.Height := Screen.Height; + ResultForm.Left := (CenterParWidth div 2) - (ResultForm.Width div 2) + CenterParLeft; + ResultForm.Top := (CenterParHeight div 2) - (ResultForm.Height div 2) + CenterParTop; + if ACaption <> '' then + ResultForm.Caption := ACaption + else + ResultForm.Caption := Application.Title; + BottomPanel := DynControlEngine.CreatePanelControl(ResultForm, ResultForm, 'BottomPanel', '', alBottom); + BottomPanel.Height := VertMargin+ButtonHeight; + if APicture <> nil then + begin + ImagePanel := DynControlEngine.CreatePanelControl(ResultForm, ResultForm, 'BottomPanel', '', alLeft); + ImagePanel.Width := APicture.Width + 4 + HorzMargin - 2; + Image := DynControlEngine.CreateImageControl(ResultForm, ImagePanel, 'Image'); + if Supports(Image, IJvDynControlImage, DynControlImage) then begin - TextRect := Rect(0, 0, 0, 0); - {Windows.}DrawText(Canvas.Handle, PChar(Buttons[I]), -1, TextRect, - DT_CALCRECT or DT_LEFT or DT_SINGLELINE or DrawTextBiDiModeFlagsReadingOnly); - with TextRect do - if (Right - Left + 8) > ButtonWidth then - ButtonWidth := (Right - Left + 8); + DynControlImage.ControlSetGraphic(APicture); + DynControlImage.ControlSetCenter(True); end; - ButtonHeight := MulDiv(mcButtonHeight, DialogUnits.Y, 8); - ButtonSpacing := MulDiv(mcButtonSpacing, DialogUnits.X, 4); - if (Screen.Width div 2) > (CenterParWidth + (2 * CenterParLeft)) then - SetRect(TextRect, 0, 0, CenterParWidth + (2 * CenterParLeft), 0) - else - SetRect(TextRect, 0, 0, Screen.Width div 2, 0); - DrawText(Canvas.Handle, PChar(Msg), Length(Msg) + 1, TextRect, - DT_EXPANDTABS or DT_CALCRECT or DT_WORDBREAK or DrawTextBiDiModeFlagsReadingOnly); + Image.SetBounds(HorzMargin - 2, VertMargin - 2, APicture.Width + 4, APicture.Height + 4); + Image.Enabled := False; + end; + MessagePanel := DynControlEngine.CreatePanelControl(ResultForm, ResultForm, 'Panel', '', alClient); + if Supports(MessagePanel, IJvDynControlBevelBorder, DynControlBorder) then + DynControlBorder.ControlSetBorderWidth(VertMargin-1); + MessageLabel := DynControlEngine.CreateLabelControl(ResultForm, MessagePanel, 'Message', Msg, nil); - IconTextWidth := TextRect.Right; - IconTextHeight := TextRect.Bottom; - if CheckCaption <> '' then - begin - SetRect(TempRect, 0, 0, Screen.Width div 2, 0); - DrawText(Canvas.Handle, PChar(CheckCaption), Length(CheckCaption) + 1, TempRect, - DT_EXPANDTABS or DT_CALCRECT or DT_WORDBREAK or DrawTextBiDiModeFlagsReadingOnly); - ChkTextWidth := TempRect.Right; - end + if Supports(MessageLabel, IJvDynControlAlign, DynControlAlign) then + DynControlAlign.ControlSetAlign(alClient); + + if Supports(MessageLabel, IJvDynControlLabel, DynControlLabel) then + DynControlLabel.ControlSetWordWrap(True); + + MessageLabel.BoundsRect := TextRect; + MessageLabel.BiDiMode := ResultForm.BiDiMode; + + X := (ResultForm.ClientWidth - ButtonGroupWidth) div 2; + for I := Low(Buttons) to High(Buttons) do + begin + Button := DynControlEngine.CreateButton(ResultForm, BottomPanel, 'Button' + IntToStr(I), Buttons[I], '', nil, False, False); + Button.ModalResult := Results[I]; + if I = DefaultButton then + Button.Default := True; + if I = CancelButton then + Button.Cancel := True; + Button.SetBounds(X, 0,//IconTextHeight + VertMargin + VertSpacing, + ButtonWidth, ButtonHeight); + Inc(X, ButtonWidth + ButtonSpacing); + if I = HelpButton then + Button.OnClick := ResultForm.HelpButtonClick; + end; + if CheckCaption <> '' then + begin + CheckBox := DynControlEngine.CreateCheckboxControl(ResultForm, BottomPanel, 'DontShowAgain', CheckCaption); + CheckBox.BiDiMode := ResultForm.BiDiMode; + CheckBox.SetBounds(HorzMargin, VertSpacing+ButtonHeight,//IconTextHeight + VertMargin + VertSpacing * 2 + ButtonHeight, + ResultForm.ClientWidth - 2 * HorzMargin, CheckBox.Height); + end; + if ATimeout > 0 then + begin + CountDownlabel := DynControlEngine.CreateLabelControl(ResultForm, BottomPanel, 'Countdown', + TimeFormatter(ResultForm.Timeout), nil); + CountDownlabel.BiDiMode := ResultForm.BiDiMode; + if CheckCaption = '' then + CountDownlabel.SetBounds(HorzMargin, VertSpacing+ButtonHeight,//IconTextHeight + VertMargin + VertSpacing * 2 + ButtonHeight, + ResultForm.ClientWidth - 2 * HorzMargin, CountDownlabel.Height) else - ChkTextWidth := 0; - if ATimeout > 0 then - begin - SetRect(TempRect, 0, 0, Screen.Width div 2, 0); - DrawText(Canvas.Handle, PChar(TimeFormatter(Timeout)), - Length(TimeFormatter(Timeout)) + 1, TempRect, - DT_EXPANDTABS or DT_CALCRECT or DT_WORDBREAK or DrawTextBiDiModeFlagsReadingOnly); - TimeoutTextWidth := TempRect.Right; - end - else - TimeoutTextWidth := 0; - if APicture <> nil then - begin - Inc(IconTextWidth, APicture.Width + HorzSpacing); - if IconTextHeight < APicture.Height then - IconTextHeight := APicture.Height; - end; - ButtonCount := Length(Buttons); - ButtonGroupWidth := 0; - if ButtonCount <> 0 then - ButtonGroupWidth := ButtonWidth * ButtonCount + ButtonSpacing * (ButtonCount - 1); - ClientWidth := Max(TimeoutTextWidth, Max(17 + ChkTextWidth, Max(IconTextWidth, ButtonGroupWidth))) + HorzMargin * - 2; - ClientHeight := IconTextHeight + ButtonHeight + VertSpacing * 2 + VertMargin; - if CheckCaption <> '' then - Result.ClientHeight := Result.ClientHeight + VertMargin + 17; - if ATimeout > 0 then - Result.ClientHeight := Result.ClientHeight + VertMargin + 13; - Left := (CenterParWidth div 2) - (Width div 2) + CenterParLeft; - Top := (CenterParHeight div 2) - (Height div 2) + CenterParTop; - if ACaption <> '' then - Caption := ACaption - else - Caption := Application.Title; - Panel := DynControlEngine.CreatePanelControl(Result, Result, 'Panel', '', alClient); - if APicture <> nil then - begin - Image := DynControlEngine.CreateImageControl(Result, Panel, 'Image'); - if Supports(Image, IJvDynControlImage, DynControlImage) then - begin - DynControlImage.ControlSetGraphic(APicture); - DynControlImage.ControlSetCenter(True); - end; - Image.SetBounds(HorzMargin - 2, VertMargin - 2, APicture.Width + 4, APicture.Height + 4); - Image.Enabled := False; - end; - MessageLabel := DynControlEngine.CreateLabelControl(Result, Panel, 'Message', Msg, nil); - if Supports(MessageLabel, IJvDynControlAutoSize, DynControlAutoSize) then - DynControlAutoSize.ControlSetAutoSize(True); - if Supports(MessageLabel, IJvDynControlLabel, DynControlLabel) then - DynControlLabel.ControlSetWordWrap(True); - with MessageLabel do - begin - BoundsRect := TextRect; - BiDiMode := Result.BiDiMode; - ALeft := IconTextWidth - TextRect.Right + HorzMargin; - if UseRightToLeftAlignment then - ALeft := Result.ClientWidth - ALeft - Width; - SetBounds(ALeft, VertMargin, - TextRect.Right, TextRect.Bottom); - end; - X := (ClientWidth - ButtonGroupWidth) div 2; - for I := Low(Buttons) to High(Buttons) do - begin - with DynControlEngine.CreateButton(Result, Panel, 'Button' + IntToStr(I), Buttons[I], '', nil, False, False) do - begin - ModalResult := Results[I]; - if I = DefaultButton then - Default := True; - if I = CancelButton then - Cancel := True; - SetBounds(X, IconTextHeight + VertMargin + VertSpacing, ButtonWidth, ButtonHeight); - Inc(X, ButtonWidth + ButtonSpacing); - if I = HelpButton then - OnClick := HelpButtonClick; - end; - end; - if CheckCaption <> '' then - with DynControlEngine.CreateCheckboxControl(Result, Panel, 'DontShowAgain', CheckCaption) do - begin - BiDiMode := Result.BiDiMode; - SetBounds(HorzMargin, IconTextHeight + VertMargin + VertSpacing * 2 + ButtonHeight, - Result.ClientWidth - 2 * HorzMargin, Height); - end; - if ATimeout > 0 then - begin - CountDownlabel := DynControlEngine.CreateLabelControl(Result, Panel, 'Countdown', - TimeFormatter(Timeout), nil); - with CountDownlabel do - begin - BiDiMode := Result.BiDiMode; - if CheckCaption = '' then - SetBounds(HorzMargin, IconTextHeight + VertMargin + VertSpacing * 2 + ButtonHeight, - Result.ClientWidth - 2 * HorzMargin, Height) - else - SetBounds(HorzMargin, IconTextHeight + 2 * VertMargin + VertSpacing * 2 + ButtonHeight + 17, - Result.ClientWidth - 2 * HorzMargin, Height); - end; - end; + CountDownlabel.SetBounds(HorzMargin, VertMargin+VertSpacing+ButtonHeight,//IconTextHeight + 2 * VertMargin + VertSpacing * 2 + ButtonHeight + 17, + ResultForm.ClientWidth - 2 * HorzMargin, CountDownlabel.Height); end; except - Result.Free; + FreeAndNil(ResultForm); raise; end; + Result := ResultForm; end; //=== { TDSARegister } ======================================================= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2009-01-25 22:10:01
|
Revision: 12180 http://jvcl.svn.sourceforge.net/jvcl/?rev=12180&view=rev Author: jfudickar Date: 2009-01-25 21:47:01 +0000 (Sun, 25 Jan 2009) Log Message: ----------- Better sizing when the text is smaller then the buttons Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2009-01-25 21:30:00 UTC (rev 12179) +++ trunk/jvcl/run/JvDSADialogs.pas 2009-01-25 21:47:01 UTC (rev 12180) @@ -849,7 +849,7 @@ SetRect(TextRect, 0, 0, Screen.Width div 2, 0); CalcTextRect (False, PChar(Msg), Length(Msg) + 1, TextRect); - IconTextWidth := TextRect.Right; + IconTextWidth := TextRect.Right+10; IconTextHeight := TextRect.Bottom; if CheckCaption <> '' then begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2009-01-25 22:22:34
|
Revision: 12179 http://jvcl.svn.sourceforge.net/jvcl/?rev=12179&view=rev Author: jfudickar Date: 2009-01-25 21:30:00 +0000 (Sun, 25 Jan 2009) Log Message: ----------- Removed commented code Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2009-01-25 21:27:47 UTC (rev 12178) +++ trunk/jvcl/run/JvDSADialogs.pas 2009-01-25 21:30:00 UTC (rev 12179) @@ -759,7 +759,6 @@ Image: TWinControl; DynControlImage: IJvDynControlImage; DynControlLabel: IJvDynControlLabel; -// DynControlAutoSize: IJvDynControlAutoSize; DynControlAlign: IJvDynControlAlign; MessagePanel: TWinControl; BottomPanel: TWinControl; @@ -936,8 +935,7 @@ Button.Default := True; if I = CancelButton then Button.Cancel := True; - Button.SetBounds(X, 0,//IconTextHeight + VertMargin + VertSpacing, - ButtonWidth, ButtonHeight); + Button.SetBounds(X, 0, ButtonWidth, ButtonHeight); Inc(X, ButtonWidth + ButtonSpacing); if I = HelpButton then Button.OnClick := ResultForm.HelpButtonClick; @@ -946,7 +944,7 @@ begin CheckBox := DynControlEngine.CreateCheckboxControl(ResultForm, BottomPanel, 'DontShowAgain', CheckCaption); CheckBox.BiDiMode := ResultForm.BiDiMode; - CheckBox.SetBounds(HorzMargin, VertSpacing+ButtonHeight,//IconTextHeight + VertMargin + VertSpacing * 2 + ButtonHeight, + CheckBox.SetBounds(HorzMargin, VertSpacing+ButtonHeight, ResultForm.ClientWidth - 2 * HorzMargin, CheckBox.Height); end; if ATimeout > 0 then @@ -955,10 +953,10 @@ TimeFormatter(ResultForm.Timeout), nil); CountDownlabel.BiDiMode := ResultForm.BiDiMode; if CheckCaption = '' then - CountDownlabel.SetBounds(HorzMargin, VertSpacing+ButtonHeight,//IconTextHeight + VertMargin + VertSpacing * 2 + ButtonHeight, + CountDownlabel.SetBounds(HorzMargin, VertSpacing+ButtonHeight, ResultForm.ClientWidth - 2 * HorzMargin, CountDownlabel.Height) else - CountDownlabel.SetBounds(HorzMargin, VertMargin+VertSpacing+ButtonHeight,//IconTextHeight + 2 * VertMargin + VertSpacing * 2 + ButtonHeight + 17, + CountDownlabel.SetBounds(HorzMargin, VertMargin+VertSpacing+ButtonHeight, ResultForm.ClientWidth - 2 * HorzMargin, CountDownlabel.Height); end; except This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2009-01-27 00:33:57
|
Revision: 12181 http://jvcl.svn.sourceforge.net/jvcl/?rev=12181&view=rev Author: jfudickar Date: 2009-01-27 00:33:53 +0000 (Tue, 27 Jan 2009) Log Message: ----------- Changed Sizing for large text again. Fixed functionality to copy contents to clipboard Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2009-01-25 21:47:01 UTC (rev 12180) +++ trunk/jvcl/run/JvDSADialogs.pas 2009-01-27 00:33:53 UTC (rev 12181) @@ -49,6 +49,7 @@ FTimeout: Integer; FTimer: TTimer; FCountdown: TLabel; + FMsg: string; protected procedure CustomKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure CustomMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); @@ -62,6 +63,7 @@ public constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0); override; function IsDSAChecked: Boolean; + property Msg: string read FMsg write FMsg; property Timeout: Integer read FTimeout write FTimeout; end; @@ -616,9 +618,9 @@ FTimer.Enabled := False; for I := 0 to ComponentCount - 1 do begin - if (Components[I] is TButton) and (Components[I] as TButton).Default then + if (Components[I] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}) and (Components[I] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}).Default then begin - (Components[I] as TButton).Click; + (Components[I] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}).Click; Exit; end; end; @@ -672,14 +674,11 @@ begin DividerLine := StringOfChar('-', 27) + CrLf; for I := 0 to ComponentCount - 1 do - if Components[I] is TButton then + if Components[I] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF} then ButtonCaptions := ButtonCaptions + TButton(Components[I]).Caption + StringOfChar(' ', 3); ButtonCaptions := StringReplace(ButtonCaptions, '&', '', [rfReplaceAll]); - I := ComponentCount - 1; - while (I > -1) and not (Components[I] is TLabel) do - Dec(I); Result := Format('%s%s%s%s%s%s%s%s%s%s', [DividerLine, Caption, CrLf, DividerLine, - TLabel(Components[I]).Caption, CrLf, DividerLine, ButtonCaptions, CrLf, DividerLine]); + Msg, CrLf, DividerLine, ButtonCaptions, CrLf, DividerLine]); end; class function TDSAMessageForm.TimeoutUnit(Count: Integer; Seconds: Boolean): string; @@ -819,6 +818,7 @@ HelpButton := High(Buttons); ResultForm := TDSAMessageForm.CreateNew(Screen.ActiveCustomForm); try + ResultForm.Msg := Msg; ResultForm.Position := poDesigned; // Delphi 2005 has a new default ResultForm.BiDiMode := Application.BiDiMode; ResultForm.BorderStyle := bsDialog; @@ -887,10 +887,10 @@ ResultForm.ClientHeight := ResultForm.ClientHeight + VertMargin + 17; if ATimeout > 0 then ResultForm.ClientHeight := ResultForm.ClientHeight + VertMargin + 13; - if ResultForm.Width > Screen.Width then - ResultForm.Width := Screen.Width; - if ResultForm.Height > Screen.Height then - ResultForm.Height := Screen.Height; + if ResultForm.ClientWidth > Screen.Width-100 then + ResultForm.ClientWidth := Screen.Width-100; + if ResultForm.ClientHeight > Screen.Height-100 then + ResultForm.ClientHeight := Screen.Height-100; ResultForm.Left := (CenterParWidth div 2) - (ResultForm.Width div 2) + CenterParLeft; ResultForm.Top := (CenterParHeight div 2) - (ResultForm.Height div 2) + CenterParTop; if ACaption <> '' then @@ -898,10 +898,10 @@ else ResultForm.Caption := Application.Title; BottomPanel := DynControlEngine.CreatePanelControl(ResultForm, ResultForm, 'BottomPanel', '', alBottom); - BottomPanel.Height := VertMargin+ButtonHeight; + BottomPanel.Height := 2*VertMargin+ButtonHeight; if APicture <> nil then begin - ImagePanel := DynControlEngine.CreatePanelControl(ResultForm, ResultForm, 'BottomPanel', '', alLeft); + ImagePanel := DynControlEngine.CreatePanelControl(ResultForm, ResultForm, 'ImagePanel', '', alLeft); ImagePanel.Width := APicture.Width + 4 + HorzMargin - 2; Image := DynControlEngine.CreateImageControl(ResultForm, ImagePanel, 'Image'); if Supports(Image, IJvDynControlImage, DynControlImage) then @@ -935,7 +935,7 @@ Button.Default := True; if I = CancelButton then Button.Cancel := True; - Button.SetBounds(X, 0, ButtonWidth, ButtonHeight); + Button.SetBounds(X, VertMargin, ButtonWidth, ButtonHeight); Inc(X, ButtonWidth + ButtonSpacing); if I = HelpButton then Button.OnClick := ResultForm.HelpButtonClick; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2009-01-27 22:41:38
|
Revision: 12185 http://jvcl.svn.sourceforge.net/jvcl/?rev=12185&view=rev Author: jfudickar Date: 2009-01-27 22:41:22 +0000 (Tue, 27 Jan 2009) Log Message: ----------- Next Fixed for JvDSADialogs Sizing (Hopefully the last) Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2009-01-27 15:13:55 UTC (rev 12184) +++ trunk/jvcl/run/JvDSADialogs.pas 2009-01-27 22:41:22 UTC (rev 12185) @@ -765,7 +765,7 @@ Button : TButton; CheckBox : TWinControl; ImagePanel: TWinControl; - DynControlBorder: IJvDynControlBevelBorder; + CheckPanel : TWinControl; {$IFDEF COMPILER12_UP} procedure CalcTextRect (iSingle : Boolean; lpString: PWideChar; nCount: Integer;var lpRect: TRect); @@ -897,11 +897,20 @@ ResultForm.Caption := ACaption else ResultForm.Caption := Application.Title; + + CheckPanel := DynControlEngine.CreatePanelControl(ResultForm, ResultForm, 'CheckPanel', '', alBottom); + CheckPanel.Visible := (CheckCaption <> '') or (ATimeout > 0); BottomPanel := DynControlEngine.CreatePanelControl(ResultForm, ResultForm, 'BottomPanel', '', alBottom); - BottomPanel.Height := 2*VertMargin+ButtonHeight; - if APicture <> nil then + if CheckPanel.Visible then + BottomPanel.Height := VertSpacing+ButtonHeight + else + BottomPanel.Height := VertSpacing+VertMargin+ButtonHeight; + CheckPanel.Top := BottomPanel.Top +1; + ImagePanel := DynControlEngine.CreatePanelControl(ResultForm, ResultForm, 'ImagePanel', '', alLeft); + ImagePanel.Visible := Assigned(APicture); + + if Assigned(APicture) then begin - ImagePanel := DynControlEngine.CreatePanelControl(ResultForm, ResultForm, 'ImagePanel', '', alLeft); ImagePanel.Width := APicture.Width + 4 + HorzMargin - 2; Image := DynControlEngine.CreateImageControl(ResultForm, ImagePanel, 'Image'); if Supports(Image, IJvDynControlImage, DynControlImage) then @@ -913,17 +922,20 @@ Image.Enabled := False; end; MessagePanel := DynControlEngine.CreatePanelControl(ResultForm, ResultForm, 'Panel', '', alClient); - if Supports(MessagePanel, IJvDynControlBevelBorder, DynControlBorder) then - DynControlBorder.ControlSetBorderWidth(VertMargin-1); + MessageLabel := DynControlEngine.CreateLabelControl(ResultForm, MessagePanel, 'Message', Msg, nil); - if Supports(MessageLabel, IJvDynControlAlign, DynControlAlign) then - DynControlAlign.ControlSetAlign(alClient); + if Assigned(APicture) then + MessageLabel.Left := HorzSpacing + else + MessageLabel.Left := HorzMargin; + MessageLabel.Top := VertMargin; + MessageLabel.Width := MessagePanel.Width-MessageLabel.Left; + MessageLabel.Height := MessagePanel.Height - MessageLabel.Top; if Supports(MessageLabel, IJvDynControlLabel, DynControlLabel) then DynControlLabel.ControlSetWordWrap(True); - MessageLabel.BoundsRect := TextRect; MessageLabel.BiDiMode := ResultForm.BiDiMode; X := (ResultForm.ClientWidth - ButtonGroupWidth) div 2; @@ -935,29 +947,36 @@ Button.Default := True; if I = CancelButton then Button.Cancel := True; - Button.SetBounds(X, VertMargin, ButtonWidth, ButtonHeight); + Button.SetBounds(X, VertSpacing, ButtonWidth, ButtonHeight); Inc(X, ButtonWidth + ButtonSpacing); if I = HelpButton then Button.OnClick := ResultForm.HelpButtonClick; end; if CheckCaption <> '' then begin - CheckBox := DynControlEngine.CreateCheckboxControl(ResultForm, BottomPanel, 'DontShowAgain', CheckCaption); + CheckBox := DynControlEngine.CreateCheckboxControl(ResultForm, CheckPanel, 'DontShowAgain', CheckCaption); CheckBox.BiDiMode := ResultForm.BiDiMode; - CheckBox.SetBounds(HorzMargin, VertSpacing+ButtonHeight, + CheckBox.SetBounds(HorzMargin, 0, ResultForm.ClientWidth - 2 * HorzMargin, CheckBox.Height); + CheckPanel.Height := CheckBox.Height; end; if ATimeout > 0 then begin - CountDownlabel := DynControlEngine.CreateLabelControl(ResultForm, BottomPanel, 'Countdown', + CountDownlabel := DynControlEngine.CreateLabelControl(ResultForm, CheckPanel, 'Countdown', TimeFormatter(ResultForm.Timeout), nil); CountDownlabel.BiDiMode := ResultForm.BiDiMode; if CheckCaption = '' then - CountDownlabel.SetBounds(HorzMargin, VertSpacing+ButtonHeight, + begin + CheckPanel.Height := CheckPanel.Height+CountDownlabel.Height+VertSpacing+VertMargin; + CountDownlabel.SetBounds (HorzMargin, CheckPanel.Height+VertSpacing, ResultForm.ClientWidth - 2 * HorzMargin, CountDownlabel.Height) + end else - CountDownlabel.SetBounds(HorzMargin, VertMargin+VertSpacing+ButtonHeight, + begin + CheckPanel.Height := CountDownlabel.Height+VertMargin; + CountDownlabel.SetBounds(HorzMargin, 0, ResultForm.ClientWidth - 2 * HorzMargin, CountDownlabel.Height); + end; end; except FreeAndNil(ResultForm); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2009-02-19 23:15:11
|
Revision: 12216 http://jvcl.svn.sourceforge.net/jvcl/?rev=12216&view=rev Author: jfudickar Date: 2009-02-19 21:33:09 +0000 (Thu, 19 Feb 2009) Log Message: ----------- Changed ComponentCount to ControlCount Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2009-02-19 20:33:33 UTC (rev 12215) +++ trunk/jvcl/run/JvDSADialogs.pas 2009-02-19 21:33:09 UTC (rev 12216) @@ -580,11 +580,11 @@ if Timeout <> 0 then FTimer.Enabled := True; First := True; - for I := 0 to ComponentCount - 1 do + for I := 0 to ControlCount - 1 do begin - if (Components[I] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}) then + if (Controls[I] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}) then begin - Btn := (Components[I] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}); + Btn := (Controls[I] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}); if First then begin First := False; @@ -616,11 +616,11 @@ if FTimeout = 0 then begin FTimer.Enabled := False; - for I := 0 to ComponentCount - 1 do + for I := 0 to ControlCount - 1 do begin - if (Components[I] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}) and (Components[I] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}).Default then + if (Controls[I] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}) and (Controls[I] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}).Default then begin - (Components[I] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}).Click; + (Controls[I] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}).Click; Exit; end; end; @@ -673,9 +673,9 @@ I: Integer; begin DividerLine := StringOfChar('-', 27) + CrLf; - for I := 0 to ComponentCount - 1 do - if Components[I] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF} then - ButtonCaptions := ButtonCaptions + TButton(Components[I]).Caption + StringOfChar(' ', 3); + for I := 0 to ControlCount - 1 do + if Controls[I] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF} then + ButtonCaptions := ButtonCaptions + TButton(Controls[I]).Caption + StringOfChar(' ', 3); ButtonCaptions := StringReplace(ButtonCaptions, '&', '', [rfReplaceAll]); Result := Format('%s%s%s%s%s%s%s%s%s%s', [DividerLine, Caption, CrLf, DividerLine, Msg, CrLf, DividerLine, ButtonCaptions, CrLf, DividerLine]); @@ -705,11 +705,11 @@ var I: Integer; begin - I := ComponentCount - 1; - while (I > -1) and not (Components[I] is TCustomCheckBox) do + I := ControlCount - 1; + while (I > -1) and not (Controls[I] is TCustomCheckBox) do Dec(I); if (I > -1) then - Result := TCheckBox(Components[I]).Checked + Result := TCheckBox(Controls[I]).Checked else Result := False; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2009-04-14 22:26:28
|
Revision: 12271 http://jvcl.svn.sourceforge.net/jvcl/?rev=12271&view=rev Author: jfudickar Date: 2009-04-14 22:26:13 +0000 (Tue, 14 Apr 2009) Log Message: ----------- Reverted Revision 12216 Changed (They were nonsense :-) (Mantis #0004740) Revision Links: -------------- http://jvcl.svn.sourceforge.net/jvcl/?rev=12216&view=rev Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2009-04-13 20:47:03 UTC (rev 12270) +++ trunk/jvcl/run/JvDSADialogs.pas 2009-04-14 22:26:13 UTC (rev 12271) @@ -579,11 +579,11 @@ if Timeout <> 0 then FTimer.Enabled := True; First := True; - for I := 0 to ControlCount - 1 do + for I := 0 to ComponentCount - 1 do begin - if (Controls[I] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}) then + if (Components[i] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}) then begin - Btn := (Controls[I] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}); + Btn := (Components[i] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}); if First then begin First := False; @@ -615,11 +615,11 @@ if FTimeout = 0 then begin FTimer.Enabled := False; - for I := 0 to ControlCount - 1 do + for I := 0 to ComponentCount - 1 do begin - if (Controls[I] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}) and (Controls[I] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}).Default then + if (Components[i] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}) and (Components[i] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}).Default then begin - (Controls[I] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}).Click; + (Components[i] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}).Click; Exit; end; end; @@ -672,9 +672,9 @@ I: Integer; begin DividerLine := StringOfChar('-', 27) + CrLf; - for I := 0 to ControlCount - 1 do - if Controls[I] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF} then - ButtonCaptions := ButtonCaptions + TButton(Controls[I]).Caption + StringOfChar(' ', 3); + for I := 0 to ComponentCount - 1 do + if Components[i] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF} then + ButtonCaptions := ButtonCaptions + TButton(Components[i]).Caption + StringOfChar(' ', 3); ButtonCaptions := StringReplace(ButtonCaptions, '&', '', [rfReplaceAll]); Result := Format('%s%s%s%s%s%s%s%s%s%s', [DividerLine, Caption, CrLf, DividerLine, Msg, CrLf, DividerLine, ButtonCaptions, CrLf, DividerLine]); @@ -703,11 +703,11 @@ var I: Integer; begin - I := ControlCount - 1; - while (I > -1) and not (Controls[I] is TCustomCheckBox) do + I := ComponentCount - 1; + while (I > -1) and not (Components[i] is TCustomCheckBox) do Dec(I); if (I > -1) then - Result := TCheckBox(Controls[I]).Checked + Result := TCheckBox(Components[i]).Checked else Result := False; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2009-04-25 17:45:38
|
Revision: 12284 http://jvcl.svn.sourceforge.net/jvcl/?rev=12284&view=rev Author: obones Date: 2009-04-25 17:45:35 +0000 (Sat, 25 Apr 2009) Log Message: ----------- Avoid warning Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2009-04-25 16:35:12 UTC (rev 12283) +++ trunk/jvcl/run/JvDSADialogs.pas 2009-04-25 17:45:35 UTC (rev 12284) @@ -981,6 +981,7 @@ if I = HelpButton then Button.OnClick := ResultForm.HelpButtonClick; end; + CheckBox := nil; // to avoid warnings if CheckCaption <> '' then begin CheckBox := DynControlEngine.CreateCheckboxControl(ResultForm, CheckPanel, 'DontShowAgain', CheckCaption); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2009-05-30 09:30:46
|
Revision: 12317 http://jvcl.svn.sourceforge.net/jvcl/?rev=12317&view=rev Author: jfudickar Date: 2009-05-30 09:30:38 +0000 (Sat, 30 May 2009) Log Message: ----------- Mantis 0004800: MessageDlgEx (or CreateDSAMessageForm) doesn't apply HelpContext Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2009-05-30 09:25:13 UTC (rev 12316) +++ trunk/jvcl/run/JvDSADialogs.pas 2009-05-30 09:30:38 UTC (rev 12317) @@ -849,6 +849,7 @@ ResultForm.BorderStyle := bsDialog; ResultForm.Canvas.Font := ResultForm.Font; ResultForm.KeyPreview := True; + ResultForm.HelpContext := HelpCtx; ResultForm.OnKeyDown := ResultForm.CustomKeyDown; ResultForm.OnShow := ResultForm.CustomShow; ResultForm.OnMouseDown := ResultForm.CustomMouseDown; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2009-09-04 19:39:42
|
Revision: 12490 http://jvcl.svn.sourceforge.net/jvcl/?rev=12490&view=rev Author: jfudickar Date: 2009-09-04 19:39:35 +0000 (Fri, 04 Sep 2009) Log Message: ----------- Fixed behaviour when navigating in MessageDlg using cursor keys in combination with default buttons Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2009-09-04 16:42:54 UTC (rev 12489) +++ trunk/jvcl/run/JvDSADialogs.pas 2009-09-04 19:39:35 UTC (rev 12490) @@ -51,7 +51,9 @@ FTimer: TTimer; FCountdown: IJvDynControlCaption; FMsg: string; + FDefaultButton : {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}; protected + property DefaultButton : {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF} read FDefaultButton write FDefaultButton ; procedure CustomKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure CustomMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure CustomShow(Sender: TObject); @@ -66,6 +68,7 @@ function IsDSAChecked: Boolean; property Msg: string read FMsg write FMsg; property Timeout: Integer read FTimeout write FTimeout; + end; //---------------------------------------------------------------------------- @@ -562,6 +565,11 @@ begin WriteToClipboard(GetFormText); end; + if Key = VK_RETURN then + if ActiveControl is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF} then + {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}(ActiveControl).Click + else if Assigned(DefaultButton) then + DefaultButton.Click; end; procedure TDSAMessageForm.CustomMouseDown(Sender: TObject; Button: TMouseButton; @@ -968,15 +976,18 @@ MessageLabel.BiDiMode := ResultForm.BiDiMode; + ResultForm.DefaultButton := nil; X := (ResultForm.ClientWidth - ButtonGroupWidth) div 2; for I := Low(Buttons) to High(Buttons) do begin Button := DynControlEngine.CreateButton(ResultForm, BottomPanel, 'Button' + IntToStr(I), Buttons[I], '', nil, False, False); Button.ModalResult := Results[I]; if I = DefaultButton then - Button.Default := True; + ResultForm.DefaultButton := Button; +// Button.Default := True; if I = CancelButton then Button.Cancel := True; + Button.TabStop := True; Button.SetBounds(X, VertSpacing, ButtonWidth, ButtonHeight); Inc(X, ButtonWidth + ButtonSpacing); if I = HelpButton then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2011-02-11 21:42:01
|
Revision: 12976 http://jvcl.svn.sourceforge.net/jvcl/?rev=12976&view=rev Author: jfudickar Date: 2011-02-11 21:41:55 +0000 (Fri, 11 Feb 2011) Log Message: ----------- Mantis 0005475: JvDSADialogs messages are sized incorrectly with multiple monitors Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2011-02-10 08:22:26 UTC (rev 12975) +++ trunk/jvcl/run/JvDSADialogs.pas 2011-02-11 21:41:55 UTC (rev 12976) @@ -882,8 +882,8 @@ ButtonHeight := MulDiv(mcButtonHeight, DialogUnits.Y, 8); ButtonSpacing := MulDiv(mcButtonSpacing, DialogUnits.X, 4); - if (Screen.Width div 2) > (CenterParWidth + (2 * CenterParLeft)) then - SetRect(TextRect, 0, 0, CenterParWidth + (2 * CenterParLeft), 0) + if (Screen.Width div 2) > (CenterParWidth + (2 * CenterParLeft - Screen.DesktopLeft)) then + SetRect(TextRect, 0, 0, CenterParWidth + (2 * CenterParLeft - Screen.DesktopLeft), 0) else SetRect(TextRect, 0, 0, Screen.Width div 2, 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2011-06-16 18:54:06
|
Revision: 13068 http://jvcl.svn.sourceforge.net/jvcl/?rev=13068&view=rev Author: jfudickar Date: 2011-06-16 18:54:00 +0000 (Thu, 16 Jun 2011) Log Message: ----------- Mantis 0005600 + 0005475 : Final fix for "JvDSADialogs messages are sized incorrectly with multiple monitors " Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2011-06-16 09:52:19 UTC (rev 13067) +++ trunk/jvcl/run/JvDSADialogs.pas 2011-06-16 18:54:00 UTC (rev 13068) @@ -882,8 +882,8 @@ ButtonHeight := MulDiv(mcButtonHeight, DialogUnits.Y, 8); ButtonSpacing := MulDiv(mcButtonSpacing, DialogUnits.X, 4); - if (Screen.Width div 2) > (CenterParWidth + (2 * CenterParLeft - Screen.DesktopLeft)) then - SetRect(TextRect, 0, 0, CenterParWidth + (2 * CenterParLeft - Screen.DesktopLeft), 0) + if (Screen.Width div 2) > (CenterParWidth + (2 * (CenterParLeft - Screen.DesktopLeft))) then + SetRect(TextRect, 0, 0, CenterParWidth + (2 * (CenterParLeft - Screen.DesktopLeft)), 0) else SetRect(TextRect, 0, 0, Screen.Width div 2, 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2011-09-07 19:43:40
|
Revision: 13110 http://jvcl.svn.sourceforge.net/jvcl/?rev=13110&view=rev Author: ahuser Date: 2011-09-07 19:43:33 +0000 (Wed, 07 Sep 2011) Log Message: ----------- Fixed 64bit code Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2011-09-07 18:43:34 UTC (rev 13109) +++ trunk/jvcl/run/JvDSADialogs.pas 2011-09-07 19:43:33 UTC (rev 13110) @@ -2224,10 +2224,6 @@ function GetShowModalVMTOffset: Integer; asm MOV EAX, VMTOFFSET TCustomForm.ShowModal - {$IFDEF CPUX64} - {$MESSAGE WARN 'Remove the "SHL EAX, 1" after VMTOFFSET is fixed in the dcc64 compiler'} - SHL EAX, 1 - {$ENDIF CPUX64} end; function GetShowModalVMTIndex: Integer; // Locate the VMT index of ShowModal This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2012-06-13 08:53:26
|
Revision: 13340 http://jvcl.svn.sourceforge.net/jvcl/?rev=13340&view=rev Author: obones Date: 2012-06-13 08:53:16 +0000 (Wed, 13 Jun 2012) Log Message: ----------- Mantis 5888: Must set the Default property for the given button or the form will not give it focus. Also, must use RTL200_UP in the IFDEF as the move to TCustomButton occured in the RTL and has stayed throughout successive versions. If not, all "is" code will return false and many functionalities will stop working. Modified Paths: -------------- trunk/jvcl/run/JvDSADialogs.pas Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2012-06-13 08:26:12 UTC (rev 13339) +++ trunk/jvcl/run/JvDSADialogs.pas 2012-06-13 08:53:16 UTC (rev 13340) @@ -51,9 +51,9 @@ FTimer: TTimer; FCountdown: IJvDynControlCaption; FMsg: string; - FDefaultButton: {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}; + FDefaultButton: {$IFDEF RTL200_UP}TCustomButton{$ELSE}TButton{$ENDIF}; protected - property DefaultButton: {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF} read FDefaultButton write FDefaultButton ; + property DefaultButton: {$IFDEF RTL200_UP}TCustomButton{$ELSE}TButton{$ENDIF} read FDefaultButton write FDefaultButton ; procedure CustomKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure CustomMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure CustomShow(Sender: TObject); @@ -570,8 +570,8 @@ WriteToClipboard(GetFormText); end; if Key = VK_RETURN then - if ActiveControl is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF} then - {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}(ActiveControl).Click + if ActiveControl is {$IFDEF RTL200_UP}TCustomButton{$ELSE}TButton{$ENDIF} then + {$IFDEF RTL200_UP}TCustomButton{$ELSE}TButton{$ENDIF}(ActiveControl).Click else if Assigned(DefaultButton) then DefaultButton.Click; end; @@ -586,16 +586,16 @@ var I: Integer; First : Boolean; - Btn : {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}; + Btn : {$IFDEF RTL200_UP}TCustomButton{$ELSE}TButton{$ENDIF}; begin if Timeout <> 0 then FTimer.Enabled := True; First := True; for I := 0 to ComponentCount - 1 do begin - if (Components[i] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}) then + if (Components[i] is {$IFDEF RTL200_UP}TCustomButton{$ELSE}TButton{$ENDIF}) then begin - Btn := (Components[i] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}); + Btn := (Components[i] as {$IFDEF RTL200_UP}TCustomButton{$ELSE}TButton{$ENDIF}); if First then begin First := False; @@ -629,9 +629,9 @@ FTimer.Enabled := False; for I := 0 to ComponentCount - 1 do begin - if (Components[i] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}) and (Components[i] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}).Default then + if (Components[i] is {$IFDEF RTL200_UP}TCustomButton{$ELSE}TButton{$ENDIF}) and (Components[i] as {$IFDEF RTL200_UP}TCustomButton{$ELSE}TButton{$ENDIF}).Default then begin - (Components[i] as {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF}).Click; + (Components[i] as {$IFDEF RTL200_UP}TCustomButton{$ELSE}TButton{$ENDIF}).Click; Exit; end; end; @@ -685,7 +685,7 @@ begin DividerLine := StringOfChar('-', 27) + CrLf; for I := 0 to ComponentCount - 1 do - if Components[i] is {$IFDEF DELPHI12}TCustomButton{$ELSE}TButton{$ENDIF} then + if Components[i] is {$IFDEF RTL200_UP}TCustomButton{$ELSE}TButton{$ENDIF} then ButtonCaptions := ButtonCaptions + TButton(Components[i]).Caption + StringOfChar(' ', 3); ButtonCaptions := StringReplace(ButtonCaptions, '&', '', [rfReplaceAll]); Result := Format('%s%s%s%s%s%s%s%s%s%s', [DividerLine, Caption, CrLf, DividerLine, @@ -979,8 +979,10 @@ Button := DynControlEngine.CreateButton(ResultForm, BottomPanel, 'Button' + IntToStr(I), Buttons[I], '', nil, False, False); Button.ModalResult := Results[I]; if I = DefaultButton then + begin ResultForm.DefaultButton := Button; -// Button.Default := True; + Button.Default := True; + end; if I = CancelButton then Button.Cancel := True; Button.TabStop := True; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |