Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frage zum in MousDown Stringgrid ??? (https://www.delphipraxis.net/50191-frage-zum-mousdown-stringgrid.html)

Gigant02 21. Jul 2005 20:41


Frage zum in MousDown Stringgrid ???
 
Frage MousDown Stringgrid ???

Also ich habe ein String grid 3 spalten und wenn der Benutzer auf spalte 1 klickt soll er mir denn Inhalt der spalte 1 wiedergeben und das von der richtigen Zeile !!!

Nun OK aber wenn der Benutzer in Spalte 2 klickt soll er trotzdem denn Inhalt der spalte 1 wieder geben

Wie komm ich da weiter ??? ich peile das noch nicht ganz so

Lg, Gigant

hanselmansel 21. Jul 2005 21:04

Re: Frage zum in MousDown Stringgrid ???
 
Du könntest die Ereignisbehandlungsroutine des StringGrid's OnSelectCell benutzen.
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
var
  Container :String;
begin
Container := StringGrid1.Cells[0,ARow];
end;
Hoffe, ich konnte deine Anfrage korrekt interpretieren... :?

Viele Grüße,

hanselmansel

Gigant02 21. Jul 2005 21:26

Re: Frage zum in MousDown Stringgrid ???
 
jup genau das wollte ich wissen

danke

lg, Gigant

Gigant02 26. Jul 2005 10:33

Re: Frage zum in MousDown Stringgrid ???
 
So nun frag ich moch ob ich auch ereignisse auslösen kann wenn ich auf die fixed Cells klicke ???

es muss ja auch möglich sein

wenn ich jetzt z.B. auf die eine Spalte klicke das er danach sortiert oder wenn ich auf eine andere klicke das er dann anders sortiert.

keine angst sortierung müssen wir hier nicht durchkauen :)

lg, Gigant

hanselmansel 27. Jul 2005 07:41

Re: Frage zum in MousDown Stringgrid ???
 
So, ich habe genau gleiches Problem einmal gehabt, und poste hier mal die OnMouseDown-Procedure. Wahrscheinlich ist es auf die uneleganteste Weise ever gelöst, und der Code ist eine schande, aber Hauptsache es funktioniert.

Eigentlich sollte es mehr oder minder selbsterklärend sein, für Support stehe ich aber gerne zur Verfügung.
Delphi-Quellcode:
procedure TForm_Hauptfenster.sg_StufenlisteMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
  Begin
  if Y < sg_Stufenliste.RowHeights[0] then
    Begin
    If (X > sg_Stufenliste.ColWidths[0]+1)AND(X < sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]+1) then
      Begin
      //Feld 2 Index1
      SortAendern(1);
      SortMenueX;
      nachVorname1.Bitmap.Assign(imHaken);
      End
    Else If (X > sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]+2)
         AND(X < sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]
                +sg_Stufenliste.ColWidths[2]+2) then
      Begin
      //Feld3
      SortAendern(2);
      SortMenueX;
      nachName1.Bitmap.Assign(imHaken);
      End
    Else If (X > sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]+sg_Stufenliste.ColWidths[2]+3)
         AND(X < sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]+sg_Stufenliste.ColWidths[2]
            +sg_Stufenliste.ColWidths[3]+3) then
      Begin
      // Feld 4
      SortAendern(3);
      SortMenueX;
      nachGeburtsdatum1.Bitmap.Assign(imHaken);
      End
    Else If (X > sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]+sg_Stufenliste.ColWidths[2]
            +sg_Stufenliste.ColWidths[3]+4)
         AND(X < sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]+sg_Stufenliste.ColWidths[2]
            +sg_Stufenliste.ColWidths[3]+sg_Stufenliste.ColWidths[4]+4) then
      Begin
      //Feld 5
      SortAendern(4);
      SortMenueX;
      nachStrae1.Bitmap.Assign(imHaken);
      End
    Else If (X > sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]+sg_Stufenliste.ColWidths[2]
            +sg_Stufenliste.ColWidths[3]+sg_Stufenliste.ColWidths[4]+5)
         AND(X < sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]+sg_Stufenliste.ColWidths[2]
            +sg_Stufenliste.ColWidths[3]+sg_Stufenliste.ColWidths[4]+sg_Stufenliste.ColWidths[5]+5) then
      Begin
      //Fald 6
      SortAendern(5);
      SortMenueX;
      nachPostleitzahl1.Bitmap.Assign(imHaken);
      End
    Else If (X > sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]+sg_Stufenliste.ColWidths[2]
            +sg_Stufenliste.ColWidths[3]+sg_Stufenliste.ColWidths[4]+sg_Stufenliste.ColWidths[5]+6)
         AND(X < sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]+sg_Stufenliste.ColWidths[2]
            +sg_Stufenliste.ColWidths[3]+sg_Stufenliste.ColWidths[4]+sg_Stufenliste.ColWidths[5]
            +sg_Stufenliste.ColWidths[6]+6) then
      Begin
      //Feld 7
      SortAendern(6);
      SortMenueX;
      nachWohnort1.Bitmap.Assign(imHaken);
      End
    Else If (X > sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]+sg_Stufenliste.ColWidths[2]
            +sg_Stufenliste.ColWidths[3]+sg_Stufenliste.ColWidths[4]+sg_Stufenliste.ColWidths[5]
            +sg_Stufenliste.ColWidths[6]+7)
         AND(X < sg_Stufenliste.ColWidths[0]+sg_Stufenliste.ColWidths[1]+sg_Stufenliste.ColWidths[2]
            +sg_Stufenliste.ColWidths[3]+sg_Stufenliste.ColWidths[4]+sg_Stufenliste.ColWidths[5]
            +sg_Stufenliste.ColWidths[6]+sg_Stufenliste.ColWidths[7]+7) then
      Begin
      SortAendern(7);
      SortMenueX;
      nachTelefonnummer1.Bitmap.Assign(imHaken);
      End;
    End;
  end
Else If Button = mbRight then
  Begin
  PopupMenue.Popup(X+Form_Hauptfenster.Left+sg_Stufenliste.Left
                  ,Y+Form_Hauptfenster.Top+sg_Stufenliste.Top);
  End;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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