AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid onColSizeChange?=! schön wärs :)

Ein Thema von tuxic · begonnen am 1. Mai 2004 · letzter Beitrag vom 2. Mai 2004
Antwort Antwort
tuxic

Registriert seit: 3. Feb 2004
Ort: Berlin
90 Beiträge
 
#1

StringGrid onColSizeChange?=! schön wärs :)

  Alt 1. Mai 2004, 19:42
Hi,
ich würde gerne bei einer Veränderung der Breite einer Spalte etwas ausführen... gibt es dafür ein vordefiniertes Ereignis???
LOAD "Windows XP", 8, 1
---- immerhin ein floppy, und keine Datasette ----
http://www.devloop.de
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#2

Re: StringGrid onColSizeChange?=! schön wärs :)

  Alt 1. Mai 2004, 21:20
Moin, moin,

sorry definitv nein. Dann müßte es ein Ereignis in den Columns eines Grids geben aus dem
dann das StringGrid zusammengebaut ist. Praktisch müßte da eine neue Komponente her und
das ist sicherlich eine die nicht einfach vom StringGrid abgeleitet ist.

Aber Du könntest versuchen auf ein OnClick Erreignis zu reagieren, die Mouseposition abfragen
und wenn diese im GridHeaderbereich ist Deine Spaltenbreiten nachsehen. Ok ist ein durch die
Schulter über Bauch in die Brust Workaround, aber vielleicht kennt ja jemnad tatsächlich eine
Komponente die sowas eingebaut hat...

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#3

Re: StringGrid onColSizeChange?=! schön wärs :)

  Alt 1. Mai 2004, 21:33
hallo martin,
Delphi-Quellcode:
with grd1 do begin
         if colwidths[1] <> defaultcolwidth then
            showmessage('änderung');
            colwidths[1]:=defaultcolwidth;
       end;
könnte aber gehen

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#4

Re: StringGrid onColSizeChange?=! schön wärs :)

  Alt 1. Mai 2004, 21:53
Hi kiar,

kein Widerspruch - klingt gut und das dann ins MouseUp-Ereignis,
dann kommt das der Idee schon ziemlich nahe. Hm sieht tatsächlich
viel kürzer aus als ich mir das gedacht habe!


Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
tuxic

Registriert seit: 3. Feb 2004
Ort: Berlin
90 Beiträge
 
#5

Re: StringGrid onColSizeChange?=! schön wärs :)

  Alt 1. Mai 2004, 22:01
tjo, also da es da kein, öhm... nennen wir es mal explizieteren weg gibt, werd ich das mal so tun...

Danke euch
LOAD "Windows XP", 8, 1
---- immerhin ein floppy, und keine Datasette ----
http://www.devloop.de
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: StringGrid onColSizeChange?=! schön wärs :)

  Alt 1. Mai 2004, 22:52
Den Vergleich mit der DefaultWdith halte ich nicht für sooo gut. Es würde auch zünden, wenn sich die Breite nicht nochmal geändet hat.

Ich glaube man kommt hier leider nicht um eine Private Variable herum.
Du könntest im PRIVATE-Teil des Forms sowas deklarieren:
  fPrevColWidths :array of integer; Dann noch im OnCreate des Forms:
Delphi-Quellcode:
var
  i: Integer;
begin
  with DeinGrid do
  begin
    SetLength(fPrevColWidths, ColCount);
    for i := 0 to pred(ColCount) do
      fPrevColWidths[i] := ColWidths[i];
  end;
end;
Im OnMouseUp Des StringGrids:
Delphi-Quellcode:
var
  lCol, lRow: Integer;
begin
  with Sender as TStringGrid do
  begin
    // Über welcher Zelle ist die Maus?
    MouseToCell(X, Y, lCol, lRow);

    // Nur für die Titelzeile...
    if lRow < FixedRows then
      //...und nur wenn die Spaltenbreite von der vorherigen abweicht
      if ColWidths[lCol] <> fPrevColWidths[lCol] then
      begin
        try
          // Hier kannst du darauf reagieren...
          // ...

          //das muss auf jeden fall ausgeführt werden
          //(sonst weißt du beim nächsten Mal nicht, ob sich die Breite wieder geändert hat)
        finally
          fPrevColWidths[lCol] := ColWidths[lCol];
        end;
      end;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#7

Re: StringGrid onColSizeChange?=! schön wärs :)

  Alt 1. Mai 2004, 23:59
@robert, wollte nur zeigen, das man nicht unbedingt ne kompo ableiten muss.

deine variante ist sicherlich eleganter und trägt auch dem einwand, das es dann immer feuern würde rechnung.

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
tuxic

Registriert seit: 3. Feb 2004
Ort: Berlin
90 Beiträge
 
#8

Re: StringGrid onColSizeChange?=! schön wärs :)

  Alt 2. Mai 2004, 09:11
naja, ich hab ja eh schon eine globale Variable in der die Breiten stehen. Es ging mir jetzt darum, rauszukriegen, wann sich die Breiten ändern, um sie beim beenden in eine INI zu schreiben.
LOAD "Windows XP", 8, 1
---- immerhin ein floppy, und keine Datasette ----
http://www.devloop.de
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:43 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