| Autor |
Beitrag |
Fighter#1
      
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
|
Verfasst: 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
      
Beiträge: 270
WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
|
Verfasst: 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.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: 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 ^^)  ...
mfg
|
|
Fighter#1 
      
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
|
Verfasst: 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
      
Beiträge: 105
Windows 7
DelphiXE Prof.
|
Verfasst: Di 08.08.06 09:42
Fabian 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 ^^) ...
|
TJvAutoSizeCompo
mfg Pille
|
|
Fighter#1 
      
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
|
Verfasst: 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
      
Beiträge: 105
Windows 7
DelphiXE Prof.
|
Verfasst: 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
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: 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.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: Di 08.08.06 10:29
|
|
passiv
      
Beiträge: 270
WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
|
Verfasst: 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 
_________________ Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: 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  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
      
Beiträge: 105
Windows 7
DelphiXE Prof.
|
Verfasst: Di 08.08.06 11:00
MrSaint 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
      
Beiträge: 270
WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
|
Verfasst: 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 
_________________ Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
|
|
Pille
      
Beiträge: 105
Windows 7
DelphiXE Prof.
|
Verfasst: 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
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: 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:
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 )
|
|