![]() |
Größe von GroupBox ändern
Gibt es eine Möglichkeit damidt der Benutzer die Größe der GroupBox ähnerlich wie bei der Form (BorderStyle - bsSizeable) ändern kann?
|
Re: Größe von GroupBox ändern
Du solltest Dir vielleicht mal die Komponentensammlung von Greatis ansehen. Die können damit sämtliche Controls zur Laufzeit verschieben und skalieren, automatisiert anordnen und vieles mehr. Ist aber nicht kostenlos!
![]() |
Re: Größe von GroupBox ändern
Verwende doch den TSplitter.
Dies reicht meist aus, um die üblichen Benutzerwünsche zu erfüllen. |
Re: Größe von GroupBox ändern
Hallo,
ich habe sowas mal vor einiger Zeit zusammengebastelt. Ist sicher nicht perfekt, aber vielleicht kann es dir als Basis für eine Lösung deines Problems dienen:
Delphi-Quellcode:
Anwendung:
//-------------- Größenänderung von Objecten -----------------------------------
{ Anwendung in den Objekt-Ereignissen OnMouseMove, OnMouseDown und OnMouseUp: FAllgUP2.ChgSizeMMove(Sender, Shift, X,Y); FAllgUP2.ChgSizeMDown(Sender, Button); FAllgUP2.ChgSizeMUp(Sender, Button); } procedure TFAllgUP21.ResetMBLeft; begin fMBLeftDown := false; fSzTyp := 0; end; procedure TFAllgUP21.ChgSizeMUp(Sender: TObject; Button: TMouseButton); begin fMBLeftDown := false; //not (Button = mbLeft); end; procedure TFAllgUP21.ChgSizeMDown(Sender: TObject; Button: TMouseButton); begin fMBLeftDown := Button = mbLeft; fLstTyp := fSzTyp; end; procedure TFAllgUP21.ChgSizeMMove(Sender: TObject; Shift: TShiftState; X,Y: Integer); const MinHeight = 50; //damit das Objekt nicht vom Bildschirm verschwinden kann MinWidth = 50; var cleft, cwidth, // ctop, cheight : integer; begin // ctop := (Sender as TControl).Top; cheight := (Sender as TControl).Height; cleft := (Sender as TControl).Left; cwidth := (Sender as TControl).Width; if (y > cheight - 15) and (y < cHeight + 15) then begin fSzTyp := 2; if (x > cwidth - 15) and (x < cwidth) then fSzTyp := 5; end else if y < 15 then fSzTyp := 1 else if x < 15 then fSzTyp := 3 else if (x > cwidth - 15) and (x < cwidth) then fSzTyp := 4 else fSzTyp := 0; case fSzTyp of 1 : (Sender as TControl).Cursor := crSizeAll; 2 : (Sender as TControl).Cursor := crVSplit; 3, 4 : (Sender as TControl).Cursor := crHSplit; 5 : (Sender as TControl).Cursor := crSizeNWSE; else (Sender as TControl).Cursor := crDefault; end; // of case if fMBLeftDown then begin case fLstTyp of 1 : begin if (ssShift in Shift) then begin (Sender as TControl).Align := alClient; (Sender as TControl).Align := alNone; end else begin ReleaseCapture; (Sender as TControl).perform(WM_SysCommand,SC_DragMove,0); end; { if x > 25 then begin ReleaseCapture; (Sender as TControl).perform(WM_SysCommand,SC_DragMove,0); end else if (y < 25) and (x < 25) and (ssShift in Shift) then begin (Sender as TControl).Align := alClient; (Sender as TControl).Align := alNone; end; } end; 2 : (Sender as TControl).Height := Max(y, MinHeight); 3 : begin (Sender as TControl).Width := Max(cwidth - x, MinWidth); (Sender as TControl).Left := cleft + x; end; 4 : (Sender as TControl).Width := Max(x, MinWidth); 5 : begin (Sender as TControl).Height := Max(y, MinHeight); (Sender as TControl).Width := Max(x, MinWidth); end; end; // of case end; SetDf; end; //-------------- end of Größenänderung von Objecten ----------------------------
Delphi-Quellcode:
mfggbSeekArt : TGroupBox; // oder auch TJvgGroupBox; procedure TFAuf.gbSeekArtMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin FAllgUP21.ChgSizeMMove(Sender, Shift, X,Y); end; procedure TFAuf.gbSeekArtMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FAllgUP21.ChgSizeMDown(Sender, Button); end; procedure TFAuf.gbSeekArtMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FAllgUP21.ChgSizeMUp(Sender, Button); FAllgUP21.WrObjPos(inifile, gbSeekArt); // speichert Position und Größe in eine Ini-Datei end; eddy |
Re: Größe von GroupBox ändern
kann mir jemaand helfen bei diesem PRoblembin ich noch nicht so richtig weiter...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz