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


Flytta klassarv till fristående klasser. Få min applikation att fungera.

Postades av 2006-11-28 22:57:01 - Andreas Lagerkvist, i forum visual studio.NET IDE, Tråden har 6 Kommentarer och lästs av 972 personer

Jag är tvungen att dela in en klass i flera klasser.

Så här såg det ut förrut:

Public class Form1: Form, KlassB, KlassC
{
}

Nu måste jag byta till
Public class Form1: Form
{
}

Public class NyKlass: KlassB, KlassC
{
}


För att kunna nå medlemmar i Form1 måste jag byta till public static i Form1 och anropa från NyKlass med hjälp av Form1.Medlem


Nu har jag en kontroll i Form1 som jag måste ha public static, men när jag ändrar något i designeeditorn så skriver den om till bara public.

Jag blir smått vansinning och jag vill bara få detta att fungera. Det var otroligt enkelt förrut när all kod hade fri tillgång till alla medlemmar. Hur ska jag göra nu?

Mvh
Andreas


Svara

Sv: Flytta klassarv till fristående klasser. Få min applikation att fungera.

Postades av 2006-11-29 09:15:26 - Simon Dahlbacka

Public class Form1: Form, KlassB, KlassC
{
}

Det gjorde den garanterat inte, för .NET har inte stöd för att ärva från många föräldrar.

Sen måste man ju säga att din design är något suboptimal så att säga, ska du ha en klass eller många?
Har du många så ska du ju inte använda som som om dom vore en enda stor blob.

<b>Det var otroligt enkelt förrut när all kod hade fri tillgång till alla medlemmar.</b>
Som du märkt, är det enkelt att skriva spagettikod...

För att detta inte ska bli enbart smutskastning så ska jag försöka komma med några råd också
- skulle ha varit enklare att hjälpa om du berättat mer om vad klasserna innehåller.
- accessera inte direkt medlemsvariabler utan använd properties, nånstans behöver du antagligen skicka med en referens så att klasserna vet om varandra.
- eventuellt kan du använda händelser (events) för att kommunicera mellan dom
- nej du behöver inte byta till static bara du har en referens till din instans


Svara

Sv:Flytta klassarv till fristående klasser. Få min applikation att fungera.

Postades av 2006-11-29 20:05:48 - Andreas Lagerkvist


Jag har axWebBrowser1 i Form1 som jag vill synca i klassen som använder DWebBrowserEvents2 och HTMLDocumentEvents2.

Man kan göra lösningen på olika sätt men jag vill ändra så lite som möjligt för att undvika plötsliga buggar.

Går det att lösa detta utan att anropa massa funktioner så fort man skriver eller läser en variabel?

Hur skulle du göra rent konkret utan att ändra för mycket?


Svara

Sv: Flytta klassarv till fristående klasser. Få min applikation att fungera.

Postades av 2006-11-29 21:04:38 - Andreas Lagerkvist

Jag har gjort följande:
Byggt en funktion för klassen som tar hand om webbrowser events som tilldelar 2 AxWebBrowser objekt genom att skicka referencen till objekten i Form1:


ieevents1.SetAxWebBrowser(ref axWebBrowser1,ref axWebBrowser2);
ieevents2.SetAxWebBrowser(ref axWebBrowser1,ref axWebBrowser2);

Det jag tror att den gör är att göra objekten till pekare så att hela webbrowserklassen får pekare istället för kopior. Stämmer det?


Här är en del av den kod jag använder för att knyta com connection point anrop till den webbrowserklassen.


public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

/*axWebBrowser2.HandleDestroyed +=new System.EventHandler(axWebBrowser2_HandleDestroyed);*/




icpc = (UCOMIConnectionPointContainer)axWebBrowser1.GetOcx();
Guid guid = typeof (SHDocVw.DWebBrowserEvents2).GUID;
icpc.FindConnectionPoint(ref guid, out icp);
icp.Advise(ieevents1, out this.dwCookie );


icpc = (UCOMIConnectionPointContainer)axWebBrowser2.GetOcx();
guid = typeof (SHDocVw.DWebBrowserEvents2).GUID;
icpc.FindConnectionPoint(ref guid, out icp);

icp.Advise(ieevents2, out this.dwCookie );


ieevents1.SetAxWebBrowser(ref axWebBrowser1,ref axWebBrowser2);
ieevents2.SetAxWebBrowser(ref axWebBrowser1,ref axWebBrowser2);

//
// TODO: Add any constructor code after InitializeComponent call
//
}


Svara

Sv:Flytta klassarv till fristående klasser. Få min applikation att fungera.

Postades av 2006-11-30 15:38:48 - Andreas Lagerkvist

Jag är inne på lite okänt vatten så jag riskerar att kanske ställa en lite dum fråga. Jag undrar om man kan skicka med referens till en funktion istället för ett objekt och använda anrop från den nya klassen till basklassen?

När jag försökte migrerar till separata klasser så löser sig det mesta med att tilldela objekt jag hämtat med ref . Däremot att göra en funktion i basklassen till static är att tigga om problem. Allt i den funktionen måste då också bli static och det innebär att alla funktionsanrop som görs i den måste bli static och det slutar med att allt måste bli static.


Svara

Sv: Flytta klassarv till fristående klasser. Få min applikation att fungera.

Postades av 2006-11-30 17:44:26 - Oskar Johansson

Titta på 1) Delegater och 2) Interface. Lite beroende på så är en utav dem möjliga. Delegater är i princip en typad pekare på en funktion, och Interface är i princip ett definerat gränssnitt, dvs. ett krav på en klass som implementerar gränssnittet, att ha de egenskaper och funktioner som finns definerade i interfacet.


Svara

Sv:Flytta klassarv till fristående klasser. Få min applikation att fungera.

Postades av 2006-12-03 23:41:22 - Andreas Lagerkvist


Har löst det mesta nu i min applikation tack vare er hjälp.
Tackar tackar.


Svara

Nyligen

  • 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
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 153
27 952
271 704
770
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