AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi StringGrid Width mit Maus während Laufzeit verändern
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid Width mit Maus während Laufzeit verändern

Ein Thema von n00b_on_knees · begonnen am 17. Dez 2003 · letzter Beitrag vom 17. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#1

StringGrid Width mit Maus während Laufzeit verändern

  Alt 17. Dez 2003, 20:15
Hallo miteinander!

Wie kann man mittels

sg1.DefaultColWidth:= ...; 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.

Wenn es mit einem anderem Befehl als dem obigen geht, natürlich bitte diesen.

Danke im Vorraus.
mfG.
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Niels

Registriert seit: 25. Okt 2003
192 Beiträge
 
#2

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 17. Dez 2003, 20:57
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]
  Mit Zitat antworten Zitat
Benutzerbild von Mamphil
Mamphil

Registriert seit: 17. Jul 2004
Ort: Garching b. München
149 Beiträge
 
Delphi 7 Professional
 
#3

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 2. Okt 2004, 12:51
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
  Mit Zitat antworten Zitat
Sturmrider

Registriert seit: 12. Mär 2006
30 Beiträge
 
#4

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 8. Mai 2006, 10:14
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 ?

Gruß Sturmrider
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#5

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 8. Mai 2006, 10:17
Hi!

Dann hilft dir vielleicht das hier weiter:

stringgrid1.ColWidths[1]:=250;
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 9. Mai 2006, 16:53
kann man erreichen das bei 3spalten die letzten 2 enabled:=false gesetzt werden und die erste im editiermodus vorliegt?
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#7

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 9. Mai 2006, 19:27
Hallo,

beispielsweise kann man so keine Zellen in der 3ten Spalte(Index = 2) selectieren,
also auch nichts eintragen:
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col, Row: Integer;
  var CanSelect: Boolean);
begin
  if Col = 2 then
    CanSelect := False
    else
      CanSelect := True;
end;
Und so können die Zellen der 3ten Spalte zwar selectiert werden,
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;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Sturmrider

Registriert seit: 12. Mär 2006
30 Beiträge
 
#8

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 9. Mai 2006, 21:22
@fkerber
Vielen Dank 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!
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: StringGrid Width mit Maus während Laufzeit verändern

  Alt 10. Mai 2006, 14:58
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
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Automatisches Anpassen anhand Stringgrid weite

  Alt 12. Mai 2006, 14:01
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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:17 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