Autor Beitrag
Spaceguide
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 552


(D3/D7/D8) Prof.
BeitragVerfasst: Do 15.09.05 00:34 
Wie krieg ich am elegantesten (ausser selber malen) einen Sizegrip für skalierbare Fenster hin?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 15.09.05 00:44 
Statusbar, zwei Panels in der Statusbar erzeugen und beide auf Bevel pbNone stellen. Schmutzig aber geht. ;)
Spaceguide Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 552


(D3/D7/D8) Prof.
BeitragVerfasst: Do 15.09.05 01:00 
Da fehlt dann aber auch der untere Bereich, oder?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 15.09.05 02:58 
Was für ein unterer Bereich? Die Höhe der Statusbar kannst du dann natürlich nicht mehr nutzen, das ist klar.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Do 15.09.05 07:13 
Hallo,

das Zeichen für den SizeGrip wird durch das zeichen 'o' mit der Schrift Marlett erzeugt. Ein entsprechend eingerichtetes Label unten rechts positionieren, dann sieht es in etwa so aus wie ein SizeGrip. Oder ein Bitmap erstellen und entsprechend einrichten.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Do 15.09.05 08:15 
demnach ist diese schriftart zwingend auf allen windowssystemen mitgeiefert oder ?

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Do 15.09.05 09:01 
Also ich persönlich mache das immer gerne mit einer Statusbar. Da man dann auch auf die Linien klicken kann und das Fenster so auch in der Größe verändern kann.

Ich belasse das Align des Grids nicht auf alBottom sondern stelle es auf alNone und weise ihm eine Höhe und Breite von 17 zu. Wenn die "Statusbar" dann mit den Anchors ([alRight, alBottom]) in der Ecke festgemacht ist, dann kann der Platz noch von anderen Komponenten noch genutzt werden und die Linien sind dennoch da. Wichtig ist, dass es jederzeit an dieser Stelle bleiben muss, da sonst die Linien verschwinden würden.

Eine Panel mit Bevel = pbNone muss auch noch erstellt werden.

@Matze: Ja. Marlett ist zwingender Bestandteil von Windows. Die Button oben im Fenster, Checkboxen, Pfeile bei Stringlisten oder Comboboxen stammen alle aus dieser Schriftart. Ich habe es mich bisher noch nicht gewagt diese zu entfernen. ;-)

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
Spaceguide Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 552


(D3/D7/D8) Prof.
BeitragVerfasst: Do 15.09.05 13:50 
Also ich hab's jetzt so gemacht: TStatusbar abgeleitet und im Constructor so vorbereitet wie von Lossy eX empfohlen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
type
 TSizeGrip = class(TStatusbar)
 public
  constructor Create(AOwner: TComponent); override;
 end;

constructor TSizeGrip.Create(aOwner: TComponent);
begin
 inherited;

 Align := alNone;

 if aOwner is TWinControl then
 begin
  Parent := aOwner as TWinControl;
  Width:=Height;
  Left := Parent.ClientWidth-Width;
  Top := Parent.ClientHeight-Height;
 end;

 with Panels.Add do Bevel := pbNone;
 Anchors := [akRight,akBottom];
 SendToBack;
end;


im FormCreate des Fensters dann einfach ein

ausblenden Delphi-Quelltext
1:
TSizeGrip.Create(self);					


und gut isch.