Thread View: alt.pl.comp.lang.csharp
18 messages
18 total messages
Started by rozrabiak
Tue, 06 Apr 2004 19:35
Formularz w DLL :)
Author: rozrabiak
Date: Tue, 06 Apr 2004 19:35
Date: Tue, 06 Apr 2004 19:35
7 lines
958 bytes
958 bytes
Witam Probowal ktos z was umiescic formularze w bibliotekach dll? np: mam w programie trzy formy i chcialbym kazda z nich wrzucic do osobnego dll-a. pozdrawiam, grzes
Re: Formularz w DLL :)
Author: Selvin
Date: Tue, 06 Apr 2004 19:56
Date: Tue, 06 Apr 2004 19:56
7 lines
1030 bytes
1030 bytes
<ciach> to w czym problem ?? dodajesz pozniej referencje do bibliotek i uzywasz do woli :P pozdrawiam Przemek Sulikowski
Re: Formularz w DLL :)
Author: rozrabiak
Date: Tue, 06 Apr 2004 20:10
Date: Tue, 06 Apr 2004 20:10
26 lines
1777 bytes
1777 bytes
Użytkownik Selvin napisał: > <ciach> > to w czym problem ?? > dodajesz pozniej referencje do bibliotek i uzywasz do woli :P > > pozdrawiam > > Przemek Sulikowski > > Witam Przemku. Czyli tak: tworze Class library, pozniej add item -> windows form, robie z ta forma co mnie sie podoba, buduje projekt, tworzy sie dll... i w tym momencie mi kopara pier...la o podloge :D nie wiedzialem, ze tworzenie formularzy w bibliotekach i importowanie ich do projektu jest tak banalne :) A czy sa jakies ograniczenia jesli chodzi o formy w dll, czy tylko ograniczenia po stronie programujacego? Chodzi mi glownie o to, czy nie bedzie problemu z komponentami bazodanowymi, np: sqlCommand chce wrzucic do dll a connection miec w programie glownym, wyniki oczywiscie na formularzu "wyluskanym" z dll. pozdrawiam, grzesioo. PS: trzeba ta grupe rozruszac :P
Re: Formularz w DLL :)
Author: Selvin
Date: Tue, 06 Apr 2004 20:34
Date: Tue, 06 Apr 2004 20:34
19 lines
1667 bytes
1667 bytes
> Czyli tak: tworze Class library, pozniej add item -> windows form, robie > z ta forma co mnie sie podoba, buduje projekt, tworzy sie dll... i w tym > momencie mi kopara pier...la o podloge :D nie wiedzialem, ze tworzenie > formularzy w bibliotekach i importowanie ich do projektu jest tak banalne :) nie inaczej :) > A czy sa jakies ograniczenia jesli chodzi o formy w dll, czy tylko > ograniczenia po stronie programujacego? tylko > Chodzi mi glownie o to, czy nie bedzie problemu z komponentami > bazodanowymi, np: sqlCommand chce wrzucic do dll a connection miec w > programie glownym, wyniki oczywiscie na formularzu "wyluskanym" z dll. z tym nie ma zadnego problemu pozdrawiam Przemek Sulikowski
Re: Formularz w DLL :)
Author: Showstoppa
Date: Tue, 06 Apr 2004 21:32
Date: Tue, 06 Apr 2004 21:32
26 lines
1869 bytes
1869 bytes
Tue, 6 Apr 2004 22:34:10 +0200, na alt.pl.comp.lang.csharp, Selvin napisał(a): >> Czyli tak: tworze Class library, pozniej add item -> windows form, robie >> z ta forma co mnie sie podoba, buduje projekt, tworzy sie dll... i w tym >> momencie mi kopara pier...la o podloge :D nie wiedzialem, ze tworzenie >> formularzy w bibliotekach i importowanie ich do projektu jest tak banalne > :) > nie inaczej :) > >> A czy sa jakies ograniczenia jesli chodzi o formy w dll, czy tylko >> ograniczenia po stronie programujacego? > tylko > >> Chodzi mi glownie o to, czy nie bedzie problemu z komponentami >> bazodanowymi, np: sqlCommand chce wrzucic do dll a connection miec w >> programie glownym, wyniki oczywiscie na formularzu "wyluskanym" z dll. > z tym nie ma zadnego problemu > > pozdrawiam > > Przemek Sulikowski zainteresowal mnie temat, moglibyscie krok po kroku opisac jak to zrobic, tzn. np. 2 formy, gdzie druga froma w dll`u? bede wdzieczny Dzieki
Re: Formularz w DLL :)
Author: rozrabiak
Date: Tue, 06 Apr 2004 21:44
Date: Tue, 06 Apr 2004 21:44
21 lines
1683 bytes
1683 bytes
Użytkownik Showstoppa napisał: > zainteresowal mnie temat, moglibyscie krok po kroku opisac jak to zrobic, > tzn. np. 2 formy, gdzie druga froma w dll`u? bede wdzieczny > Dzieki Witam. New Project -> Class Library. (musisz ja skompilowac!) Pozniej: Add New Item -> Windows Form. A reszta jak w normalnym programie (tak mi sie wydaje). Pozniej tworzysz Windows Application. Wlazisz w Solution Explorer -> prawoklik na References -> Add Reference i wybierasz swoja biblioteke. Pozniej w aplikacji: using nazwa_twojej_biblioteki; a dalej juz sobie dasz rade, bo postepujesz jak z normalna klasa, czy jak to tam sie zwie ;) pozdrawiam, grzes.
Re: Formularz w DLL :)
Author: Marek Janaszewski USUNTO. z adre...
Date: Tue, 06 Apr 2004 21:49
Date: Tue, 06 Apr 2004 21:49
45 lines
2620 bytes
2620 bytes
rozrabiak wrote:
> Witam
> Probowal ktos z was umiescic formularze w bibliotekach dll?
>
> np: mam w programie trzy formy i chcialbym kazda z nich wrzucic do
> osobnego dll-a.
[...]
Witam!
Wcześniej nie próbowałem ale zgodnie z oczekiwaniami to chwilka pracy, stare
bariery znikają. Właściwie to te pliki nie powinno się nazywać już .dll-kami
tylko Assemblies (złożenia). Tak jak w przypadku aplikacji .net podobieństwo
jest powierzchowne ze starymi aplikacjami.
Aby to zrobić należy
1. Założyć nowy projekt aplikacji okienkowej, wstawić na nim przycisk.
2. Założyć nowy projekt biblioteki klas. Wstawić do biblioteki klas
formularz. Umieścić coś na nim i zbudować projekt.
3. Wracamy do poprzedniego projektu. Najlepiej założyć grupę projektów, to
chyba IDE pomoże w odszukiwaniu złożeń. Na pewno pomoże w przebudowie
całości.
4. Należy dodać referencje do używanego złożenia.
5. I teraz albo zawsze używany pełnej nazwy zewnętrznej klasy wobec
aktualnej przestrzeni nazw, albo użyjemy klauzuli using.
6. Przy drugim wariancie wpisujemy taki kod pod przyciskiem:
private void button1_Click(object sender, System.EventArgs e)
{
(new DllFormLib.DllForm()).Show();
}
Albo ShowDialog() dla okien modalnych. Koniec
Dramatyczna różnica pod względem ilość kodu, który trzeba napisać aby coś
takiego wykonać :-) Dodatkowo pliki są bardzo małe, dzieje się tak kosztem
tego, że korzystają ze wspólnych złożeń z jakiś składa się .NET Framework.
Ale najfajniejsza jest możliwość eksportu typów i wspólny zarządzenie
pamięcią.
--
Pozdrawiam,
Marek Janaszewski
[ j_m...@gazeta.pl ]
Re: Formularz w DLL :)
Author: Showstoppa
Date: Tue, 06 Apr 2004 21:49
Date: Tue, 06 Apr 2004 21:49
26 lines
1815 bytes
1815 bytes
Tue, 06 Apr 2004 23:44:02 +0200, na alt.pl.comp.lang.csharp, rozrabiak napisał(a): > Użytkownik Showstoppa napisał: > >> zainteresowal mnie temat, moglibyscie krok po kroku opisac jak to zrobic, >> tzn. np. 2 formy, gdzie druga froma w dll`u? bede wdzieczny >> Dzieki > > Witam. > New Project -> Class Library. (musisz ja skompilowac!) > Pozniej: Add New Item -> Windows Form. > > A reszta jak w normalnym programie (tak mi sie wydaje). > > Pozniej tworzysz Windows Application. Wlazisz w Solution Explorer -> > prawoklik na References -> Add Reference i wybierasz swoja biblioteke. > Pozniej w aplikacji: > using nazwa_twojej_biblioteki; > > a dalej juz sobie dasz rade, bo postepujesz jak z normalna klasa, czy > jak to tam sie zwie ;) > > pozdrawiam, grzes. ok, juz dzialam. a co tak naprawde robi ta class library ?
Re: Formularz w DLL :)
Author: Showstoppa
Date: Tue, 06 Apr 2004 22:14
Date: Tue, 06 Apr 2004 22:14
46 lines
2755 bytes
2755 bytes
Tue, 6 Apr 2004 23:49:27 +0200, na alt.pl.comp.lang.csharp, Marek
Janaszewski (USUN_TO. z adresu!) napisał(a):
> rozrabiak wrote:
>> Witam
>> Probowal ktos z was umiescic formularze w bibliotekach dll?
>>
>> np: mam w programie trzy formy i chcialbym kazda z nich wrzucic do
>> osobnego dll-a.
> [...]
>
> Witam!
>
> Wcześniej nie próbowałem ale zgodnie z oczekiwaniami to chwilka pracy, stare
> bariery znikają. Właściwie to te pliki nie powinno się nazywać już .dll-kami
> tylko Assemblies (złożenia). Tak jak w przypadku aplikacji .net podobieństwo
> jest powierzchowne ze starymi aplikacjami.
>
> Aby to zrobić należy
>
> 1. Założyć nowy projekt aplikacji okienkowej, wstawić na nim przycisk.
> 2. Założyć nowy projekt biblioteki klas. Wstawić do biblioteki klas
> formularz. Umieścić coś na nim i zbudować projekt.
> 3. Wracamy do poprzedniego projektu. Najlepiej założyć grupę projektów, to
> chyba IDE pomoże w odszukiwaniu złożeń. Na pewno pomoże w przebudowie
> całości.
> 4. Należy dodać referencje do używanego złożenia.
> 5. I teraz albo zawsze używany pełnej nazwy zewnętrznej klasy wobec
> aktualnej przestrzeni nazw, albo użyjemy klauzuli using.
> 6. Przy drugim wariancie wpisujemy taki kod pod przyciskiem:
>
> private void button1_Click(object sender, System.EventArgs e)
> {
> (new DllFormLib.DllForm()).Show();
> }
>
> Albo ShowDialog() dla okien modalnych. Koniec
>
> Dramatyczna różnica pod względem ilość kodu, który trzeba napisać aby coś
> takiego wykonać :-) Dodatkowo pliki są bardzo małe, dzieje się tak kosztem
> tego, że korzystają ze wspólnych złożeń z jakiś składa się .NET Framework.
> Ale najfajniejsza jest możliwość eksportu typów i wspólny zarządzenie
> pamięcią.
wielkie dzieki! jutro to sprawdza, bo ledwo co zyje :)
dziekuje!
Re: Formularz w DLL :)
Author: Selvin
Date: Tue, 06 Apr 2004 22:30
Date: Tue, 06 Apr 2004 22:30
9 lines
1312 bytes
1312 bytes
<ciach> > ok, juz dzialam. a co tak naprawde robi ta class library ? nic tylko kompiluje do biblioteki(jak sama nazwa wskazuje) tak jak bys uzyl csc /target:library i tyle pozdrawiam Przemek Sulikowski
Re: Formularz w DLL :)
Author: Piecu
Date: Tue, 06 Apr 2004 23:19
Date: Tue, 06 Apr 2004 23:19
11 lines
1422 bytes
1422 bytes
rozrabiak napisał(-a): > PS: trzeba ta grupe rozruszac :P Na siłę? -- ____ _ | _ \(_) ___ ___ _ _ piecu(malpka)go2.pl gg:1277308 | |_) | |/ _ \/ __| | | | -------------------------------- | __/| | __/ (__| |_| | "jutro to dziś - tyle, że jutro" |_| |_|\___|\___|\__,_| Sławomir Mrożek (1981)
Re: Formularz w DLL :)
Author: Piecu
Date: Tue, 06 Apr 2004 23:19
Date: Tue, 06 Apr 2004 23:19
12 lines
1612 bytes
1612 bytes
Showstoppa napisał(-a): > ok, juz dzialam. a co tak naprawde robi ta class library ? Tworzy dll. Możesz go później wykorzystać w każdym języku, który da się podpiąć pod .NET. -- ____ _ | _ \(_) ___ ___ _ _ piecu(malpka)go2.pl gg:1277308 | |_) | |/ _ \/ __| | | | -------------------------------- | __/| | __/ (__| |_| | "jutro to dziś - tyle, że jutro" |_| |_|\___|\___|\__,_| Sławomir Mrożek (1981)
Re: Formularz w DLL :)
Author: rozrabiak
Date: Wed, 07 Apr 2004 08:47
Date: Wed, 07 Apr 2004 08:47
15 lines
1421 bytes
1421 bytes
Użytkownik Piecu napisał: > rozrabiak napisał(-a): > >> PS: trzeba ta grupe rozruszac :P > > > Na siłę? > Tam zaraz na sile. Trzeba jakies archiwum tworzyc dla potomnych a nie wszystko samemu mozna obcykac, wiem, dll to akurat banalne, ale jest jeden, ktoremu trzeba zastosowac lopatologie ogolna, mnie to nie nerwi, jesli jestem w stanie komus pomoc i samemu sie czegos dowiedziec to chyba dobrze, prawda? pozdrawiam, grzes.
Re: Formularz w DLL :)
Author: rozrabiak
Date: Wed, 07 Apr 2004 08:51
Date: Wed, 07 Apr 2004 08:51
15 lines
1432 bytes
1432 bytes
Uz.ytkownik rozrabiak napisa?: > Witam > Probowal ktos z was umiescic formularze w bibliotekach dll? > > pozdrawiam, grzes Rozwine temat dalej, bo mam pomysl:) Mam juz trzy formy w dll, kazda w osobnej. Jak wyczaic' czy sa wszystkie biblioteki z katalogu z programem? Chodzi mi o efekt koncowy w stylu: gdy nie ma jakiejs biblioteki, to jedna pozycja z menu programu znika, a gdy dodam ta dll pozycja sie pojawi, oczywiscie musi to dzialac tak, zeby nie pojawial sie zaden wyjatek. Cos na zasadzie pluginow w programach. pozdrawiam, grzesioo.
Re: Formularz w DLL :)
Author: Maciej Łuszczyński
Date: Wed, 07 Apr 2004 08:59
Date: Wed, 07 Apr 2004 08:59
12 lines
1401 bytes
1401 bytes
> Mam juz trzy formy w dll, kazda w osobnej. Jak wyczaic' czy sa wszystkie
> biblioteki z katalogu z programem? Chodzi mi o efekt koncowy w stylu:
> gdy nie ma jakiejs biblioteki, to jedna pozycja z menu programu znika, a
> gdy dodam ta dll pozycja sie pojawi, oczywiscie musi to dzialac tak,
> zeby nie pojawial sie zaden wyjatek. Cos na zasadzie pluginow w programach.
Menu generowane dynamicznie + klasa FileInfo:
FileInfo fiFile = new FileInfo("a.txt");
if ( fiFile.Exists )
...
Pozdrawiam
Re: Formularz w DLL :)
Author: rozrabiak
Date: Wed, 07 Apr 2004 14:15
Date: Wed, 07 Apr 2004 14:15
16 lines
1355 bytes
1355 bytes
Uz.ytkownik Maciej ?uszczyn'ski napisa?:
>
> Menu generowane dynamicznie + klasa FileInfo:
>
> FileInfo fiFile = new FileInfo("a.txt");
> if ( fiFile.Exists )
> ...
>
> Pozdrawiam
S?odkie, ale pluginy chyba nie dokonca tak dzialaja, prawda? trzeba
przeciez jakos "pobrac" z dll nazwy funkcji, procedur, menu, czy ikonki..
Moze sie myle, nie wiem.
pozdrawiam, grzes.
Re: Formularz w DLL :)
Author: Maciej Łuszczyński
Date: Wed, 07 Apr 2004 16:14
Date: Wed, 07 Apr 2004 16:14
10 lines
1350 bytes
1350 bytes
> Słodkie, ale pluginy chyba nie dokonca tak dzialaja, prawda? trzeba > przeciez jakos "pobrac" z dll nazwy funkcji, procedur, menu, czy ikonki.. > > Moze sie myle, nie wiem. Nie mylisz się, ale nie o to pytałeś. Jeśli chodzi o czytanie zawartości biblioteki, własności klas, itp., należy przyjrzeć się przestrzeni System.Reflection, klasie Type, itp. Pozdrawiam,
Re: Formularz w DLL :)
Author: Marek Janaszewski USUNTO. z adre...
Date: Wed, 07 Apr 2004 19:31
Date: Wed, 07 Apr 2004 19:31
22 lines
1722 bytes
1722 bytes
rozrabiak wrote: [...] > S?odkie, ale pluginy chyba nie dokonca tak dzialaja, prawda? trzeba > przeciez jakos "pobrac" z dll nazwy funkcji, procedur, menu, czy > ikonki.. [...] Witam! Wpisałem w googlach hasło "dynamic load assemblies" i jeden z linków był na stronę: http://msdn.microsoft.com/library/en-us/cpguide/html/cpconhowruntimelocatesassemblies.asp Wygląda, że to powinno rozwiązać wiele problemów. Ze względu na wiele sposób ładowania jest trochę trudniej niż w przypadku .dll-li. Chyba Microsoft chce uniknąć dll-hell i dla tego podchodzi tak do tematu. Okazało się także, że używanie nazwy assembly (złożenie) przyspiesza wyszukiwanie. -- Pozdrawiam, Marek Janaszewski [ j_m...@gazeta.pl ]
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads