AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi OnClick Ereignis für StringGrid Zelle in FixedRow
Thema durchsuchen
Ansicht
Themen-Optionen

OnClick Ereignis für StringGrid Zelle in FixedRow

Ein Thema von FlatG · begonnen am 28. Feb 2003 · letzter Beitrag vom 13. Mai 2003
Antwort Antwort
FlatG

Registriert seit: 31. Jan 2003
21 Beiträge
 
Delphi 5 Professional
 
#1

OnClick Ereignis für StringGrid Zelle in FixedRow

  Alt 28. Feb 2003, 09:55
Die erste Zeile meines StringGrids ist FIXED, ich kann also praktisch keine Zelle auswählen. Nun möchte ich aber eine Sortierfunktion einbauen, die das gesamte Grid sortiert je nachdem auf welche Zelle ich in der ersten Zeile geklickt habe

ID | Name | Datum

Klicke ich auf Name wird nach Name sortiert, klicke ich auf Datum wird nach Datum sortiert, nur leider weiss ich nicht, wie ich abfragen soll, ob jemand drauf geklickt hat

Ich habe übrigens aus optischen Gründen RowSelect = True gesetzt, heisst das, dass man nun eh nur noch abfragen könnte ob eine Zeile angeklickt wurde?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 28. Feb 2003, 18:38
Moin FlatG,

Du könntest versuchen das OnClick auf Fixed Rows / Colums im OnMouseUp zu simulieren, indem Du dort prüfst, ob die linke Maustaste diejenige war, die das Ereignis ausglöst hast, dann die "angeklickte" Zelle mit TStringGrid.MouseToCell ermittelst, und dann prüfst, ob es Zeile 0 war, und welche Spalte betroffen ist.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
dopeline

Registriert seit: 7. Mär 2003
Ort: Berlin
304 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 13. Mai 2003, 07:42
Delphi-Quellcode:
procedure SortStringGrid(var GenStrGrid: TStringGrid; ThatCol: Integer);
const
  // Define the Separator
  TheSeparator = '@';
var
  CountItem, I, J, K, ThePosition: integer;
  MyList: TStringList;
  MyString, TempString: string;
begin
  // Give the number of rows in the StringGrid
  CountItem := GenStrGrid.RowCount;
  //Create the List
  MyList := TStringList.Create;
  MyList.Sorted := False;
  try
    begin
      for I := 1 to (CountItem - 1) do
        MyList.Add(GenStrGrid.Rows[I].Strings[ThatCol] + TheSeparator +
          GenStrGrid.Rows[I].Text);
      //Sort the List
      Mylist.Sort;

      for K := 1 to Mylist.Count do
      begin
        //Take the String of the line (K – 1)
        MyString := MyList.Strings[(K - 1)];
        //Find the position of the Separator in the String
        ThePosition := Pos(TheSeparator, MyString);
        TempString := '';
        {Eliminate the Text of the column on which we have sorted the StringGrid}
        TempString := Copy(MyString, (ThePosition + 1), Length(MyString));
        MyList.Strings[(K - 1)] := '';
        MyList.Strings[(K - 1)] := TempString;
      end;

      // Refill the StringGrid
      for J := 1 to (CountItem - 1) do
        GenStrGrid.Rows[J].Text := MyList.Strings[(J - 1)];
    end;
  finally
    //Free the List
    MyList.Free;
  end;
end;
und zum aufrufen der prozedur benutzt du:
Delphi-Quellcode:
procedure TFormHaupt.Vorname1Click(Sender: TObject);
begin
SortStringGrid(StringGrid1, 0); // 0 steht für die Spalte, die sortiert werden soll
end;
das funktioniert (getestet)

Grüße, dopeline
  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 09:37 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