TPanel

Rund um die LCL und andere Komponenten
Antworten
Harald
Beiträge: 44
Registriert: Di 20. Feb 2007, 10:41
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: in Niedersachsen
Kontaktdaten:

TPanel

Beitrag von Harald »

Hallo,

ich habe mal eine ganz simple, blöde Frage; bitte lacht mich nicht aus.

Panel1 auf ein Formular legen. Auf dieses Panel1 ein Edit1.
Auf das Formular direkt ein weiteres Edit2.

Dann:

Code: Alles auswählen

Panel1.OnExit := Panel1Exit;
 
procedure TForm1.Panel1Exit(Sender: TObject);
begin
  color := clBlue;
end;
Ins Edit2 clicken.

Was passiert? Gar nichts.
Kein OnExit vom Panel.
Zumindest in der Version: 0.9.26.2

In Delphi funktioniert es völlig einwandfrei; OnExit vom Panel kommt.
Delphi sagt dazu:
"... Wird zwischen Steuerelementen in getrennten Container-Objekten (z.B. TPanel und TGroupBox) gewechselt, wird das Ereignis OnExit des untergeordneten Steuerelements vor dem des Containers ausgelöst..."

Völlig korrekt, sonst würde "Panel1.OnExit" ja überhaupt keinen Sinn ergeben, wenn da kein event kommt.

Aber in Lazarus kommt kein OnExit vom Container.

Habe da eben überall herumgesucht, bin aber nicht fündig geworden; auch die Hilfe zu TPanel sagte nur:

>>>
An error has been encountered in accessing this page.

1. Server: lazarus-ccr.sourceforge.net
2. URL path: /docs/lcl/extctrls/tpanel.html
3. Error notes: NONE
4. Error type: 404
5. Request method: GET
6. Request query string: NONE
7. Time: 2010-12-30 23:56:15 UTC (1293753375)
<<<

Ich vermute da mal einen bug in der
0.9.26.2;
aber bitte klärt mich auf!

Wir sehen uns nächstes Jahr wieder in Ulm,
Euch allen ein gutes und erfolgreiches 2011!

cu Harald
Zuletzt geändert von Lori am Sa 1. Jan 2011, 19:54, insgesamt 1-mal geändert.
Grund: Highlighter

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: TPanel

Beitrag von Euklid »

Das Verhalten kann ich mit der 0.9.28-2 bestätigen. Das OnExit-Ereignis des Panels wird nur aufgerufen, wenn man erst das Panel selbst anklickt und dann das Edit2 anklickt.

Sieht in meinen Augen so aus, als wäre das ein Bug in Lazarus - denn wenn man vom Edit1 auf dem Panel auf ein Edit2 wechselt, welches nicht auf dem Panel liegt, so verlässt man nach meiner Auffassung zugleich das Panel. Was meinen die Anderen?

Der Bug - falls es denn einer ist - ist möglicherweise schon in einer neueren Version behoben. Harald: Hast Du das Programm mal mit einer neuen Snapshot ausprobiert? DIe bekommt man hier: http://www.hu.freepascal.org/lazarus/" onclick="window.open(this.href);return false;

Viele Grüße, Euklid

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: TPanel

Beitrag von MAC »

Lazarus snapsshort 0.9.29
fpc 2.4.3
svn 28808

klappt ohne probleme.
--> immer erst aktuelle version probieren :) wobei 0.9.26 ja schon richtig "veraltet" ist

Code: Alles auswählen

Signatur := nil;

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: TPanel

Beitrag von u-boot »

jo hier scheint ebenso das OnExit-event nur mit tabstop:=true zu funktionieren (wenn auch nicht so wie hier erhofft).

Wenn Panel1 den Fokus hat und man wechselt zu Edit1 auf Panel1 wird das OnExit ausgelöst.
Die Groupbox hat in der Hinsicht hier das gleiche Verhalten, ausser dass man da tabstop nicht unbedingt auf True setzen muss.
Test war grad auf win xp auch mit 0.9.28

Achja ein durch die maus ausgelöstes Onexit mit einem showmessage-dialog scheint ausserdem die Fokusübergabe an die angeklickte Komponenten zu unterbinden. Mit der Tabulatortaste klappt die Fokusübergabe allerdings.

Der nächste stable-release (0.9.30) steht anscheinend kurz bevor. Schön wenn es dann wohl klappt.

Harald
Beiträge: 44
Registriert: Di 20. Feb 2007, 10:41
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: in Niedersachsen
Kontaktdaten:

Re: TPanel

Beitrag von Harald »

Hallo,

danke Euch für Euere guten und schnellen Antworten und Hinweise!

Dieses Verhalten fiel mir bei der "Übersetzung" der Grafik-units meiner Komponete von Delphi nach Lazarus auf und ich mußte erst "herausarbeiten", woran es m.E. liegt.

Die Berechnungs-units liefen sofort fast einwandfrei, aber bei der Grafik-Steuerung scheint es da gewisse kleine, aber feine Unterschiede zu geben, welche mir richtig "zu schaffen machen"... Deshalb meine simple Frage nach dem TPanel.

Wir haben ja in Ulm darüber gesprochen, wenn Ihr Euch erinnert.

Falls Ihr Lust dazu habt, könnt Ihr Euch mal auf

http://haraldfey.de" onclick="window.open(this.href);return false;

die Sache anschauen, die kleinen Programme herunterladen und ausprobieren. Diese sind natürlich alle in Delphi geschrieben; aber ich bin zuversichtlich, daß es gelingt, diese so auch unter Lazarus "hinzukriegen"!

Danke Euch nochmals!

Aber jetzt feiern wir erstmal...

Wir sehen uns nächstes Jahr im schönen Ulm,
Euch allen ein gutes und erfolgreiches 2011!

cu Harald

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: TPanel

Beitrag von MAC »

also das programm sieht ziemlich mächtig aus. Respekt.
wobei man an der bedinungsfreundlichkeit noch arbeiten könnte.
Es währe zu empfehlen (wenn es bei delphi verfügbar ist, oder du es erfolgreich nach lazarus migriert hast) die "prog." taste durch ein TTabControl zu ersetzen.
Alle ne Reihe von Tabs wo man die aktuelle funktion auswählen kann...
Aber sonnst richtig gut.

ps: kann man links irgendwie blau einzeichnen ?

Code: Alles auswählen

Signatur := nil;

Harald
Beiträge: 44
Registriert: Di 20. Feb 2007, 10:41
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: in Niedersachsen
Kontaktdaten:

Re: TPanel

Beitrag von Harald »

Hallo,

danke Euch nochmals für Euere schnelle und kompetente Hilfe!

Der Kalender (Delphi-Komponente) unter Lazarus (mit noch vielen bugs drin!), läuft zumindest schon mal, wenn auch noch sehr, sehr holperig!

Falls Ihr Spaß daran haben solltet, könnt Ihr Euch mal auf

http://haraldfey.de" onclick="window.open(this.href);return false;

die Sache jetzt auch "als Lazarus" herunterladen und anschauen!

An MAC: Danke für Deinen Hinweis! Bin völlig Deiner Meinung! Aber sollte m.E. erstmal unter Lazarus "richtig" laufen, bevor da was geändert wird.

Ich werde da mit Sicherheit noch viele Fragen haben bis das Ding unter Lazarus "richtig" läuft...

cu Harald

Antworten