Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Positionierungsfehler bei dynamisch erstellten Komponenten


ub60 - Di 16.09.08 16:19
Titel: Positionierungsfehler bei dynamisch erstellten Komponenten
Hallo Leute,

ich habe für mehrere Kollegen ein Programm geschrieben, in dem ein SpeedButton (und weitere Komponenten) dynamisch erzeugt werden:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
  SpeedBtn:=TSpeedButton.Create(Self);
  with SpeedBtn do
    begin
      Left:=200;
      Top:=50;
      Width:=100;
      Height:=24;
      Parent:=Self;
      Caption:='Text';
      OnClick:=SpeedButtonClick;
    end;

Bei etwa 50 Computern klappt auch alles, wie es soll, aber bei zwei Kollegen werden die Komponenten an der falschen Stelle erzeugt, nämlich nicht 200 Pixel vom linken Formularrand, sondern 200 Pixel vom Bildschirmrand (gleiches für oben).

Ist Euch so ein Fehler bekannt und hat jemand eine Idee, was ich probieren oder ändern könnte?

ub60


BenBE - Di 16.09.08 17:54

Immer zuerst den Parent setzen, dann die Position des Controls ändern.


ub60 - Di 16.09.08 18:48

Danke für den Hinweis, werd es mal probieren.

Stellt sich mir immer noch die Frage, warum es bei 50 Rechnern funktioniert und bei zwei Rechnern nicht.

ub60


Boldar - Mi 17.09.08 18:14

______________________________


Wikipedia Mandelbug [http://de.wikipedia.org/w/index.php?title=Programmfehler&stable=0&shownotice=1#Mandelbug]



______________________________


ub60 - Mi 17.09.08 19:20

Danke, das hilft mir wirklich weiter :evil:

Der Fehler ist übrigens reproduzierbar. Die Kollegen können allerdings heute oder morgen erst testen. Sollte der Tipp geholfen haben, melde ich mich noch einmal.

ub60


ub60 - Do 18.09.08 22:23

Wie versprochen die Rückmeldung:

Leider hat die Änderung nach dem Hinweis von BenBe nicht geholfen.
Die dynamisch erzeugten Komponenten werden auf den genannten Rechnern immer noch falsch dargestellt.

Hat noch jemand eine Idee, woran das liegen könnte?

ub60


Tilman - Do 18.09.08 22:35

ich hatte mal merkwürdige ergebnisse auf einem seeehr langsamen windows 98-rechner. Also wenn die Kollegen von dir sehr lahme kisten verwenden bzw. win 98 dann könnte das ein Hinweis sein. (Der programmaufbau hat sehr lange gebraucht und einige Komponenten waren dann an der falschen Stelle).


jjturbo - Fr 19.09.08 13:11

Ich hatte mal ein solches Problem. Dort waren die Verwendung von "Großen Schriftarten" in den Desktop-Einstellungen Schuld. Auf normale Größe geändert, dann gings. (Eigenschaften von Anzeige/Dartstellung/Schriftgrad)
Vielleicht hilfts Dir weiter.

Gruß jjturbo