Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


VB6: Exekvera kod i en sträng

Postades av 2005-03-02 09:28:15 - Thomas Guldberg, i forum visual basic - allmänt, Tråden har 5 Kommentarer och lästs av 710 personer

Jag vill exekvera innehållet i en sträng som vb-kod. T,ex är innehållet i en sträng följande:
"frmABC.cmdButton1.Visible" Jag vill alltså exekvera koden som står i strängen typ: If (innehållet i strängen) = False then osv....


Svara

Sv: VB6: Exekvera kod i en sträng

Postades av 2005-03-02 10:04:30 - Johan Svensson

Hej,

Jag är inte helt säker på att jag är med på vad du behöver, men jag rekommendera att du kollar på CallByName i hjälpen (MSDN), denna funktion kanske kan lösa dina problem.

Lycka till!

// Johan


Svara

Sv:VB6: Exekvera kod i en sträng

Postades av 2005-03-02 11:24:12 - Thomas Guldberg

Funkar inte med CallByName, object är ett formulär och formuläret innehåller en meny jag måste veta om den är Visible eller inte och menynamnet får jag som en sträng, det blir en "nivå" för mycket...

T


Svara

Sv: VB6: Exekvera kod i en sträng

Postades av 2005-03-02 15:51:41 - Oskar Johansson

Du får väl göra lite egen kod...

Dvs. dela upp strängen i delsträngar. Ta första biten. Testa callbyname på den. Ta nästa, ta första som parameter etc. etc.

(Dvs. dela på varje punkt)


Svara

Sv:VB6: Exekvera kod i en sträng

Postades av 2005-03-03 11:42:22 - Per Karlsson

Det tuffaste sättet att exekvera kod dynamiskt är genom att använda Microsoft Script Control (måste läggas till som en komponent i projektet).
Testa detta:
Skapa ett nytt projekt. Lägg till komponenten Microsoft Script Control. Lägg en CommandButton och en ScriptControl på Form1.
Skapa en ny klass och ge den namnet SharedClass.
Skriv följande kod i SharedClass:
<CODE>
Public Property Get Form() As Object
Set Form = Form1
End Property
</CODE>
Skriv följande kod i Form1:
<CODE>
Private Sub Form_Load()
Dim sh As SharedClass
Set sh = New SharedClass

ScriptControl1.AddObject "sh", sh, True
MsgBox ScriptControl1.Eval("sh.Form.Command1.Name")
End Sub
</CODE>

Voila! Dynamisk kod som samverkar med din applikation!

Lycka till!
/Pelle


Svara

Sv: VB6: Exekvera kod i en sträng

Postades av 2005-03-03 13:15:21 - Per Hultqvist

Visst finns det vägar runt detta (som t ex de metoder som föreslagits ovan) men enligt min erfarenehet är det mycket sällan nödvändigt att exekvera kod på detta sätt. Det brukar gå att lösa typesäkert och utan dynamisk kod. Visst finns det undantag, men jag kan inte med den information som finns i tråden se att det skulle vara nödvändigt. Ett vanligt undantag är när användarna av ditt program skall kunna skriva egen scriptkod som utökar funktionaliteten i ditt program. Då är MS Script control, VBA, SAX basic m fl bra att ha.

Om du nu har flera formulär så lägg dem i en collection eller liknande, och använd strängen "frmABC" som nyckel. Med denna nyckel får du sedan fram rätt formulärobjekt. Om sedan varje formulär har en menykontroll så kan du ju döpa denna till samma namn på alla formulär (eller använda ett Interface som varje formulär implementerar, där en metod returnerar menykontrollen). Alltså någonting i stil med :
<code>
Dim mForm as IFormInterface
Set mForm=mFormsCollection.Item("frmABC")

if mForm.GetMenuControl.Items("mnuFileSave").Visible=true Then
...
End If
</code>
I ovanstående exempel har interfacet IFormInterface en funktion eller property som heter GetMenuControl som returnerar menykontrollen. Detta sätt är både prestandamässigt bättre och dessutom betydligt mer "typesafe".

Jag kanske missförstått något men som sagt, min erfarenhet är att det nästan alltid finns bättre lösningar än att exekvera dynamisk kod.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 614
27 953
271 709
437
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies