Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Delphi 11 (Patch 1) zerstört Formulare (https://www.delphipraxis.net/209193-delphi-11-patch-1-zerstoert-formulare.html)

sh17 8. Nov 2021 07:27


Delphi 11 (Patch 1) zerstört Formulare
 
Ich hab hier einen blöden Effekt, ich hab in meinen Formularen öfter
Button etc rechts-ausgerichtet, also Anchors = [akTop, akRight]
wenn ich ein Formular aus Delphi 10.4 öffne, verschiebt mir Delphi 11 diese Elemente ganz weit nach rechts aus dem
sichtbaren Bereich des Formulares raus. Also Hat der Button dann Left nicht mehr 800 bei einer Forumlarbreite von
850, sondern eben 3000

Kennt das Problem jemand?

Ins Jira bei Embarcardero komm ich nicht mehr rein, mein Login funktioniert seit kurzem
nicht mehr. Ich finde da auch keine Kontaktseite, wo man sich mal hinwenden könnte.

sh17 8. Nov 2021 08:15

AW: Delphi 11 zerstört Formulare
 
Ich glaub ich habs gefunden, wenn in den Formularen die Eigenschaft "Scaled" auf False steht, dann passiert sowas.

jaenicke 8. Nov 2021 08:17

AW: Delphi 11 zerstört Formulare
 
Zitat:

Zitat von sh17 (Beitrag 1497220)
Kennt das Problem jemand?

Ja, das dürfte daran liegen, dass du unter Windows eine Skalierung von mehr als 100% eingestellt hast. Bis der Fehler behoben ist, solltest du die einfach auf 100% setzen, damit das Problem nicht mehr auftritt. Und wenn du Scaled umstellen kannst, hilft das auch, ja.

Zitat:

Zitat von sh17 (Beitrag 1497220)
Ins Jira bei Embarcardero komm ich nicht mehr rein, mein Login funktioniert seit kurzem
nicht mehr. Ich finde da auch keine Kontaktseite, wo man sich mal hinwenden könnte.

Ich komme auch nicht mehr rein, auch zwei weitere Betroffene kenne ich mittlerweile. Ich hatte das Problem schon einmal, da wurde mir auch geholfen. Ich habe nun bereits zweimal an Embarcadero geschrieben, aber leider habe ich bisher keine Antwort erhalten.

Das Problem ist ein Fehler in der Captcha Überprüfung.

sh17 8. Nov 2021 08:30

AW: Delphi 11 zerstört Formulare
 
Zitat:

Zitat von jaenicke (Beitrag 1497224)
Ja, das dürfte daran liegen, dass du unter Windows eine Skalierung von mehr als 100% eingestellt hast.

Daran nicht (direkt?), hab zwar einen HighDPI-Monitor. Aber der steht auf 100%.

Na ich werde mal alle DFMs anpassen

harfes 8. Nov 2021 09:28

AW: Delphi 11 zerstört Formulare
 
Ja, ich habe das gleiche Problem - allerdings arbeite ich auf 125%, so dass die Aussage von Jaenicke bei mir wohl zutrifft. Ein Umstellen auf 100% hilft, ABER: da gibt es wohl noch mehr Probleme, denn "Scaled" macht auch, was es will, denn auch die Anpassung der Schriftgrössen und der dazu passenden Edit-Felder funktioniert nicht wirklich. HighDPI an oder aus ist da ziemlich egal.
Ich gehe jedenfalls mit Delphi 11 noch nicht produktiv und bleibe solange bei Delphi 10.4.2 bis es ein wirkliches Update gibt...Die Ansätze von Delphi 11 finde ich gut, aber unausgereift.

Hartmut

Michael II 8. Nov 2021 10:05

AW: Delphi 11 zerstört Formulare
 
Hast du das Patch für D11 installiert? Das Patch löst einige Probleme mit Skalierungen.

Ich habe heute wahrscheinlich zum ersten Mal in meinem Leben einen Button rechts ausgerichtet ;-) in D10.4, und dann mit Formular Scaled TRUE und FALSE gespeichert und in D11 (mit installiertem Patch) geladen. Bei meinem D11 ist der Button immer noch OK - ich habe mit diversen Windows Skalierungen getestet.

