Autor |
Beitrag |
del1312
      
Beiträge: 190
|
Verfasst: Mi 26.05.04 08:59
hallo ich hab ne form und nen memo und möchte nun wenn man die größe der form ändert, das sich die größe des memo auch ändert.
dachte da an den code.
Quelltext 1:
| memo1.Width:= Form1.Width -30; |
aber ich weiss nicht, unter welches ereignis der form ich es setzten muss, damit es sich auch immer gleich mit aktualisiert
wenn die form verändert wird. danke für eure hilfe 
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: Mi 26.05.04 09:06
*tippgeb* Schau dir doch mal die Eigenschaft "Anchors" an!
_________________ JSXGraph
|
|
del1312 
      
Beiträge: 190
|
Verfasst: Mi 26.05.04 10:07
ah vielen dank, das war ja einfach  zwei klicks und schon klappt es, vielen dank für den tipp 
|
|
del1312 
      
Beiträge: 190
|
Verfasst: Mi 26.05.04 10:11
äh noch ne kleine frage, wie kann ich im memo nen scrollbalken wenn nötig einstellen? wenn nun tetxt drin ist und ich das fenster ganz klein zieh dann erscheint der leider nicht und wenn ich scrollbars auf ssvertical stelle dann ist er ja immer da.
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: Mi 26.05.04 10:13
Eigentlich gilt: Neue Frage neuer Thread...
Eigenschaft: TMemo.Scrollbars
Einstellen kann man ssNone, ssBoth, ssVertical, ssHorizontal
//edit: verlesen. wie mans dynamisch einstellt weiß ich (noch) nich...
raziel
_________________ JSXGraph
|
|
del1312 
      
Beiträge: 190
|
Verfasst: Mi 26.05.04 10:23
alles klar, nächstemal mach ich nen neuen thread auf  also dann muss ich erstmal mit der statischen scrollleiste auskommen. danke nochmal
|
|
MartinPb
      
Beiträge: 698
|
Verfasst: Mi 26.05.04 12:02
Kennst du die Eigenschaft Align? Stellst du sie so ein:
Delphi-Quelltext 1:
| Memo1.Align := alClient; |
schon passt sich die Komponente atomatisch an.
_________________ Gruß
Martin
|
|
JoelH
      
Beiträge: 806
Erhaltene Danke: 17
Win10
Delphi Alexandria 11.2 Patch 1
|
Verfasst: Mi 26.05.04 12:17
ecspooky hat folgendes geschrieben: | aber ich weiss nicht, unter welches ereignis der form ich es setzten muss, damit es sich auch immer gleich mit aktualisiert
wenn die form verändert wird. danke für eure hilfe  |
Die Form hat ein Event onResize da kannste deinen Code reinlegen. Einfach mal in den Objektinspektor guggen.
_________________ mfg. Joel
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: Mi 26.05.04 12:28
MartinPb hat folgendes geschrieben: | Kennst du die Eigenschaft Align? Stellst du sie so ein:
Delphi-Quelltext 1:
| Memo1.Align := alClient; |
schon passt sich die Komponente atomatisch an. |
Problem: Das Memo beansprucht die ganze Form für sich.
JoelH hat folgendes geschrieben: | Die Form hat ein Event onResize da kannste deinen Code reinlegen. Einfach mal in den Objektinspektor guggen. |
Da muss man jedesmal die Größe selbst neu ausrechnen ...
raziel
_________________ JSXGraph
|
|
FaTaLGuiLLoTiNe
      
Beiträge: 200
Erhaltene Danke: 5
Windows 7, Windows 8.1
Delphi XE
|
Verfasst: Mi 26.05.04 12:32
raziel hat folgendes geschrieben: |
MartinPb hat folgendes geschrieben: |
Kennst du die Eigenschaft Align? Stellst du sie so ein:
Sourcecode:
Memo1.Align := alClient;
schon passt sich die Komponente atomatisch an.
|
Problem: Das Memo beansprucht die ganze Form für sich.
|
Wollte ich auch erst anmeckern, aber wenn man für die anderen auf dem Form befindlichen Komponenten auch Align von alNone auf irgendetwas anderes umstellt, dann geht's wieder (ist dann in etwa so wie BorderLayout bei JAVA, wo man mit South, East usw. die Kompos platziert).
_________________ << FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
|
|
MartinPb
      
Beiträge: 698
|
Verfasst: Mi 26.05.04 12:45
Ein kleiner Trick (kein Tip). Wenn es schnell gehen soll und man keine Lust hat es richtig zu machen, dann kann man die Leiste so dazuschalten:
- alles in der Change Prozedur des Memos machen
- Zuerst die Canvas Texthöhe einer Zeile berechnen. Kann man mit Canvas.TextHeight('abc') machen
- Da Memo selbst kein Canvas hat, muß man die Berechnung mit einer TCanvas machen. Der Font sollte der gleiche wie bei Memo sein
- dann Anzahl der Memozeilen mit der Höhe multiplizieren
- jetzt abfragen ob die Zahl größer als die Memo-Höhe ist
- wenn ja, dann ScrollBar dazuschalten
- wenn nein, dann ScrollBar wieder abschalten (das Abschalten ist wichtig)
Das ist übrigens nichts richtiges, aber wenn es schnell gehen soll, dann kann man damit sein Ziel ereichen.
Soweit ich mich erinnern kann geht die Cursorposition beim Zuschalten des ScrollBar in die Null Position. Man sollte also die Position des Cursors sich vorher merken und dann wieder korrekt stellen.
_________________ Gruß
Martin
|
|
JoelH
      
Beiträge: 806
Erhaltene Danke: 17
Win10
Delphi Alexandria 11.2 Patch 1
|
Verfasst: Mi 26.05.04 14:56
Titel: hmm,
raziel hat folgendes geschrieben: |
JoelH hat folgendes geschrieben: | Die Form hat ein Event onResize da kannste deinen Code reinlegen. Einfach mal in den Objektinspektor guggen. |
Da muss man jedesmal die Größe selbst neu ausrechnen ...
raziel |
Das hatte er doch schon, einfach seine Zeile in den Resize reinkopiert und gut ist, was soll man sich da mit Anchor'n usw. rumärgern, der Effekt bleibt der gleiche.
_________________ mfg. Joel
|
|