2011-10-20 6 views
5

Rozważmy tę formę, z etykietą 'Observer tutaj' i przycisk 'Kliknij':Dlaczego elementy sterujące znajdują się w niewłaściwym miejscu, jeśli są ustawione podczas przewijania formularza?

a label near the left edge of the form, with a button

Na przycisku kliknij ja ustawiania etykiety Left do 10 (Label1.Left :=10;)

Dostaję poprawnie jak w drugim obrazie:

form with label near left edge

Potem przewinąć formularz do prawej:

same form as before, but scrolled right so label is hidden

Teraz, po kliknięciu przycisku pojawia się problem, który jest pokazany w obrazie 4:

same form, scrolled left, but label visible near middle instead of left

etykiety Left nie jest 10 już. To więcej niż 10, ale potrzebuję jej 10. Jak mogę to zrobić?

Odpowiedz

6

Label1.Left: = 10; Znaczy 10 po lewej stronie od granicy bieżącej (form1.left).

tak Label1.Left: = 10; nie będzie produkować ten sam efekt zawsze zależy to od Form1.HorzScrollBar.Position ;

trzeba kodować jak

Label1.Left := 10 - Form1.HorzScrollBar.Position ; 

Widać ten wzór na czas projektowania przez wybrać komponent w swoim form1 i dostosować pasek przewijania, ty można zauważyć, że w Object Inspector lewo wartość wybranego elementu będzie również zmienić podczas przesuwania paska przewijania

można zrozumieć to tak

Jeśli masz HorzScrollBar, jeśli dodasz komponenty i ustawisz ich lewą wartość na bardzo wysoką, forma1 nie zwiększy jej szerokości, ale jej wirtualna szerokość obsługiwana przez pasek przewijania zostanie zwiększona, wszystkie wartości koordynacji podadzą wartość w stosunku do form1 niezwiązanego z wirtualna przestrzeń

+0

odnoszą http://books.google.lk/books?id=V9t0lA-BPUAC&pg=PA349&lpg=PA349&dq=HorzScrollBar.Position+and+left+in+delphi&source=bl&ots=4-VEnO6j9k&sig=mmaYp0uooE-QveNIjUhk5eZoyyU&hl = en & ei = nBegTpT8D4f3rQebkv2JAw & sa = X & oi = book_result & ct = result & resnum = 1 & ved = 0CBwQ6AEwAA # v = onepage & q & f = false – VibeeshanRC

+0

Czy ktoś może mi powiedzieć, czy ten sam wzór jest używany w winformach studyjnych visual. – VibeeshanRC

+0

@rakesh, jeśli uważasz, że jest to odpowiedź, którą chciałeś, możesz zaakceptować to jako rozwiązanie lub możesz wyrazić opinię zwrotną. – VibeeshanRC

Powiązane problemy