![]() |
StringGrid soll Form komplett füllen
Auf eine Form lege ich ein Stringgrid. Wie kann ich das jetzt so machen, daß keine Ränder mehr zu sehen sind ? Weder oben noch unten.
|
Re: StringGrid soll Form komplett füllen
Was für Ränder meinst du genau?
mit align := alClient sollte es doch gehen, allerdings weiß ich nicht was für Ränder du meinst? Sollte man sie nicht deaktivieren können, kannst du das ja selber im OnResize-Event machen, dann schiebst du das Stringgrid einfach über die Form hinaus :mrgreen: Aber der Zweck heiligt die Mittel ;-) |
Re: StringGrid soll Form komplett füllen
Ohh, die Ränder sind die zwischen dem Grid und dem Form-Rand. Legt doch mal eine Form an und darauf ein StringGrid. Das kriege ich nicht ohne Rand hin. Auch nicht mit alClient etc., weil irgendwas da irgendwo fehlt.
P.S.: Unter Rand verstehe ich nicht den Rand des Fensters, sondern den Abstand zwischen dem Grid und der Form, also die freie Fläche. Das Form ist zu groß. Wie jetzt da das Grid genauso groß machen, daß es gerade noch in die Form paßt :?: |
hmm,
einen Fensterrahmen hast du immer, meinste den oder wie ?
Ansonsten, ich leg immer erst ein Panel auf die Form, da lässt es sich leichter arbeiten wenn man die sache um andere Komponenten erweitert. Naja und da musste dann die bevels ausschalten. |
Re: StringGrid soll Form komplett füllen
Macht BorderStyle := bsNone das was Du möchtest?
|
Re: StringGrid soll Form komplett füllen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi!
Mach doch die Form transparent, so sieht's dann aus (Anhang).
Delphi-Quellcode:
[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
procedure TForm1.FormCreate(Sender: TObject);
begin BorderStyle:=bsNone; end; procedure TForm1.FormActivate(Sender: TObject); var AControl: TControl; A, Margin, X, Y, CtlX, CtlY: Integer; FullRgn, ClientRgn, CtlRgn: THandle; begin Margin := (Width - ClientWidth) div 2; FullRgn := CreateRectRgn(0, 0, Width, Height); X := Margin; Y := Height - ClientHeight - Margin; ClientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight); CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF); for A := 0 to ControlCount - 1 do begin AControl := Controls[A]; if (AControl is TWinControl) or (AControl is TGraphicControl) then with AControl do begin if Visible then begin CtlX := X + Left; CtlY := Y + Top; CtlRgn := CreateRectRgn(CtlX, CtlY, CtlX + Width, CtlY + Height); CombineRgn(FullRgn, FullRgn, CtlRgn, RGN_OR); end; end; end; SetWindowRgn(Handle, FullRgn, True); end; |
Re: StringGrid soll Form komplett füllen
Noch so nebenbei:
Das Fenster (StringGrid) lässt sich dann aber nicht mehr verschieben. :mrgreen: |
Re: StringGrid soll Form komplett füllen
Hai Hansa,
hast Du denn bei deinem Grid auch Borderstyle := bsNone eingestellt? [EDIT]UFF.... das hat Marco ja schon geschrieben. Ich gehe wieder ins Bett[/EDIT] |
Re: StringGrid soll Form komplett füllen
Liste der Anhänge anzeigen (Anzahl: 1)
Ich komme nicht recht weiter. Im Anhang ist ein Bild. Solch ein Grid will ich fensterfüllend haben. Der Rand ist mir relativ egal.
P.S.: Ich meine nicht formfüllend ! Das Fenster, das das Grid hat soll ausgefüllt werden, nicht die Form. P.S. 2: Unter Rand verstehe ich den weißen Rand rechts beim Grid. Nicht die Umrandung, also nicht die Linien !! |
Re: StringGrid soll Form komplett füllen
Dann zieh doch einfach mit der Maus die Breite der Spalten passend...
Oder ändere die Eigenschaften DefaultColWidth und DefaultRowHeight. Ich denke, das ist es, was Du suchst. Gruß Wormid |
Re: StringGrid soll Form komplett füllen
Nein, wenn ich ein Windows-Fenster maximieren will, so kann ich auch das von Hand zu Fuß vergrößern. Also Millimeterarbeit. Dann käme aber tatsächlich der Rand ins Spiel. Genausogut kann ich es durch Klicken oben rechts beim Kreuz maximieren. Dann wäre alles richtig. So soll das von vorneherein bei dem Grid sein. Zumindest im OI finde ich nichts.
|
Re: StringGrid soll Form komplett füllen
Bei Form1.OnResize schreibst du folgendes:
Delphi-Quellcode:
Das müsste funzen
StringGrid1.DefaultColWidth := StringGrid1.ClientWidth div StringGrid1.ColCount;
|
Re: StringGrid soll Form komplett füllen
Aha, aber kann ich das ClientWidth einstellen ? Die Spalten sind übrigens nicht einheitlich. Der Bereich der Spalten soll nur von links nach rechts den ganzen Bereich des Grids ausfüllen. Die Spalten selber könnte oder muß ich sowieso anpassen.
|
Re: StringGrid soll Form komplett füllen
Es gibt eine Width-Eigenschaft für jede Spalte. ClientWidth wird über Width gesetzt, ClientWidth = Width-Rahmen. Die Breite kannst du dann ja vom Prog aus ändern
|
Re: StringGrid soll Form komplett füllen
Also nochmals: Spalte, z.B.: 5 Spalten. Grid geht von ganz rechts nach links und basta. Wie fülle ich diesen Raum aus :?:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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