SharpDevelop, Element im Designer aufnehmen



  • Hi,

    ich hoffe, dass ich Fragen zum SharpDevelop hier unterbringen kann.
    Also:
    Ich hab eine von Panel abgeleitete Klasse und will diese in den
    Formdesigener kriegen. Geht das? Bzw. geht das mit einer ganz "normalen"
    Klasse?

    Nochwas:
    Hat schon mal jemand was mit DrawImage gemacht?
    Ich male 40 64x64-Bitmaps und man fühlt sich wie vor dem alten c64!!!
    Langsamer geht's echt nicht mehr.
    Hab dann auf DirectX umgestellt, was übrigens auch deutlich langsamer
    läuft als gewohnt, aber schlimmer ist, dass ich nach jedem kompilieren
    eine SharpDevelop-Exception bekomme. Er kompilert halt, aber jedes mal
    diese Fehlermeldungen sind schon nervig!
    (War mehr eine Anmerkung als eine Frage).

    Jockel



  • Jockeklx schrieb:

    Ich hab eine von Panel abgeleitete Klasse und will diese in den
    Formdesigener kriegen. Geht das? Bzw. geht das mit einer ganz "normalen"
    Klasse?

    Du willst Dein eigenes Panel anzeigen, oder?

    Dann schreibe in Deiner Forms Klasse:

    DeinPanel p = new DeinPanel();
    this.Controls.Add(p);
    

    Du kannst natürlich noch mit den Eigenschaften Size, Location usw. weiter Sachen verändern.



  • Ja, das war mir schon klar, wie ich das per Code darstellen kann.
    Ich wollte meine Klasse aber in den Formdesigner aufnehmen, also
    ein Icon im Designer erstellen.
    Das wird wohl irgendwie gehen, nur weiss ich nicht, ob das mit "normalen" Klassen geht, oder ob die ein spezielles Interface implementieren müssen
    oder von einer bestimmten Klasse abgeleitet werden müssen (z.B. Component?).



  • Dann musst Du ein Windows Steuerelement erstellen.



  • Mmmh, okay Danke, aber das will ich auch nicht. Dann mach ich es halt per
    Code.

    Ich hab noch ne weitere Frage, hat nix mit dem vorherigen zu tun, aber
    schreib ich mal trotzdem hier rein.

    Wie funktioniert eigentlich die (prinzipielle) Plattformunabhängigkeit?
    Also ich hab das so verstanden:
    Eine z.B. mit c# erstellte .exe-Datei enthält kaum Maschinencode, sondern
    im wesentlichen einen Zwischencode. Maschinencode ist nur in soweit vorhanden,
    dass jetzt bitte der Interpreter weitermachen soll.
    Aber dieser-wenn auch Minimale "echte" Code-kann doch nicht plattformunabhängig
    sein?



  • Schau mal hier.

    [EDIT]

    Das .NET Framework



  • Versteh ich leider trotzdem nicht.
    Ich erkläre mein Problem nochmal:

    Bei Java ist das trivial. Ich hab eine .class Datei und
    sage beim öffnen "Führe diese Datei mittels java-Interpreter aus".

    Eine mit c# kompilerte Datei ist aber eine .exe, die den MSIL-Code enthält.
    Das BS startet diese exe, springt zu einer Routine, die den JIT startet,
    übersetzt den MSIL-Code usw..
    Aber eben DIESER KLEINE Teil (starten des JIT) kann doch nicht BS-Unabhängig sein??



  • natürlich muss auf dem rechner .NET Framework (Runtime genau so wie bei Java) installiert sein. und das ist sehr wohl platformabhängig.



  • Irgendwie hab ich heute wohl Probleme mich auszudrücken.

    Letzter Versuch (in MS-Windows):

    In einer Java-class-Datei ist NUR Bytecode.
    Aufruf :

    java datei.class, bzw. Doppelklick, falls Verknüpfung zu java-Interpreter
    besteht.

    Aufruf einer c#-exe:
    Doppelklick. Das BS kann aufgrund der Endung exe NICHT wissen, dass diese
    Datei keine normale exe ist. Also muss da doch etwas "echter" Code stehen,
    der den JIT einschaltet.
    In dieser Datei kann also NICHT NUR CLS-Code stehen, sondern auch ein
    ganz kleines bisschen Code um zumindest jetzt den JIT anzuwerfen.
    Anders kann ich mir das nicht erklären und komme zurück zur Anfangsfrage:
    Wie kann das mit diesem kleinen Teil echten Codes Plattformunabhängig sein?



  • *push*


Anmelden zum Antworten