![]() |
StringGrid Width mit Maus während Laufzeit verändern
Hallo miteinander!
Wie kann man mittels
Delphi-Quellcode:
während das Programm läuft, die Breite der Spalte des StringGrid verändern? Das ganze sollte mittels Mausklick passieren wie man es bei Programmen wie Excel gewohnt ist.
sg1.DefaultColWidth:= ...;
Wenn es mit einem anderem Befehl als dem obigen geht, natürlich bitte diesen. Danke im Vorraus. mfG. |
Re: StringGrid Width mit Maus während Laufzeit verändern
Moin!
Du klickst auf das "+" im OI vor Options. Danach stellst du goColSizing auf TRUE und du kannst im Programm die Breite der Zellen ändern. MfG Niels [edit] PS: wenn du goRowSizing auch auf TRUE machst kannste auch die Zeilenhöhe verändern. [/edit] |
Re: StringGrid Width mit Maus während Laufzeit verändern
Hi!
Ich wärme das hier mal auf mit einem kleinen Zusatz-Tipp: Mit goRowSizing = true / goColSizing = true kann man nur die Spaltenbreiten über die "FixedRows" / "FixedCols" ändern (das sind die grauen Spalten- / Zeilenüberschriften. Ich bin darüber gestolpert, weil ich die Breite durch Klick und Ziehen auf die Trennlinien der einfachen Felder ändern wollte - das funktioniert nicht. Also: Mindestens Fixed[Rows|Cols] = 1 einstellen, damit man darüber die Breite bzw. Höhe verändern kann! Mamphil |
Re: StringGrid Width mit Maus während Laufzeit verändern
Hallo
Kann mir vielleicht nocheinmal jemand weiter helfen wie ich jetzt genau die Zellengröße für eine Spalte ändern kann? Ich habe lediglich Spalten mit Daten, keine Kopfzeile mit Überschriften. Und nur mit goRowSizing = true / goColSizing = true lässt sich da leider nichts bewirken. Zumal ich die Zellspalten ja nicht von Hand verschieben möchte (was übrigens auch nicht geht), sondern sie von anfang an in einer gewissen Größe anzeigen. Wie geht das :cry: ? Gruß Sturmrider |
Re: StringGrid Width mit Maus während Laufzeit verändern
Hi!
Dann hilft dir vielleicht das hier weiter:
Delphi-Quellcode:
stringgrid1.ColWidths[1]:=250;
|
Re: StringGrid Width mit Maus während Laufzeit verändern
kann man erreichen das bei 3spalten die letzten 2 enabled:=false gesetzt werden und die erste im editiermodus vorliegt?
|
Re: StringGrid Width mit Maus während Laufzeit verändern
Hallo,
beispielsweise kann man so keine Zellen in der 3ten Spalte(Index = 2) selectieren, also auch nichts eintragen:
Delphi-Quellcode:
Und so können die Zellen der 3ten Spalte zwar selectiert werden,
procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col, Row: Integer;
var CanSelect: Boolean); begin if Col = 2 then CanSelect := False else CanSelect := True; end; aber es kann nichts eingegeben werden:
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col, Row: Integer;
var CanSelect: Boolean); begin if Col = 2 then StringGrid1.Options := StringGrid1.Options-[goEditing] else StringGrid1.Options := StringGrid1.Options+[goEditing]; end; |
Re: StringGrid Width mit Maus während Laufzeit verändern
@fkerber
Vielen Dank :-D funktioniert einwandfrei. Ich habe es in eine FormActivate-procedure gepackt ^^ so, dass beim Starten des Progs. die Tabellen sofort angepasst werden. War nur etwas schwehr mit den Überschriften der Spalten, die ich extra, also nicht im StringGrid hatte...aber mit ein bischen herumprobieren hat auch das hinterher funktioniert ^^ DANKE nocheinmal! |
Re: StringGrid Width mit Maus während Laufzeit verändern
wenn man in spalte 1 eine zelle editiert und dann in eine zelle in der 2.spalte klickt ist diese auch editierbar. warum?
Delphi-Quellcode:
if ACol = 0 then begin
sgfiles.Options := sgfiles.Options+[goEditing]; sgfiles.Options := sgfiles.Options-[goRowSelect]; end else begin sgfiles.Options := sgfiles.Options-[goEditing]; sgfiles.Options := sgfiles.Options+[goRowSelect]; end |
Re: Automatisches Anpassen anhand Stringgrid weite
gehört indirekt zum topic:
ich will die länge eines tedit automatisch anhand einer tstringgrid text anpassen: rename.Width:= length(fmformat.sgfiles.Cells[0,1]); fmrename.width:= length(rename.text) + 200; warum wird das tedit (rename.text) zur laufzeit zusammengeschoben? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 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