AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Größe von GroupBox ändern

Ein Thema von Knotti2005 · begonnen am 19. Dez 2005 · letzter Beitrag vom 27. Dez 2005
Antwort Antwort
Knotti2005

Registriert seit: 10. Nov 2005
275 Beiträge
 
#1

Größe von GroupBox ändern

  Alt 19. Dez 2005, 19:54
Gibt es eine Möglichkeit damidt der Benutzer die Größe der GroupBox ähnerlich wie bei der Form (BorderStyle - bsSizeable) ändern kann?
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#2

Re: Größe von GroupBox ändern

  Alt 21. Dez 2005, 14:32
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!

Und hier der Link zum Produkt
Danke
Tom
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Größe von GroupBox ändern

  Alt 21. Dez 2005, 14:45
Verwende doch den TSplitter.
Dies reicht meist aus, um die üblichen Benutzerwünsche zu erfüllen.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 4. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#4

Re: Größe von GroupBox ändern

  Alt 21. Dez 2005, 16:33
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:
//-------------- 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 ----------------------------
Anwendung:

Delphi-Quellcode:

gbSeekArt : 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;
mfg
eddy
  Mit Zitat antworten Zitat
Knotti2005

Registriert seit: 10. Nov 2005
275 Beiträge
 
#5

Re: Größe von GroupBox ändern

  Alt 27. Dez 2005, 22:35
kann mir jemaand helfen bei diesem PRoblembin ich noch nicht so richtig weiter...


Ich habe immer viele Ideen.
Meine Ideen = Dinge die die Welt nicht braucht
  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 11:10 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