ThePascal Skrevet 12. juli 2009 Del Skrevet 12. juli 2009 Hei. Jeg har et problem når jeg skriver programmer i Delphi. Dette er når jeg skal lage programmer som skal være resizeable. Jeg kan godt Align property. Og margins. Men hvis jeg vil ha en komponent i midten av Formen. Si at jeg skal ha en knott som dekker 1/3 av formen og når jeg forstørrer eller forminsker skal den fortsatt stå på samme sted og fortsatt 1/3 av formen(blir mindere/større). Selvsagt hvis Button.Left er 1/2 av formen bortover. Så skal den fortsatt stå på 1/2 av formen når den forstørres/forminskes. Noen som kan hjelpe men å kunne gjøre knottene sånn(TButton); Har lagt til et bilde som vedlegg, hvis jeg skulle ha den designen i Delphi, hvordan få dette slik i formen sånn at man kan forstørre eller forminske formen. Og man kan forsatt se alt og alt er på riktig sted? ScreenDump3.bmp Lenke til kommentar
Giddion Skrevet 14. juli 2009 Del Skrevet 14. juli 2009 Jeg er ingen Delphi ekspert, men jeg bruker TGridPanel(er) til de mer kompliserte layoutene. Lenke til kommentar
ThePascal Skrevet 14. juli 2009 Forfatter Del Skrevet 14. juli 2009 Fant ut muligheten med TGridPanel i dag tidlig. Selvom det er veldig plunder å taste inn prosent veridene når dem forandrer seg hele tiden. Må gjøre om formen til tekst og forandre det der i stedet. Men jeg har en powerpoint med designet, problemet er bare å regne ut alle prosent verdiene av pixlene(huh), veldig tidkrevende. Men tusen takk for svar. Hvis noen vet om et bra program til å designe andre programmer, eller et bilde program som kan oppgi avstandene mellom objektene i prosent. Lenke til kommentar
tasle Skrevet 9. august 2009 Del Skrevet 9. august 2009 Her finner du noe som sikkert kan brukes: http://www.swissdelphicenter.ch/en/showcode.php?id=1463 Evn. søk på Yahoo e.l. etter "Delphi resize bitmap" Lenke til kommentar
pumba50 Skrevet 23. august 2009 Del Skrevet 23. august 2009 (endret) Dette gjør du ved å legge knappene inni en komponent, hvor denne komponenten igjen er sentrert på formen. Så bruker du anchors på knappene inni den komponenten, slik at den strekker seg når vinduets størrelse endrer seg. Hvis du ønsker at en komponent alltid skal være halvparten av formens størrelse, kan du putte denne koden inni formens OnResize event: La oss si du har et panel som du alltid vil ha til å være 50% av formens størrelse: procedure TForm1.FormResize(Sender: TObject); begin Panel1.Width := Self.ClientWidth div 2; Panel1.Height := Self.ClientHeight div 2; Panel1.Left := ((Self.ClientWidth - Panel1.Width) div 2) - 1; Panel1.Top := ((Self.ClientHeight - Panel1.Height) div 2) - 1; end; Da vil panelet alltid være i midten av formen og alltid ha 50% av størrelsen til formen. Men hvis du ønsker en annen prosent, enn 50%, så kan du f.eks skrive det slik: procedure TForm1.FormResize(Sender: TObject); begin Panel1.Width := (Self.ClientWidth div 100) * PROSENT; Panel1.Height := (Self.ClientHeight div 100) * PROSENT; Panel1.Left := ((Self.ClientWidth - Panel1.Width) div 2) - 1; Panel1.Top := ((Self.ClientHeight - Panel1.Height) div 2) - 1; end; Erstatt PROSENT med et prosenttall. Så vil den holde seg til den prosenten av formens størrelse og alltid være sentrert på formen. En raskere metode for første eksempel kan være: procedure TForm1.FormResize(Sender: TObject); begin Panel1.Width := Self.ClientWidth shr 1; Panel1.Height := Self.ClientHeight shr 1; Panel1.Left := ((Self.ClientWidth - Panel1.Width) shr 1) - 1; Panel1.Top := ((Self.ClientHeight - Panel1.Height) shr 1) - 1; end; Men uansett om dette fungerer, så ville jeg aldri gått frem på denne måten selv, jeg ville benyttet meg av aligning og splittere til å begynne med. Men du ser selv hva du ønsker å oppnå. Endret 23. august 2009 av Databamse Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå