AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Evtl Bug in Delphi bzgl. Reihenfolge auf dem Formular
Thema durchsuchen
Ansicht
Themen-Optionen

Evtl Bug in Delphi bzgl. Reihenfolge auf dem Formular

Ein Thema von padavan · begonnen am 30. Sep 2005 · letzter Beitrag vom 8. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#1

Evtl Bug in Delphi bzgl. Reihenfolge auf dem Formular

  Alt 30. Sep 2005, 06:30
Moin Delphianer,

kann es evtl. sein, dass es einen Bug in Delphi bzgl. der Reihenfolge der Komponenten auf dem Formular gibt?

Unter irgendwelchen, für mich nicht nachzuvollziehenden Umständen, kommt es manchmal vor, dass eine Komponente, welche eigentlich ganz hinten auf dem Formular liegt nach vorne rutscht und dort bis Programmende auch bleibt.
Mit nach vorne rutschen meine ich, dass es dann andere Komponenten verdeckt.


Ich schließe einen Fehler meinerseits erstmal vorsichtig aus, denn:
ich wüsste gar nicht, wie ich zur Laufzeit die Reihenfolge ändern könnte.
Deshalb behaupte ich mal, ich war´s nicht


(Dieses Problem trat übrigens unter Delphi 7 auf....)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Evtl Bug in Delphi bzgl. Reihenfolge auf dem Formular

  Alt 30. Sep 2005, 06:42
Hallo padavan,

mir ist ein solcher "Fehler" bisher nicht aufgefallen. Hast du Code, mit dem ich den Fehler reproduzieren könnte?

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Evtl Bug in Delphi bzgl. Reihenfolge auf dem Formular

  Alt 30. Sep 2005, 07:38
mir ist auch nicht immer klar, welche komponente in welcher ebene ist.
leg ich einen TEdit auf einen TPanel, so ist manchmal der Panel vor dem TEdit, sodass man den TEdit nicht sieht.

deshalb arbeite ich mit Komponente.Hide und Komponente.Show wenn ich eine Komponente zeigen / nicht zeigen will.

viel interessanter finde ich aber die Tab-Reihenfolge.
alle Elemente schön der Reihe nach auf dem Form plaziert, in der Mitte ein Element gelöscht und ein anderes eingefügt. Schon stimmt die Tab-Reihenfolge nicht mehr und das neue Element wird als letztes angesprungen.

gruessle
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Evtl Bug in Delphi bzgl. Reihenfolge auf dem Formular

  Alt 30. Sep 2005, 07:50
Zitat von RavenIV:
...leg ich einen TEdit auf einen TPanel, so ist manchmal der Panel vor dem TEdit, sodass man den TEdit nicht sieht.
Als Parent eines Edits (zum Beispiel) wird das Objekt genommen welches den Fokus hat. Wenn Du also das Panel anklickst und dann ein Edit auf dieses legst ist das Panel der Parent des Edits. Wenn aber "die Form an sich" den Fokus hat ist diese der Parent und darum liegt das Edit hinter dem Panel.

Zitat:
...stimmt die Tab-Reihenfolge nicht mehr und das neue Element wird als letztes angesprungen.
Es ist halt so das die Tab-Reihenfolge nichts mit der Position auf der Form (dem Parent) zu tun hat. Delphi setzt die Tab-Reihenfolge gemäß der Reihenfolge in denen eine Komponente auf der Form abgelegt/erzeugt wurde. Aber dafür gibt es ja den schönen Menüpunkt um die Tab-Reihenfolge ändern zu können.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Evtl Bug in Delphi bzgl. Reihenfolge auf dem Formular

  Alt 30. Sep 2005, 08:02
ne, mit Tab gibt´s keine Probleme,

ich meine tatsächlich die sichtbare Reihenfolge von Komponenten.

