Grid's

Rund um die LCL und andere Komponenten
Antworten
Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Grid's

Beitrag von Maik81ftl »

Moin Moin,

Hab mal zu den Gridkomponenten eine Frage.

die bzw in welcher Reihenfolge werden die Ereignise Click, DrawCell und MouseUp aufgelöst?

um eine sache vorwegzunehmen. es sollte dabei egal sein, Ob TStrinGrid oder TDrawGrid.

ist da die reihenfolge egal oder muß man diese zeitlich gegeneinander abschotten, das diese in der gewünschten reiehnfolge laufen?

erst MouseUp --> DrawCell --> Click

lf maik81ftl
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: Grid's

Beitrag von DiBo33 »

um eine sache vorwegzunehmen. es sollte dabei egal sein, Ob TStrinGrid oder TDrawGrid.
Ist es sowieso, da beide von TCustomGrid abgeleitet sind.
ist da die reihenfolge egal oder muß man diese zeitlich gegeneinander abschotten
Es gibt quasi keine "Reihenfolge" die Ereignisse werden direkt beim eintreffen ausgelöst, wobei ich nicht weiß was du mit zeitlich abschotten meinst.

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Grid's

Beitrag von MAC »

Das kann man doch ganz einfach selber ausprobieren.
Man nimmt sich nen Grid macht die 3 Methoden und setzt nen Breakpoint in jede.
Oder man schreibt

Code: Alles auswählen

Form1.Caption := Form1.Caption + ' MouseUp';
Form1.Caption := Form1.Caption +  ' DrawCell';
Form1.Caption := Form1.Caption + ' Click';
in jede procedure und schaut sich das ergebnis an.
Zuletzt geändert von Lori am So 13. Mär 2011, 17:59, insgesamt 1-mal geändert.
Grund: Highlighter

Code: Alles auswählen

Signatur := nil;

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Grid's

Beitrag von Maik81ftl »

MAC hat geschrieben:Das kann man doch ganz einfach selber ausprobieren.
Man nimmt sich nen Grid macht die 3 Methoden und setzt nen Breakpoint in jede.
Oder man schreibt Form1.Caption := Form1.Caption + ' MouseUp';
Form1.Caption := Form1.Caption + ' DrawCell';
Form1.Caption := Form1.Caption + ' Click';
in jede procedure und schaut sich das ergebnis an.
Jopp! viel mir auch in etwa ein, als i meiner süßen 'nen kuss gegeben hab.

aber um gans sicher zugehen, würd ich denne bei der aktiven verwendung Temp einbauen, um die Reihenvolge zu definieren wenn ich das grund ergebnis hab.

Edit1*: Drawcell Überwiegt, da schon bei Programmstart ausgelöst wird. :? ergo abfangen mit 'ner temp...

Edit2*: nach reichlicher Überlegung bin ich zu dem entschluß gekommen, das ich mir die Click schenken kann.

einfach nur nach dem SChema arbeiten.

wenn Linke Maustaste = losgelassen dann _frei

in der DrawCell erst starten wenn _frei = 1 anschliesend Frei = 0 setzen.

einfacher geht's nun wirklich nicht mehr :D

edit3*:

Totaler Satz mit X. :?

Code: Alles auswählen

procedure TForm1.DrawGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
  aRect: TRect; aState: TGridDrawState);
begin
     if _Free then
        begin
        Caption:= Caption + 'Cell|';
        end;
end;
 
procedure TForm1.DrawGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
     if Button = mbLeft then
        begin
        Caption:= Caption + 'Mouse|';
        _Free:= True;
        end;
end;
ob ich da ggf den Abfang umdrehe? bekannt ist auf jeden, das immer kommt.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: Grid's

Beitrag von DiBo33 »

Was willst du denn erreichen?

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Grid's

Beitrag von Maik81ftl »

DiBo33 hat geschrieben:Was willst du denn erreichen?
Das hier.

Habe mich schon an Diese Beispiel Orientiert, Aber solange der DrawCell mir die Beschriftung in der Kopfzeile kill,. hilft mir das auch nicht weider...
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Antworten