Hast du D11 mal mit Parameter /highdpi:unaware gestartet? (Bei meinen Tests habe ich das nicht getan.) Fliegt dir der Forminhalt dann auch davon?

Mich lässt man auch nicht mehr rein ins QP. Dabei wollte ich mich doch bessern und wieder Dinge melden.

sh17 8. Nov 2021 10:31

AW: Delphi 11 zerstört Formulare
 
Patch 1 ist installiert

/highdpi:unaware bringt auch nichts, auch nicht die Windows-Skalierung auf 100% stellen. Sofort wenn man die Unit öffnet, wird
das Forumlar "umgebaut"

BerndS 8. Nov 2021 11:04

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Ich habe das gerade mein mit einem Formular getestet, das nur einen TButton mit Align alRight enthält.
Der Button wird sowohl bei Scaled=False/True immer korrekt rechts ausgerichtet.

Aber bei Scaled=False ist die Größe des Formulars beim Ausführten immer 640 x 480.
Bei Scaled=True wird die Größe des DFMs verwendet.

sh17 8. Nov 2021 12:03

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hab mal eine Unit angehängt.

btClose steht auf Left 904, nach dem Öffnen sofort auf 1288

setzt man von Hand Scaled = True dann klappts

BerndS 8. Nov 2021 12:36

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Laut Beschreibung dachte ich, es geht um Align aber mit Anchors = [akTop, akRight] verhält es sich bei mir auch so.
Nach jedem Laden wird es erneut nach rechs verschoben.
Das Form hat dann aber wieder die Größe von 640 x 480.

Uwe Raabe 8. Nov 2021 12:39

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Ich habe das Form hier in Delphi 11 (Patch 1) geöffnet und der Button steht auf Left = 904. Das Form hat Width = 1030.

Delphi 11 ist normal (also ohne /highdpi:unaware) gestartet und läuft auf einer Skalierung von 150%. Der Formular-Designer steht im High-DPI-Modus Automatisch.

Zitat:

Zitat von sh17 (Beitrag 1497220)
Button etc rechts-ausgerichtet, also Align alRight

Der hat aber auch nicht Align = alRight, sonder Anchors = [akTop, akRight]. Aber auch das bewirkt hier nicht die beschriebene Verschiebung (Scaled ist immer noch False).

Ich wüsste nur gern, welche Kombination das auslöst.

sh17 8. Nov 2021 13:09

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Ja ich meine natürlich Anchors = [akTop, akRight] :? hab heute früh wohl noch gepennt

Zitat:

Zitat von Uwe Raabe (Beitrag 1497238)
Der Formular-Designer steht im High-DPI-Modus Automatisch.

Bei mir stand der Wert auf Low DPI (96 ppi) Habs auf Automatisch gestellt, Hat trotzdem keinen Einfluss.

Nur wenn ich Scaled auf true setzen und dann das Formular lade, funktioniert alle richtig.

BerndS 8. Nov 2021 13:28

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Ich habe gerade überprüft, ob die Dateien vom Patch1 auch kopiert wurden.
Das scheint zu stimmen.

Allerdings hatte ich auch noch ältere Versionen in VirtualStore gefunden und gelöscht.

Komischer Weise werden diese immer wieder dort erstellt???

C:\Users\...\AppData\Local\VirtualStore\Program Files (x86)\Embarcadero\Studio\22.0\bin\vcldesigner280.b pl
C:\Users\...\AppData\Local\VirtualStore\Program Files (x86)\Embarcadero\Studio\22.0\bin\rtl280.bpl

Diese sind identisch zu denen unter Programme (x86).

venice2 8. Nov 2021 14:31

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Wenn ich das so lese scheint D11 sehr viel verschlimmbessert zu haben. :? :roll:
Ok ich verwende keine Formulare.
Von daher erst mal für mich egal.

Michael II 8. Nov 2021 14:45

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Zitat:

Zitat von sh17 (Beitrag 1497239)
Ja ich meine natürlich Anchors = [akTop, akRight] :? hab heute früh wohl noch gepennt

Zitat:

Zitat von Uwe Raabe (Beitrag 1497238)
Der Formular-Designer steht im High-DPI-Modus Automatisch.

Bei mir stand der Wert auf Low DPI (96 ppi) Habs auf Automatisch gestellt, Hat trotzdem keinen Einfluss.

Nur wenn ich Scaled auf true setzen und dann das Formular lade, funktioniert alle richtig.

Das ist bei mir auch wie du es beschreibst. D11 skaliert den Button in die Weiten des Alls ;-). - Und: Ich hatte auch gepennt... du hattest ja (in der Überschrift) geschrieben, dass Patch1 bereits installiert sei.

himitsu 8. Nov 2021 14:56

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Mit Anchors gab es schon immer Probleme.

Die Form wird schon beim Erstellen scaliert/beschnitten,
danach kommen die Komponenten drauf und dann vergisst Delphi zu schaun ob die erstellte Größe der gewollten Größe entspricht.

Eine Lösung war bisher: ein Panel hinter alles, mit Align=client, und da dann alles rein

venice2 8. Nov 2021 17:04

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Zitat:

Zitat von himitsu (Beitrag 1497251)
Mit Anchors gab es schon immer Probleme.

Wenn dem so ist dann ist es ein Armutszeugnis seitens der Entwickler von Delphi.
Wenn eins der wichtigsten Dinge zum erstellen von Formularen nicht funktioniert unabhängig vom High DPI. :pale:
Sorry mußte mal gesagt werden.

In meiner Engine war es das erste was ich in Angriff genommen habe.
Zitat:

Eine Lösung war bisher: ein Panel hinter alles, mit Align=client, und da dann alles rein
Traurig!

himitsu 8. Nov 2021 17:39

AW: Delphi 11 (Patch 1) zerstört Formulare
 
An HighDPI war damals noch nichtmal zu denken, als es damit anfing.

Alleine die unterschiedlich breiten Rahmen zwischen den unterschiedlichen Windowsversionen reichten schon aus.
Später wurde dann zwar ClientHeight/ClientWidth anstatt Height/Width (inkl. Rahmen) gespeichert,
aber nachdem man vor 'ner Weile da auch wieder dran rumfummelte und nun mal das Eine oder das Andere speichert, raucht es nun bei FormularVererbung wieder ab und die 2 fertigen extrem einfachen Zeilen Code, als Bugfix wurden abgelehnt, mit der Begründung, dass angeblich alles OK sei,

zeras 8. Nov 2021 19:21

AW: Delphi 11 zerstört Formulare
 
Zitat:

Zitat von sh17 (Beitrag 1497223)
Ich glaub ich habs gefunden, wenn in den Formularen die Eigenschaft "Scaled" auf False steht, dann passiert sowas.

Das hatte ich gestern auch. Da nur ein Formular davon betroffen war, habe ich die Unterschiede zu den anderen Formularen gesucht und dann auch das gleiche wie du gefunden.

Michael II 9. Nov 2021 09:40

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Zitat:

Zitat von himitsu (Beitrag 1497251)
Mit Anchors gab es schon immer Probleme.

Eine Lösung war bisher: ein Panel hinter alles, mit Align=client, und da dann alles rein

Zum Glück arbeite ich nicht mit Anchors ;-). Wenn meine Fenster in der Grösse verändert werden dürfen, setze ich die Positionen und nicht Delphi.

Ich habe deinen Tipp probiert. mit dem Panel und alles drauf. Geht hier nicht. Der Button wandert genau gleich.

Bei meinem System (1920x1080, 125%) wandert der Button um eine Konstante [bei anderen % Werten ebenfalls um eine Konstante].

Bei meinem System und Svens Beispiel (siehe #9):
125%: Der Button wandert um 386 nach rechts
150%: Der Button wandert um 390 nach rechts
175%: Der Button wandert um 392 nach rechts

Die Konstante ist nur abhängig von clientwidth. Die neue Position berechnet Delphi 11 (hier für: 1920x1080, 125%)
Button.Left(neu) = Button.Left(alt) + (clientwidth-622)
"Lösung": Bei meinem System gilt also: Setze clientwidth auf 622 und der Button läuft nicht davon ;-).

Wenn ich alle TabSheets lösche, dann wandert der Button nicht.

Ich nehme an, dass emba das rasch fixen kann.

Faszinierend.

Daniel 9. Nov 2021 10:37

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Mal abgesehen von den aktuellen Problemen mit Delphi 11 muss ich doch mal eine Lanze brechen für die Anker im Allgemeinen. Der Aussage, dass diese grundsätzlich nicht funktionieren, muss ich nach meiner Erfahrung klar widersprechen. Ich finde es sogar mehr als angenehm, dass ich mich in Resize-Events nicht um solche Sachen kümmern muss. Alle Elemente, die rechts oder unten angetackert (verankert) sind, wandern da auch artig mit, wenn das Eltern-Element in seiner Größe verändert wird.
Ich will niucht ausschließen, dass es (jenseits von D11) Spezialfälle gibt, in denen die Anker nicht wollen - aber das wird die klare Minderheit der Anwendungsfälle sein.

Uwe Raabe 9. Nov 2021 10:46

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Ich möchte mich Daniel da anschließen. In der Regel funktionieren Anchor wie sie sollen. Bei D11 gibt es wegen des skalierenden Form-Designers noch Probleme. Wir gehen davon aus, dass diese mit dem Update 1 behoben sein werden.

Bei all den Problemen, die in diesem Forum sicher zu recht geschildert werden, muss man immer die große Masse an problemfreien Anwendungsfällen im Hinterkopf haben, die sich naturgemäß hier nicht zu Wort melden.

venice2 9. Nov 2021 11:06

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1497294)
Ich möchte mich Daniel da anschließen. In der Regel funktionieren Anchor wie sie sollen. Bei D11 gibt es wegen des skalierenden Form-Designers noch Probleme. Wir gehen davon aus, dass diese mit dem Update 1 behoben sein werden.

Bei all den Problemen, die in diesem Forum sicher zu recht geschildert werden, muss man immer die große Masse an problemfreien Anwendungsfällen im Hinterkopf haben, die sich naturgemäß hier nicht zu Wort melden.

Richtig!

Aber man sollte auch nicht alles schön Reden was nicht schön ist.
Und wenn Anwender\Entwickler solche Fälle nicht melden würden, was würde dann überhaupt noch an Fehler behoben?
Fakt ist jedoch das diese vorhanden sind.

Die Leute hier fragen ja nicht danach oder Melden sowas aus Spaß an der Freud.
Zitat:

@Michael II Wenn meine Fenster in der Grösse verändert werden dürfen, setze ich die Positionen und nicht Delphi.
Das ist ein unnötiger Overhead.
Dafür wurden Anchors ja erfunden damit man es nicht selbst machen muß.
Habe ich 100 Button auf der Form und setze diese alle Händisch bei jedem Resize, na dann viel Spaß dabei wenn man nicht selbst ein Anchor>Enum implementiert hat.
Das macht aber unter Verwendung der VCL wenig sinn!

sh17 9. Nov 2021 11:13

AW: Delphi 11 (Patch 1) zerstört Formulare
 
So, danke an alle, alles schön analysiert. Aber wie melde ich das ganze jetzt? Ich komm ja nicht ins Jira?

Uwe Raabe 9. Nov 2021 11:40

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Zitat:

Zitat von venice2 (Beitrag 1497295)
Aber man sollte auch nicht alles schön Reden was nicht schön ist.
Und wenn Anwender\Entwickler solche Fälle nicht melden würden, was würde dann überhaupt noch an Fehler behoben?
Fakt ist jedoch das diese vorhanden sind.

Von nicht melden hatte ich auch gar nicht gesprochen. Es ging mir dabei lediglich um die Bewertung und Einordnung in der Diskussion und Wahrnehmung in diese Forum. Natürlich möchte ich dass diese Fehler gemeldet und behoben werden. Deswegen dränge ich ja in der Regel auch auf eine reproduzierbare Beschreibung in QP.

Zitat:

Zitat von sh17 (Beitrag 1497296)
Aber wie melde ich das ganze jetzt? Ich komm ja nicht ins Jira?

Bei mir ging es eben zumindest. Ich lasse aber auch oft das Captcha ein paarmal erneuern, weil ich es häufig gar nicht eindeutig entziffern kann. Kann aber auch an meiner Farbschwäche liegen.

Grundsätzlich finde ich diese Abschottung des QP eher suboptimal. Klar kann man damit Spam weitestgehend verhindern, aber aktuell verhindert man halt viel zu oft auch den bestimmungsgemäßen Gebrauch.

sh17 9. Nov 2021 12:05

AW: Delphi 11 (Patch 1) zerstört Formulare
 
ah jetzt geht's, Tatsache. Und.. wer hat hier keine Farbschwäche :lol: ich auch

https://quality.embarcadero.com/browse/RSP-36159

jaenicke 9. Nov 2021 12:27

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1497297)
Grundsätzlich finde ich diese Abschottung des QP eher suboptimal. Klar kann man damit Spam weitestgehend verhindern, aber aktuell verhindert man halt viel zu oft auch den bestimmungsgemäßen Gebrauch.

Das ist in dem Fall gar nicht das Problem:
Ich gehe auf die Seite, bekomme das normale Login.
Nach dem Abschicken bekomme ich "Sorry, your userid is required to answer a CAPTCHA question correctly." und das Captcha.
Und dann bekomme ich die Meldung, dass die userid fehlen würde.

Zitat:

Zitat von Uwe Raabe (Beitrag 1497297)
Bei mir ging es eben zumindest. Ich lasse aber auch oft das Captcha ein paarmal erneuern, weil ich es häufig gar nicht eindeutig entziffern kann. Kann aber auch an meiner Farbschwäche liegen.

Das klappt tatsächlich. Wenn ich das Captcha ein paarmal refreshe, klappt es. Auf die Idee muss man erst einmal kommen... Danke :thumb:

BerndS 9. Nov 2021 12:48

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Nach gefühlt 100 Anmeldeversuchen habe ich voten können.

Michael II 9. Nov 2021 13:04

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Zitat:

Zitat von venice2 (Beitrag 1497295)
Habe ich 100 Button auf der Form und setze diese alle Händisch bei jedem Resize, na dann viel Spaß dabei wenn man nicht selbst ein Anchor

Danke, den habe ich. Aber nicht so, wie du schreibst.

Rollo62 9. Nov 2021 13:07

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Zitat:

Zitat von BerndS (Beitrag 1497302)
Nach gefühlt 100 Anmeldeversuchen habe ich voten können.

Ooops, war gerade vor 5 Minuten in Jira angemeldet, Seite war noch offen.
Jetzt lese ich das hier, und versuche dahinzuspringen: Anmeldefehler.

Was ist denn da wieder los ?

Uwe Raabe 9. Nov 2021 13:11

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Zitat:

Zitat von Rollo62 (Beitrag 1497304)
Ooops, war gerade vor 5 Minuten in Jira angemeldet, Seite war noch offen.
Jetzt lese ich das hier, und versuche dahinzuspringen: Anmeldefehler.

Was ist denn da wieder los ?

Ja, war hier auch so. Abmelden und wieder anmelden ging aber dann. Das Ding ist einfach zu fragil.

sh17 9. Nov 2021 13:15

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Bei mir kommt jetzt, ich hätte keine Berechtigung zur Reportanzeige meiner Issues. Die würfeln dort.

venice2 9. Nov 2021 13:18

AW: Delphi 11 (Patch 1) zerstört Formulare
 
Zitat:

Zitat von Michael II (Beitrag 1497303)
Zitat:

Zitat von venice2 (Beitrag 1497295)
Habe ich 100 Button auf der Form und setze diese alle Händisch bei jedem Resize, na dann viel Spaß dabei wenn man nicht selbst ein Anchor

Danke, den habe ich. Aber nicht so, wie du schreibst.

Na dann ;)

So mache ich es. (Nicht für VCL gedacht)
Für die die es Interessiert.

Delphi-Quellcode:
// Anchor ENUM-Callback-Funktion
function AnchorEnum(WinHandle: HWND; lp: lParam): HWND; stdcall;
var
  pr: TRect;
  rc: TRect;
  pP: integer;
  X, Y, xW, yH: integer;

begin

  if IsIconic(GetParent(WinHandle)) then
  begin
    // Stope Aufzaehlung
    Result := integer(False);
    Exit;
  end;

  pP := SkinEngine.AnchorItem(WinHandle);
  if pP > -1 then
    if gProp[pP].anchor > ANCHOR_NONE then
    begin
      GetClientRect(WinHandle, rc);
      GetClientRect(GetParent(WinHandle), pr);

      X := 0;
      Y := 0;
      xW := 0;
      yH := 0;

      case gProp[pP].anchor of

        ANCHOR_WIDTH: //= 1
          begin
            X := gProp[pP].rc.Left;
            Y := gProp[pP].rc.Top;
            xW := MAX(pr.Right - gProp[pP].rc.Left - gProp[pP].rc.Right, 0);
            yH := rc.Bottom;
          end;
        ANCHOR_RIGHT: //= 2
          begin
            X := pr.Right - rc.Right - gProp[pP].rc.Right;
            Y := gProp[pP].rc.Top;
            xW := rc.Right;
            yH := rc.Bottom;
          end;
        ANCHOR_CENTER_HORZ: //= 3
          begin
            X := (pr.Right div 2) + gProp[pP].centerx;
            Y := gProp[pP].rc.Top;
            xW := rc.Right;
            yH := rc.Bottom;
          end;
        ANCHOR_HEIGHT: //= 4
          begin
            X := gProp[pP].rc.Left;
            Y := gProp[pP].rc.Top;
            xW := rc.Right;
            yH := MAX(pr.Bottom - gProp[pP].rc.Top - gProp[pP].rc.Bottom, 0);
          end;
        ANCHOR_HEIGHT_WIDTH: //= 5
          begin
            X := gProp[pP].rc.Left;
            Y := gProp[pP].rc.Top;
            xW := MAX(pr.Right - gProp[pP].rc.Left - gProp[pP].rc.Right, 0);
            yH := MAX(pr.Bottom - gProp[pP].rc.Top - gProp[pP].rc.Bottom, 0);
          end;
        ANCHOR_HEIGHT_RIGHT: //= 6
          begin
            X := pr.Right - rc.Right - gProp[pP].rc.Right;
            Y := gProp[pP].rc.Top;
            xW := rc.Right;
            yH := MAX(pr.Bottom - gProp[pP].rc.Top - gProp[pP].rc.Bottom, 0);
          end;
        ANCHOR_BOTTOM: //= 7
          begin
            X := gProp[pP].rc.Left;
            Y := pr.Bottom - gProp[pP].rc.Bottom - rc.Bottom;
            xW := rc.Right;
            yH := rc.Bottom;
          end;
        ANCHOR_BOTTOM_WIDTH: //= 8
          begin
            X := gProp[pP].rc.Left;
            Y := pr.Bottom - gProp[pP].rc.Bottom - rc.Bottom;
            xW := MAX(pr.Right - gProp[pP].rc.Left - gProp[pP].rc.Right, 0);
            yH := rc.Bottom;
          end;
        ANCHOR_BOTTOM_RIGHT: //= 9
          begin
            X := pr.Right - rc.Right - gProp[pP].rc.Right;
            Y := pr.Bottom - gProp[pP].rc.Bottom - rc.Bottom;
            xW := rc.Right;
            yH := rc.Bottom;
          end;
        ANCHOR_CENTER_HORZ_BOTTOM: //= 10
          begin
            X := (pr.Right div 2) + gProp[pP].centerx;
            Y := pr.Bottom - gProp[pP].rc.Bottom - rc.Bottom;
            xW := rc.Right;
            yH := rc.Bottom;
          end;
        ANCHOR_CENTER_VERT: //= 11
          begin
            X := gProp[pP].rc.Left;
            Y := (pr.Bottom - rc.Bottom) div 2;
            xW := rc.Right;
            yH := rc.Bottom;
          end;
        ANCHOR_CENTER_VERT_RIGHT: //= 12
          begin
            X := pr.Right - rc.Right - gProp[pP].rc.Right;
            Y := (pr.Bottom - rc.Bottom) div 2;
            xW := rc.Right;
            yH := rc.Bottom;
          end;
        ANCHOR_CENTER: //= 13
          begin
            X := (pr.Right div 2) + gProp[pP].centerx;
            Y := (pr.Bottom div 2) + gProp[pP].centery;
            xW := rc.Right;
            yH := rc.Bottom;
          end;
      end;
      if lp <> 0 then
        DeferWindowPos(lp, WinHandle, 0, X, Y, xW, yH, SWP_NOZORDER or SWP_NOREDRAW)
      else
        MoveWindow(WinHandle, X, Y, xW, yH, False);
    end;

  Result := integer(True);

end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:34 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