Hej! Hur får man programmet att öppna sig där man senast stängde det? Vid en avstängningsprocedur sparar du koordinaterna i fil eller register. Vid en uppstartsprocedur laddar du upp koordinaterna, och placerar fönstret där. Tack Niklas, men jag vill gärna ha hjälp med koden också. Finns ju inte något enkelt svar på det. Ett litet prog ca 1/10 av skärmen. Jag kan ju sätta placeringen manuellt men då blir det olika beroende på skärmupplösning och wide eller inte. Det ska ligga nere i höger hörn och placering räknas ju från övre vänstra hörnet. /Peter Öh... Oki då förstår jag,1/10 av skärmen det betyder att width och height blir ex. Tack igen! Du behöver inte köra till registret, Jo, han vill alltid ha programmet där man stängde det, och inget annat. mmm.... Låste på denna mening. Tack NJ o SÅP! Programmets startposition
PeterSv: Programmets startposition
Sv:Programmets startposition
Tack!
PeterSv: Programmets startposition
Vad är det för typ av program,vad gör det ?Sv:Programmets startposition
Sv: Programmets startposition
Du använder FSO eller "Open ... As ..." för att skriva till och läsa från filer. Eller SetSetting och GetSetting för att skriva till registret.
Du sätter och får fram positionen med frmMain.Top och frmMain.Left, alternativt frmMain.Move (om vi antar att din form heter frmMain).
Lämpliga uppstarts- och avstängningsprocedurer är kanske Form_Load och Form_Unload.
Nu borde det inte vara något problem att skriva ihop programmet. (För du kan väl inte mena att någon ska skriva det åt dig?)Sv: Programmets startposition
Vid 1024 * 768 blir 102 * 77. Då skall den Formen ligga Left 922 och Top 691. Pixel.
Vi får konstruera en algoritm som kör i Form_Load och först tar reda på vilken upplösning
användaren har. Obs pixelvärdena skall multipliceras med 15
Testa det här i Form_Load
<code>
Form1.Width = Screen.width\10
Form1.Height = Screen.Height\10
Form1.Top = Screen.Height - Form1.Height ' ( - justeringsfaktor testa 300)
Form1.Left = Screen.Width - Form1.Width ' ( - justeringsfaktor testa 300)
</code>Sv:Programmets startposition
Nu är jag ju inte proffs för då hade jag inte behövt fråga, Jag programmerar heller inte kontinuerligt så man är lite nybörjare i många avseenden. Det finns väl ingen gräns för när man får använda pellesoft.se?
Naturligvis ska inte ni skriva mitt program, men vissa kodsnuttar behövs för att komma rätt. Har koll på frmMain.Top och frmMain.Left, Form_Load och Form_Unload, men har aldrig varit med om att "skriva till registret". Så det får du gärna visa mig exempel på.
Ha de gött!
PeterSv: Programmets startposition
lägg mitt kodexempel i din frmMain_Load eller vad den nu heter.
Krångla inte med registret kör denna kod i din Form
<code>
Option Explicit
Private Sub Form_Load()
Me.Width = Screen.Width \ 10
Me.Height = Screen.Height \ 10
Me.Top = Screen.Height - Me.Height '' '( - eventuell justeringsfaktor testa 300)
Me.Left = Screen.Width - Me.Width
End Sub
</code>Sv:Programmets startposition
För att skriva till registret använder du SaveSetting:
SaveSetting appname, section, key, setting
Du fyller på där med
SaveSetting "Peters program", "Startup", "StartUpX", Form.Left
Där det viktiga är det tredje och fjärde argumentet.
Du får fram dem mha GetSetting:
GetSetting(appname, section, key[, default])
Sista argumentet är valfritt och används om det inte finns något inskrivet. Du skulle t.ex. kunna skriva
Form.Left = CLng(GetSetting"Peters program", "Startup", "StartUpX", "0"))
Kör alltså GetSetting när programmet öppnas och SaveSetting när det stängs.Sv: Programmets startposition
<b>Det ska ligga nere i höger hörn och placering räknas ju från övre vänstra hörnet.</b> Sv:Programmets startposition
<code>
Private Sub Form_Unload(Cancel As Integer)
SaveSetting("Program", "Startup", "StartUpX", Form.Left)
</code>
Får felmeddelande [Förväntar sig ett "="]
Fattar inte vad "Section" & "Key" innebär i detta fall
Sen kan jag tänka mig attt jag ska göra en likadan för Form.Top också, eller?
/Peter