AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Wie erfahre ich, auf welche Zeile im Stringgrid geklickt wurde?

Wie erfahre ich, auf welche Zeile im Stringgrid geklickt wurde?

Ein Thema von jumper63 · begonnen am 28. Okt 2021 · letzter Beitrag vom 30. Okt 2021
Antwort Antwort
Seite 1 von 2  1 2   
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#1

AW: Wie erfahre ich, auf welche Zeile im Stringgrid geklickt wurde?

  Alt 29. Okt 2021, 09:38
Zitat von jumper63:
aber ich benötige die Angabe Col,Row, um die Werte der jeweiligen Zeile auszulesen.
Dafür braucht man eher kein Menü, egal mit welcher Maustaste.

Genauer als
Zitat von Jasocul:
Oder man nimmt das Event OnSelectCell.
geht es da nicht.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Wie erfahre ich, auf welche Zeile im Stringgrid geklickt wurde?

  Alt 29. Okt 2021, 09:46
OnSelect wird doch auch gefeuert wenn man mit Tastatur sich im Grid bewegt? (auf welche Zeile im Stringgrid geklickt wurde = maus event)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#3

AW: Wie erfahre ich, auf welche Zeile im Stringgrid geklickt wurde?

  Alt 29. Okt 2021, 10:24
OnSelect wird doch auch gefeuert wenn man mit Tastatur sich im Grid bewegt? (auf welche Zeile im Stringgrid geklickt wurde = maus event)
Und für die Leute, die "so dreist sind" das Programm per Tastatur zu bedienen, bauen wir eine extra Lösung?

Ein Programm, bei dem ich bestimmte Aktionen nur per Maus erreichen kann, benutze ich nicht.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Wie erfahre ich, auf welche Zeile im Stringgrid geklickt wurde?

  Alt 29. Okt 2021, 11:04
ich möchte weder streiten noch recht bekommen deswegen verlasse ich dieses thema.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Wie erfahre ich, auf welche Zeile im Stringgrid geklickt wurde?

  Alt 29. Okt 2021, 12:35
Hi jumper63

Vielleicht hilft dir ja auch das da oder auch dies.

Zitat:
//StringGrid1.MouseToCell(p.x, p.y, Col, Row);
Der Fehler hier war:
1. Du hast den werten p.x und p.y keine Inhalte zugewiesen (nicht initialisiert). Somit enthalten die beiden Zufallswerte.
oder
2. Du hättest statt einer TPointstruktur auch X & Y direkt verwenden können.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor (29. Okt 2021 um 12:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.375 Beiträge
 
Delphi 12 Athens
 
#6

AW: Wie erfahre ich, auf welche Zeile im Stringgrid geklickt wurde?

  Alt 29. Okt 2021, 14:46
Du hast den werten p.x und p.y keine Inhalte zugewiesen (nicht initialisiert). Somit enthalten die beiden Zufallswerte.
Doch, hat er.
Zitat:
p := ScreenToClient(...
Und zu 2 ... nein, da ScreenToClient kein X und Y einzeln liefert.

Wobei ScreenToClient eh falsch war, da X und Y garkeine Screen- sondern bereits Client-Koordinaten sind
und da dann nochmal relative Client-Koordinaten (Left/Top, also Grid zu seinem Owner) dazuaddiert ... da kann ja nichts Sinnvolles bei raus kommen.

Aber will MouseToCell nun Screen- oder Client-Koordinaten?

Touchscreen ohne Tastatur ... och der Arme hat nichtmal ein Handy


Und WARUM sind L und T globale Variablen?
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (29. Okt 2021 um 14:52 Uhr)
  Mit Zitat antworten Zitat
jumper63

Registriert seit: 25. Aug 2019
Ort: Berlin
8 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Wie erfahre ich, auf welche Zeile im Stringgrid geklickt wurde?

  Alt 29. Okt 2021, 19:21
Hallo KodeZwerg!

MEGAVIELEN DANK!
Klappt PERFEKT!
Uli
  Mit Zitat antworten Zitat
jumper63

Registriert seit: 25. Aug 2019
Ort: Berlin
8 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Wie erfahre ich, auf welche Zeile im Stringgrid geklickt wurde?

  Alt 29. Okt 2021, 19:30
Aber warum Bitte kein with im code??

Naja, bei nur 2 Zuweisungen unnötig.
Uli
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Wie erfahre ich, auf welche Zeile im Stringgrid geklickt wurde?

  Alt 29. Okt 2021, 21:20
Hi jumper63

Aber warum Bitte kein with im code??

Naja, bei nur 2 Zuweisungen unnötig.
Alles zwischen with und dem zugehörigen end bezieht sich auf das selbe Object. Die Chance ist gross, das einer im Verlauf der Entwicklung eine Property einer andern Komponente ansprechen will und vergisst, dieses andere Objekt explizit zu adressieren (Object.Property) und dann stundenlang nach dem Fehler sucht. Und natürlich wird nicht da gesucht, wo der Code scheinbar so leicht lesbar ist und desshalb 'garantiert' ohne Fehler. Oder du hast mehrere Edits und ein Struktur wie X := TEdit(Property). Und jetzt mussder Compiler entscheiden, welches Edit du meinst.
Fazit: ein 'with' spart nur scheinbar Tipparbeit, sorgt aber in vielen Fällen für mehr Arbeit andere Aert.
Tipparbeit kann man sich auch per Drag&Drop sparen.

Und meine Argumente sind bestimmt nicht die einzigen...

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor (29. Okt 2021 um 22:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.375 Beiträge
 
Delphi 12 Athens
 
#10

AW: Wie erfahre ich, auf welche Zeile im Stringgrid geklickt wurde?

  Alt 29. Okt 2021, 22:19
Beispiel TRect.

früher ging sowas wie
Delphi-Quellcode:
with MyRect do begin
  Width := Right - Left;
  Height := Bottom - Top;
Um die Größe einer Form zu setzen (z.B. im OnCreate), und jetzt wunderst du dich, dass scheinbar garnichts mehr passiert, obwohl der Compiler sagt "alles OK", weil
Delphi-Quellcode:
with MyRect do begin
  Self.Width := Right - Left;
  Self.Height := Bottom - Top;

// oder
Self.Width := MyRect.Right - MyRect.Left;
Self.Height := MyRect.Bottom - MyRect.Top;
dir zu lang war.


alt
Delphi-Quellcode:
  TRect = record
  case Integer of
    0: (Left, Top, Right, Bottom: FixedInt);
    1: (TopLeft, BottomRight: TPoint);
  end;
neu (Auszug, weil knapp 100 Zeilen)
Delphi-Quellcode:
  TRect = record
  private
    ...
  public
    ...
    property Width: Integer read GetWidth write SetWidth;
    property Height: Integer read GetHeight write SetHeight;

  case Integer of
    0: (Left, Top, Right, Bottom: FixedInt);
    1: (TopLeft, BottomRight: TPoint);
  end;

seit 10.4 (10.3) darf man gern Inline-Variablen verwenden
Delphi-Quellcode:
var R := MyRect; // mitten im Code, also "inline"
Width := R.Right - R.Left;
Height := R.Bottom - R.Top;
wobei ich in diesem Fall eher "absolute" verwenden würde, wenn mir "MyRect" zu lang ist.
Delphi-Quellcode:
var
  R: TRect absolute MyRect;
begin
  Width := R.Right - R.Left;
  Height := R.Bottom - R.Top;
Aber da ich faul bin, mach ich natürlich
Delphi-Quellcode:
Width := MyRect.Width;
Height := MyRect.Height;

// oder
Self.Width := MyRect.Width;
Self.Height := MyRect.Height;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (29. Okt 2021 um 22:25 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:26 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