Seltsammer fehler bei ShowModal und doppelt klick bei lv

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Vielleicht Z-Ordnung weil der Fokus weg ist, was weiß ich.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

seltsam unter Delphi ging ist, da bin ich mir 100% sicher ! da habe ich sowas öfter gemacht !

was ist denn die Z-Ordnung ?
davon habe ich noch nie was gehört !

ich verstehe immer noch nicht wo der unterschied zwischen einem Buttom klick und einem ListView doppel klick sein soll !

Es sind beides Ereignisse das eine wird nur einmal ausgelöst und beim zweiten werden mid. zwei ausgelöst !

Naja muss ich das Problem wohl anders lösen. Schade es währe so schön gewesen es auf diese art und weise zu lösen !

Mal sehen was sich anbitet auser eine ListView .... mir geht es ja darum das ich bestimmte Einträge in der ListView ändern möchte(vom user) und diese Änderungen werden im zweiten Dialog gemacht und die werden dann übernommen !

evlt. eignet sich auch eine Stringgrid ist zwar nicht ganz so schön aber müste glaube ich auch gehen !

(die frage ist ja auch ob das bei allen Komponenten so ist...)
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich bin mir auch ziemlich sicher, da das n bug ist der Doppelklick aus der Listview is n ganz normales ereignis und da sollte Showmodal auch möglich sein draus.

Ich habs gerade probiert und bei mir gehts wunderbar im Linux.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Z-Ordnung beschreibt die Anordnung der einzelnen Objekte innerhalb eines Parent-Objektes wie z.B. TForm. Dabei kann der Parent eines TListView z.B. ein TBevel sein und der Parent TBevel dann TForm.

Da bei ShowModal der Fokus wechselt, kann das bei so einer Konstruktion zu Problemen führen, weil der Parent von TBevel (hier TForm) in diesem Fall den Fokus verliert. Beim Rücksprung versucht die Anwendung dann den Fokus wieder an TListView zu übergeben, was nicht mehr geht weil TForm den Fokus verloren hat und eventuell nicht wieder bekommt.

Das war bei entsprechend komplexen Anordnungen auch schon bei Delphi der Fall. Sicher ließ sich das nur mit Show verhindern, da tritt das merkwürdigerweise nicht auf. Allerdings muß man da nachträglich das gewünschte Form zum aktiven machen.

Beispielhaft sei mal angeführt, du hast ein MainForm das mehr oder weniger nur aus der Menueleiste besteht. Dies soll ständig aktiv sein um in seinem Thread eine Datenquelle abzufragen. Nun öffnest du ein Formular in dem irgendwas gemacht wird, zu einem beliebigen Zeitpunkt x kommt ein Datenquellen-Ereignis im MainForm an und das muß nun seinerseits einen Dialog öffnen ohne dabei selbst den Fokus zu verlieren. Das gleiche kannst du aber per Mausklick auch aus dem Formular heraus machen das gerade geöffnet ist und selbst ein Datenquellen-Ereignis produzieren.

Genau bei so einem Szenario passiert das auch bei Delphi...
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

@Pluto
Teile es in 2 Teile
1) Wie gehabt, nur kein ShowModal + Sende eine Message
2) In der Behandlung der Message zeige das Fenster.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich würde lieber das Problem geklärt haben
@schnullerbacke das geht nicht was du da schreibst

Showmodal zeigt das formular an, die hauptform verliert den fokus
das formular wird gechlossen, die hauptform hat den fokus wieder und damit auch die listbox weil die das aktive element auf der hauptform ist.

ausserdem ist das was du da beschreibst bei show auch der fall da verliert die mainform auch den fokus und kann ihn sogar wiedererlangen bevor das andere formular geschlossen ist da mussts also eher zu fehlern kommen.

@pluto
mach mal bitte n beispiel wo der fehler auftritt und hängs an ich bekomme den nicht nachgestellt wenns wirklich so ist mach ich dann n bugreport
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

@Christian

Sag nicht immer geht nicht, hab ich gebaut. Geht doch, ist nur nicht einfach...
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

wenn du nicht erklären kannst was du willst muss ich von was anderem ausgehen.
und DblClick ist ein ganz normales ereignis das so funktionieren muss wie andere ereignisse auch
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

vielen dank für eure erklärungs versuche !

Dahinter gekommen bin ich noch nicht, warum das jetzt nicht gehen soll und vollem wo ist der unterschied zwischen einem Show und einem ShowModal auser das das form deaktiviert wird !

Ich habe mal ein beispiel Projekt angehangen(ist soll den player Amarok fernsteuern über dcop und ist für meine usb fernbedingung ausgelegt ! sollte aber Problem los laufen.....
ich hoffe einer von euch hat eine/media/hda7 Verzeichnis dort muss nämlich noch eine Datei rein die geladen wird !

edit:
Datei geändert, jetzt müste es auch laufen wenn die Datei nicht gefunden wird !
Weil dann wird eine Stringlist einfach vom code aus gefüllt !
Dateianhänge
usbfernbedingung.zip
(260.7 KiB) 77-mal heruntergeladen
Zuletzt geändert von pluto am Fr 9. Feb 2007, 12:50, insgesamt 1-mal geändert.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

kannst du nicht ein einfaches beispiel machen ohne irgendwelche abhängigkeiten das den fehler erzeugt ich hab gerad kein linux zur hand kann ich aber heut abend testen und schon gar keine auf hda7 gemountete partition
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ich hoffe mit diesem beispiel kannst du mehr anfangen als mit dem davor:
Wird die Datei nicht gefunden wird einfach eine Stringlist mit add gefüllt....

ich glaube sogar das das beispiel müste unter Windows laufen, ob da der Fehler auch auftritt weiß ich nicht !

@Christian danke für dein angebot mit dem Bug tracker !, ich glaube hier sind wir das erste mal einer Meinung oder ?
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

wo ist das beispiel ? hast du den vorherigen beitrag wieder editiert ?
ich find das blöd mit der editiererei um rechtschreibfehler zu korrigieren ok, aber so exxesiv wie das hier betrieben wird kommen die antworten ja schnell mal aus dem zusammenhang also in dem forum was ich betreibe hab ichs editieren verboten dürfen nur mods.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich meinte eigentlich ein einfaches beispiel, wo nur der Fehler mit erzeugt wird das erste ist das die unit Tools fehlt was auch unter Linux so sein dürfte. 2. hab ich kiene libusb usw...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich habs gestern schon im Linux und eben im Windows mit

Code: Alles auswählen

procedure TForm1.ListView1DblClick(Sender: TObject);
begin
  if ListView1.Selected <> NIL then begin
    if Form2.ShowModal = mrOK then begin
    end;
  end;
end;


probiert wobei Form2 ein leeres formular ist und auf Form1 nur ne listbox ist damit gibts keine Fehler. Sicher das es nicht an was anderem liegt ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

genau so habe ich es auch !
und es geht bei mir(ubuntu) einfach nicht !


ich finde es blöd wenn 1000 unterschiedliche Versionen von einem zip-Archiv hochgeladen werden und sich keiner mehr zurecht findet !
ich probiere es gleich nochmal !

evlt. liegt es an der Form konfiguation....

ich habe die LV als Report eingestellt !
MFG
Michael Springwald

Antworten