Hallo marabu,
puh, welchen Quelltext meinst du denn?
Die .pas Datei (wohl kaum) oder eher das, wo man auf dem Formular mit rechter Maustaste sagt "view as text".
Dort habe ich teilweise die Reihenfolge festgelegt, aber wiegesagt nicht zur Laufzeit.
Ist aber sehr umfangreich. Es handelt sich um die Listbox1. (da sie hinten auf dem Formular sein soll, ist sie recht oben im Quelltext)
Angehängte Dateien
Dateityp: txt form1_453.txt (307,4 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Evtl Bug in Delphi bzgl. Reihenfolge auf dem Formular

  Alt 1. Okt 2005, 19:42
Hallo Padavan,

ich habe mir dein Formular angesehen. Richtig nachvollziehen kann ich den Fehler ja nicht, aber soweit ich erkennen kann sollen sich mehrere Komponenten den knappen Platz teilen. Anstelle die Z-Reihenfolge dieser Komponenten zu manipulieren, würde ich an deiner Stelle versuchen die Komponenten erst zur Laufzeit zu erzeugen und dann an der richtigen Stelle einzublenden. Wenn dir das zu schwierig oder aufwendig erscheint, bliebe immer noch die Komponente NoteBook aus der Palette "Win 3.1".

Aber vielleicht habe ich dich ja ganz falsch verstanden.

Grüße vom marabu
  Mit Zitat antworten Zitat
padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Evtl Bug in Delphi bzgl. Reihenfolge auf dem Formular

  Alt 1. Okt 2005, 21:05
Hallo marabu,

nein, ich glaube du hast mich richtig verstanden, auch das mit dem knappen Platz ist schon richtig.

Nur da ich gerade zur Laufzeit keine Komponenten erstelle, frag ich mich halt, warum aus irgendeinem Grund manchmal die Reihenfolge nicht mehr stimmt.
Ich wüsste ja nicht mal einen Befehl, der die Komponenten untereinander zur Laufzeit austauscht.

Trotzdem vielen Dank, das du dir die Zeit genommen hast.....

Viele Grüße
Padavan
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Evtl Bug in Delphi bzgl. Reihenfolge auf dem Formular

  Alt 2. Okt 2005, 15:51
Hallo padavan,

Zitat von padavan:
Ich wüsste ja nicht mal einen Befehl, der die Komponenten untereinander zur Laufzeit austauscht.
dann hast du die Komponenten so kunstvoll übereinander gestapelt, nur um ein bestimmtes gestalterisches Ziel zu erreichen? Ich meine, deine Listbox zum Beispiel, die du ganz zu unterst plaziert hast, wird nie im Vordergrund für irgendwelche Interaktionen benötigt? Oder verwendest du die Listbox etwa als unsichtbaren Datenspeicher? Wenn du genau beschreibst, was du vorhast, dann finden wir vielleicht eine bessere Lösung.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Evtl Bug in Delphi bzgl. Reihenfolge auf dem Formular

  Alt 4. Okt 2005, 05:17
Moin marabu
- Frühaufsteher?

Ja ist so, das ganze ist eigentlich ein Player, bei dem ich versucht habe die Optik immer im gleichen Stil zu halten. Also hab ich fasst alles was man so braucht, wie "Optionen", "Extras" usw meist auf Panels gelegt, welche dann im Vordergund vor der Listbox erscheinen, wenn man sie aufruft. Die Listbox ist sichtbar, sie ist die Playlist.
Wenn nichts anderes aufgerufen wurde (z.B. auch ein Film, oder das Cover des Liedes), dann ist sie vollständig zu sehen.
Wie du schon richtig erkannt hast, ist das Formular knallvoll und wenn ich nachträglich was einfügen wollte, hab ich meist so gemacht, dass ich dann die Komponente eingefügt hab und dann die Ansicht als "view-as-text" in der umgeschaltet hab. Danach hab ich dann die Kompontente (in der .dfm) an der Ebene "plaziert" wo ich sie hinhaben wollte.

Welche Info würdest du denn benötigen um mir helfen zu können. Ich denke mal der Quellcode des Programms hilft nicht viel weiter, oder?

Viele Grüße
Padavan
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Evtl Bug in Delphi bzgl. Reihenfolge auf dem Formular

  Alt 4. Okt 2005, 06:41
Hallo padavan,

ich erinnere mich jetzt an deinen DreamPlayer. Wenn normalerweise die PlayList (ListBox) sichtbar ist und andere Ein- bzw. Ausgabeelemente am gleichen Ort angezeigt werden sollen, dann bleibe ich bei meinem Vorschlag: Du musst deine Komponenten nicht zur Entwurfszeit stapeln, du kannst ein Panel auch erst zur Laufzeit erzeugen und an der gewünschten Stelle einblenden:

Delphi-Quellcode:
unit DemoFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TDemoForm = class(TForm)
    ListBox: TListBox;
    InfoButton: TButton;
    procedure InfoButtonClick(Sender: TObject);
    procedure PanelClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    FreeList: TList;
    procedure AppIdle(Sender: TObject; var done: boolean);
  end;

var
  DemoForm: TDemoForm;

implementation

{$R *.dfm}

procedure TDemoForm.AppIdle(Sender: TObject; var done: boolean);
begin
  // free objects one by one
  with FreeList do
  if Count > 0 then
    TObject(Extract(First)).Free;
end;

procedure TDemoForm.InfoButtonClick(Sender: TObject);
begin
  with TPanel.Create(self) do
  begin
    Parent := self; // make visible
    Left := ListBox.Left + 10;
    Top := ListBox.Top + 10;
    // ...
    OnClick := PanelClick;
  end;
end;

procedure TDemoForm.PanelClick(Sender: TObject);
begin
  with Sender as TPanel do
  if Caption = ''
    then Caption := DateTimeToStr(now)
    else FreeList.Add(Sender);
end;

procedure TDemoForm.FormCreate(Sender: TObject);
begin
  FreeList := TList.Create;
  Application.OnIdle := AppIdle;
end;

procedure TDemoForm.FormDestroy(Sender: TObject);
begin
  FreeList.Free;
end;

end.
Der Vorteil bei dieser Vorgehensweise ist, dass du ein Infopanel vor der PlayList schwebend anzeigen kannst - der Nachteil ist der erhöhte Programmieraufwand.

Hast du dir die Notebook-Komponente einmal angeschaut? Damit kannst du deine Komponenten alle schon zur Entwurfszeit gruppieren und anordnen und schaltest zur Laufzeit zwischen den Gruppen (Pages) um. Es wird allerdings immer das ganze Rechteck ausgewechselt, d.h. die Listbox auf Seite 1 des Notebooks verschwindet ganz, wenn ein InfoPanel auf Seite 2 angewählt wird.

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz