Ta data från olika formulär (VB 6.0)

Permalänk
Medlem

Ta data från olika formulär (VB 6.0)

Hej!
Jag har nyss börjat programmera i VB och jag håller just nu på med en liten webbläsare. Nu är det så att jag vill att man ska kunna skriva in adressen i ett nytt formulär (öppna-formulär) och när man trycker på "open" ska den ta texten man har skrivit i den rutan, infoga den i browsern där man skriver adressen i vanliga fall och sedan utföra händelsen .Navigate (wsMyBrowser.Navigate txtURL.Text). Om det är någon som förstår det jag har skrivit så får ni gärna svara.

Jag har alltså formulären frmBrowser och frmOpen. I frmOpen har jag txtOpenUrl och cmdOpen. När man trycker på cmdOpen ska adressen man har skrivit där flyttas till txtURL som finns i frmBrowser. Sedan ska händelsen .Navigate utföras på txtURL.
/Magnus

Permalänk
Inaktiv

Private Sub cmdOpen_Click() Clipboard.Clear Clipboard.SetText txtOpenUrl.Text frmBrowser.Show End Sub

Lägg den i knappen sedan denna i load på frmBrowser formet

Private Sub Form_Load() txtURL.Text = Clipboard.GetText() End Sub

Då kopierar du texten som finna i text boxen och sedan klistrar in i den andra, det ändå sättet jag känner till just nu. Hoppas att detta kan hjälpa dig en bit på väg

Permalänk
Medlem

Tack för hjälpen, men som det ser ut nu har jag två problem med det där. För det första så har jag aldrig unloadat frmBrowser så då blir det svårt att ladda den, sedan ska den där knappen också göra så att händelsen .Navigate uförs i frmBrowser när man har flyttat texten till txtURL

Permalänk
Inaktiv

Lägga till detta i knappen så läggs texten in i text rutan, ska se om jag kan komma på hur man gör så att knappen körs

Private Sub cmdOpen_Click() Clipboard.Clear Clipboard.SetText txtOpenUrl.Text frmBrowser.Show frmBrowser.txtURL.Text = Clipboard.GetText() End Sub

Tror att den koden skall funka, i värsta fall har jag skrivit något fel sp du får ändra den, ska genast pröva mig på att fixa knapp saken nu

Permalänk
Medlem

Ska genast testa det. Men jag har läst lite här och där nu och jag har fått för mig att det går göra globala variabler, alltså att man säger att man ska komma åt txtURL från vilket formulär som helst. Men problemet är att jag inte vet hur man ska göra det=) Jag sitter här med ett häfte vi har fått som säger att man kan göra en variabel global men det står inte hur man ska göra=)

Edit: Det funkade att klippa dit texten om man ändrade frmBrowser.Show till unload frmOpen

Permalänk
Hedersmedlem

Varför krångla till det genom att gå via urklipp?

Private Sub mnuOpen_Click() frmOpen.Show vbModal ' Den stannar här tills du stänger rutan txtURL.Text = frmOpen.txtURL.Text ' Kopiera texten wsMyBrowser.Navigate txtURL.Text ' Kör funktionen End Sub

Visa signatur

Nämen hej!

Permalänk
Inaktiv

Vet tyvärr inget om en global variabel =/

Permalänk
Inaktiv

Donan Fear,

Jag kan inte så mycket, jag satt och prövade och det med att kopiera och klistra in var det ända jag kom på

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Donan Fear
Varför krångla till det genom att gå via urklipp?

Private Sub mnuOpen_Click() frmOpen.Show vbModal ' Den stannar här tills du stänger rutan txtURL.Text = frmOpen.txtURL.Text ' Kopiera texten wsMyBrowser.Navigate txtURL.Text ' Kör funktionen End Sub

frmOpen ska stängas när man trycker på cmdOpen och texten i txtOpenUrl ska då "infinna sig" i txtURL som finns i frmBrowser. Sedan ska händelsen wsMyBrowser.Navigate txtURL.Text utföras i frmBrowser

Permalänk
Hedersmedlem

Ja, vad är problemet?
frmOpen.txtOpenUrl.Text kanske det skulle stå istället då, och själva mnuOpen_Click ska vara kopplad till menyn (eller hur du nu har tänkt dig öppna öppna-rutan) i frmBrowser hade jag tänkt, så den körs ju där.
I cmdOpen i frmOpen är det bara att skriva Me.Hide för att stänga rutan.

Finns det ingen ShowDialog i VB6? Jag brukar använda den i VB.NET så man får reda på vilken knapp användaren tryckte på för att stänga rutan.
Man vill ju inte fortsätta med funktionen om användaren tryckte på avbryt...

Visa signatur

Nämen hej!

Permalänk
Medlem

