Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Idee gesucht für skalierbare, dynamisch erstellte Controls (https://www.delphipraxis.net/171952-idee-gesucht-fuer-skalierbare-dynamisch-erstellte-controls.html)

ernschd 4. Dez 2012 08:59

Idee gesucht für skalierbare, dynamisch erstellte Controls
 
Hi,

ich erzeuge zur Laufzeit auf meinem Formular verschiedene Controls (Editfelder, Labels usw.).
Das Formular würde ich gerne beim vergrößern auf Vollbild skalierbar gestalten.
Leider werden (verständlicherweise) nur die Komponenten skaliert, die schon erzeugt wurden, alle neuen haben die alte Größe und Position.
Wenn ich beim Erzeugen einer neuen Komponente prüfe, ob das Formular skaliert ist, kann ich zwar die Komponente skalieren, aber nicht die Position.

Gibt es für so einen Fall keine "ideale" Lösung? Ich bin schon am Überlegen, ob ich ein Webbrowser-Control verwende, dort meine Editfelder erzeuge und dieses skalieren lasse...

himitsu 4. Dez 2012 09:13

AW: Idee gesucht für skalierbare, dynamisch erstellte Controls
 
Was hattest du denn bei den Controls im Formdesigner eingestellt, damit die nun skaliert werden?

Genau die gleichen Property mußt du nun auch manuell setzen, wenn du schon manuell erstellst. :angle2:

ernschd 4. Dez 2012 09:22

AW: Idee gesucht für skalierbare, dynamisch erstellte Controls
 
Ich habe nur in der Resize-Methode ein ScaleBy:

Delphi-Quellcode:
// Hochskalieren
procedure TfrmMain.scaleUp;
begin
    lastWS := 1;
    oldW := Self.Width;
    Self.ScaleBy(scaleF,90);
end;

procedure TfrmMain.scaleDown;
begin
    lastWS := -1;
    Self.ScaleBy(90,scaleF);
    Self.Width := oldW;
end;

procedure TfrmMain.FormResize(Sender: TObject);
begin
    // beim Starten nicht skalieren
    if NOT scale then begin
        scale := True;
        lastWS := -1;
        exit;
    end;

    case WindowState of
        wsNormal: if lastWS = 1 then scaleDown;
        wsMaximized: if lastWS = -1 then scaleUp;
    end;
    frmMain.Repaint;
end;

stahli 4. Dez 2012 11:22

AW: Idee gesucht für skalierbare, dynamisch erstellte Controls
 
Wahrscheinlich bringt Dir das wenig - aber:
Gerade in Bezug auf Skalierbarkeit sollte FireMonkey (bei allen Schwierigkeiten) deutlich effektiver sein. Wer viel in dem Bereich arbeitet, sollte sich das mal anschauen.


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