ListView MousUp

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Michl
Beiträge: 2340
Registriert: Di 19. Jun 2012, 12:54

Re: ListView MousUp

Beitrag von Michl »

Mathias hat geschrieben:Ich habe mir das Programm nochmal angeguckt.

Wen ich die Exe des Project unter Linux mit Wine starte, dann läuft es wie gewünscht.
Starte ich aber die Exe unter WinXP, läuft in der VirtualBox, dann ist der Fehler immer noch feststellbar.
So wie es aussieht, ist das kein Problem von Lazarus, sondern von Windows.

Ich habe das Programm mit Lazarus 1.6, FPC 3.0 frisch kompiliert.
Kannst du das nochmal testen? Der Fix wurde in Lazarus Trunk 51471 eingepflegt. Meine Tests haben hier soweit gepasst. Ich hoffe bei dir auch?! Siehe http://bugs.freepascal.org/view.php?id=27189

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Mathias
Beiträge: 5039
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: ListView MousUp

Beitrag von Mathias »

Unter Windows habe ich keine Trunk-Version von Lazarus.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

thosch
Beiträge: 194
Registriert: Mo 10. Jul 2017, 20:32

Re: ListView MousUp

Beitrag von thosch »

Mathias hat geschrieben:Ich habe folgenden Code:

Code: Alles auswählen

procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: integer);
begin
  if Button = mbRight then begin
    Writeln('ListView');
  end;
end;
 
procedure TForm1.TreeView1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: integer);
begin
  if Button = mbRight then begin
    Writeln('TreeView');
  end;
end;
 
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: integer);
begin
  if Button = mbRight then begin
    Writeln('Form');
  end;
end;


Bei Form und TreeView wird Writeln nur aufgerufen, wen man die Maustaste loslässt, dies währe richtig.
Aber bei ListView wird Writeln auch beim drücken der Maustaste aufgerufen.

Ist nachvollziehbar bei Version 1.2RC2 und 1.3, beide Windows

Unter Linux funktionieren alle 3 richtig.


Ich wollte hier eigentlich bloß mitlesen, aber angesichts des schrecklichen Codedesigns kann ich das nicht.

Writeln() in der GUI??????


Wie geht das?

wp_xyz
Beiträge: 3308
Registriert: Fr 8. Apr 2011, 09:01

Re: ListView MousUp

Beitrag von wp_xyz »

In den Projekteinstellungen unter "Konfiguration und Ziele" > "Zielbetriebssystemspezifische Einstellungen" das Häkchen vor "Win32 GUI Anwendung" entfernen.

Mathias
Beiträge: 5039
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: ListView MousUp

Beitrag von Mathias »

Ich wollte hier eigentlich bloß mitlesen, aber angesichts des schrecklichen Codedesigns kann ich das nicht.

In der Praxis macht man so etwas nicht, aber hier ging es um MausUp.
Man hätte auch viel komplizierter in ein Memo schreiben können.

Nachtrag:
Ich habe den Code gerade nochmals getestet, so wie es scheint, ist die in der neusten Trunk behoben, zumindest unter Liunx.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Antworten