Nu tar jag det från början. När jag startar programmet öppnas frmBrowser. Där har jag en text-ruta (txtURL) som man kan skriva webbadressen i. När man tycker på knappen "cmdGo" utförs navigate-funktionen och sidan visas. Men nu vill jag att man även ska kunna öppna en lite ruta (frmOpen) och där skriva in adressen. När man gör det ska den sidan öppnas när man trycker på cmdOpen och frmOpen ska stängas ner.
Jag har satt VbModal på frmOpen så att den är längst upp så länge man inte stänger ner den.

Permalänk
Hedersmedlem

Koden som jag skrev gör ju precis det, fast man skulle kunna säga att cmdOpen stänger frmOpen och då körs resten av koden (öppnar sidan).

frmOpen har alltså ingen kod som öppnar sidan eller kopierar text, det är funktionen i frmBrowser som visar frmOpen som sköter det.
Se bara till att använda Hide istället för Unload för att stänga frmOpen annars går det inte att läsa vad man skrev i rutan efteråt.

Visa signatur

Nämen hej!

Permalänk
Medlem

Tack, nu förstod jag äntligen vad du menade och det fungerade. Men nu till nästa problem. Jag vill ävan ha en avbryt-knapp och frmOpen, men vad ska jag ha för någon kod till den knappen? Jag kan inte ta Me.Hide för då har den ju samma funktion som cmdOpen. Om jag skriver unload frmOpen blir det samma sak tror jag, den visar i alla fall en tom sida.
Sedan undrar jag även varför det inte går att använda kortkommando två gånger efter varan. Alltså jag trcyker ctrl+o och då öppnas frmOpen. Sedan skriver jag adressen, trycker på cmdOpen och sidan visas. Men sedan om jag vill öppna en ny sida igen så funkar inte kortkommandot och jag måste gå via arkiv-menyn som frmOpen ligger under och där fungerar det.

Permalänk
Hedersmedlem

Som sagt så kommer jag inte ihåg om VB6 har en funktion som ShowDialog i .NET men om den har det (leta i hjälpen ) så är det bara att välja att OK ska vara OK-knapp och Avbryt ska vara Avbryt-knapp så ska själva funktionen ShowDialog returnera vilken knapp du tryckte på.

Finns inget sånt kan du göra en publik variabel i frmOpen som cmdOpen sätter till True och avbrytknappen sätter den till False innan den stänger rutan. Sen går det att kolla i funktionen utanför om den är true eller false.

Visa signatur

Nämen hej!

Permalänk
Medlem

Ok, men vilken funktion ska knapparna sätta till true eller false?

Har även två frågor till=)
Hur gör man för att det ska gå använda rullningslistorna i en WebBrowser och hur gör man för att den (WebBrowser ) ska ändra storlek automatiskt när man ändrar storlek på hela formuläret

Permalänk
Hedersmedlem

orka inte läsa de sista svaren (utom det allra sista).
canton, när jag hade programmer A-kursen så gjorde jag AWB som projekt.
Kan nog tankas på den (fula) sidan www.aqualize.tk
Du kan få koden med sen, med det är ju lite fusk(?).
Med frågan om hur du ska kunna använda rullningslistorna, vad menar du med det? WebBrowser-kontrollen fixar väl det automatiskt?
Den andra därimot är ganska enkel. i form.resize lyssnaren så skriver du in lite kod som ändrar webbrowser-kontrollen också (den ska nog vara några pixlar mindre). Obs! kolla även med en if-sats om form.WindowState så inte fönstret är minimerat när man resizerar (minns jag rätt så kördes det när man minimerade osv.), kollas inte det upp så blir den en krash om jag minns...

Visa signatur

Forumregler | Feedbackforumet | Något som behöver modereras? Tryck på Anmäl inlägget och ge en anledning, någon moderator kommer granska inlägget och göra (egen) bedömning
"Fate. Protects fools, little children and ships named Enterprise." - Riker - ST:TNG

Permalänk
Medlem

Det skulle vara mycket snällt om du ville ge mig koden=) Det är inte någon uppgift jag har att göra den här browsern utan det är bara för att lära mig. Min lärare tycker det här är ganska mycket överkurs just nu och han kan ärligt talat inte så mycket så jag måste hämta uppgifter från nåt ställe=)
Vad ska jag skriva för någon kod i form.resize lyssnaren? Hur ser den där if-satsen ut? Som du kanske förstår kan jag inte så mycket än så länge så mina frågor är kanske lite väl enkla...

Angågende att använda rullningslistorna så var det bara nåt problem med VB, det löste sig nämligen när jag startade om programmet

Edit: En fråga till=)
Hur gör man för att kunna ändra inställningar på ett program så att den kommer ihåg det till nästa gång man startar programmet? Alltså om jag tex vill ändra startsida i min browser, hur gör jag det?