Autor Beitrag
Fighter#1
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 787

Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
BeitragVerfasst: Di 08.08.06 07:27 
Hallo,
ich hab da ein Probem. Wie kann ich mir das leben einfacher machen, wenn der User mein Formular vergrößert und meine Komponenten immer mit vergrößert werden sollen.
Bis jetzt schreib ich ins OnResize meiner Formulares meistens diese Verhältnisse zwischen den Komponenten selber rein, aber gibts da nicht irgendwas einfacheres.
Teilweise hab ich einfach auch CanClose auf False gesetzt. aber das erscheint mir auch nicht sinnvoll!
Bitte Bitte helft mir!

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
passiv
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 270

WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
BeitragVerfasst: Di 08.08.06 07:45 
was willst du mit canclose?
um ein verhältnis herzustellen kannst du die einzelnen Komponenten im objektinspektor bei den anchors auf true setzen, dann "haften" alle ecken dort wo sie herkommen

_________________
Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Di 08.08.06 08:17 
Schau mal bei den Jedis nach, da hab ich mal eine Komponente gesehen, die genau das macht was du vorhast. Ich habe leider keine Ahnung mehr wie die heißt aber sie müsste im Reiter "Form" gewesen sein (glaub ich ^^) :P ...


mfg
Fighter#1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 787

Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
BeitragVerfasst: Di 08.08.06 09:08 
Sorry, ich meinte nicht canclose sondern canresize... kann ja jedem mal passieren,
sonst schonmal danke, ich werds mir mal anschaun!

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
Pille
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 105

Windows 7
DelphiXE Prof.
BeitragVerfasst: Di 08.08.06 09:42 
user profile iconFabian W. hat folgendes geschrieben:
Schau mal bei den Jedis nach, da hab ich mal eine Komponente gesehen, die genau das macht was du vorhast. Ich habe leider keine Ahnung mehr wie die heißt aber sie müsste im Reiter "Form" gewesen sein (glaub ich ^^) :P ...


TJvAutoSizeCompo

mfg Pille
Fighter#1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 787

Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
BeitragVerfasst: Di 08.08.06 10:12 
Danke, bei mir heißt die Kompo zwar TJvFormAutoSize, die von dir genannte gibts nicht? (bei mir) und sie erfüllt ihre zwecke ganz gut!

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
Pille
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 105

Windows 7
DelphiXE Prof.
BeitragVerfasst: Di 08.08.06 10:17 
An dem Rechner hier ist leider nict die aktuellste Version von Jedi installiert. Wahrscheinlich wurde die Komponente inzwischen umbenannt. Sorry.

mfg Pille
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Di 08.08.06 10:25 
Normalerweise benutzt man dazu die Eigenschaften Align und Anchors, welche jede visuelle Komponente hat...


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Di 08.08.06 10:29 
:? Was is einfacher? Bei 50 Komponenten auf dem Formular jede Eigenschaft richtig setzten, oder garde die Jedi auf's Form zieh'n?^^ :roll: :wink:
passiv
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 270

WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
BeitragVerfasst: Di 08.08.06 10:32 
das war ja sowiso nur für vielleicht 20 Komponenten gedacht
bei zuvielen hätt ich mir dan was anderes einfallen lassn müssen :mrgreen:

_________________
Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Di 08.08.06 10:34 
Hmm... Ich denke, dass man eigentlich gleich von Anfang an dran denken sollte, dass die Form auch vergrößerbar ist und nicht erstaml 50 Komponenten zusammenzuklicken und sich darüber danach Gedanken zu machen :roll: Aber gut, wenn's passiert ist, ist's passiert...


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Pille
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 105

Windows 7
DelphiXE Prof.
BeitragVerfasst: Di 08.08.06 11:00 
user profile iconMrSaint hat folgendes geschrieben:
Normalerweise benutzt man dazu die Eigenschaften Align und Anchors, welche jede visuelle Komponente hat...


MrSaint


Und wie kriege ich es damit hin, dass z.B. 3 Panels nebeneinander immer jeweils 1/3 der Formularbreite breit sind und sich das mittlere Panel zwischen den beiden anderen zentriert?

Pille
passiv
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 270

WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
BeitragVerfasst: Di 08.08.06 12:39 
mahlzeit

Zitat:
Und wie kriege ich es damit hin, dass z.B. 3 Panels nebeneinander immer jeweils 1/3 der Formularbreite breit sind und sich das mittlere Panel zwischen den beiden anderen zentriert?


meinst du, dass sich das mittlere dehnt oder alle drei?

bei ersterem: vom mittlerem anchors left und right auf true, vom linken left und vom rechten right

beim zweiten: alle drei bei anchors left und right auf true, den rest erledigt delphi :wink:

_________________
Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
Pille
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 105

Windows 7
DelphiXE Prof.
BeitragVerfasst: Di 08.08.06 12:55 
@passiv: ich meine das 2., jedes Panel soll jeweils 1/3 der Formularbreite einnehmen und alle 3 sollen schön nebeneinander das Formular abdecken. Und das geht nun mal nicht so, wie du schreibst. Da ändern dann zwar alle ihre Breite, aber der linke Rand der 2 rechten Panels bleibt an der gleichen Bildschirmstelle stehen, zudem verändern alle ihre Größe nicht proportional zum Formular.

mfg Pille
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Di 08.08.06 18:34 
Hallo,

mal ohne anchors:

auf die Form > Panel1 > Align = alLeft
Panel1 > BevelOuter = bvNone
auf die Form > Panel2 > Align = alClient
auf Panel1 > Panel3 > Align = alLeft
auf Panel1 > Panel4 > Align = alClient

dann noch der Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.FormResize(Sender: TObject);
begin
  Panel1.Width := Round(Width/3*2);
  Panel3.Width := Round(Panel1.Width/2);
end;

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )