[DELPHI / DLL] problem z ładowaniem formy z dll

0

http://4programmers.net/Delphi/Artyku%C5%82y/Biblioteki_DLL <-- W tym artykule jest taki kod do pokazywania formy:

library LibSample;

uses
  Forms,
  Main in 'Main.pas' {Form1};

procedure ShowForm;
var
  Form1 : TForm1;
begin
  Form1 := TForm1.Create(Application); // stworz formularz
  Form1.ShowModal; // wyswietl formularz
  Form1.Free; // zwolnij zmienna
end;

exports
  ShowForm index 1;

begin
end.

chodzi oto że podczas wywoływania formy przez ShowModal inne formy są nieaktywne a jak używam Show to forma zaraz znika.
Czy można jakoś wywołać forme z dll tak żeby inne okna były wciąż aktywne ??

0

próbowałeś tak:

procedure ShowForm;
var
  Form1 : TForm1;
begin
  Form1 := TForm1.Create(Application); // stworz formularz
  Form1.Show; // wyswietl formularz
//  Form1.Free; // zwolnij zmienna
end;
0

Niestety jak klikam żeby się załadowało to zaraz znika tzn. ładuje się pojawi się na sekunde i znika

0

dobra, poświęciłem się http://aklimx.sppieniezno.pl/trash/form_in_dll.zip
działa jak trzeba, problem masz gdzie indziej

podrawiam, Aklimx

0

W głównym oknie mam listbox do którego dodaje ścieżkę do pliku/ów dll teraz chce wybrać którąś dll'ke więc ją zaznaczam i klkam na przycisk "Ładuj" pokazuje się okno z dll'ki do tego momentu jest ok ale jak chcę powrócić do głównego okna nie moge musze najpierw zamknąć to z dll'ki i dopiero moge powrócić i wybrać inną opcje można to jakoś zmienić żeby była możliwość swobodnego przechdzenia między głównym oknem a tym z dll'ki

0

U mnie wszystko dziala ok :)

Ale problem pojawia sie gdy na forme w DLL doloze kilka komponentow(Richedit, Panel, Edit itp, itd), wtedy oczywiscie forma laduje sie wysmienicie, ale przy probie zamkniecia glownego programu wywala stos bledow typu :

Access violation at address 0014ED7D. Write of address FFFFCD50.

  potem

W aplikacji wystapil wyjatek nieznany wyjatek programowy (0x0eedfade) pod adresem 0x7c81eb33.

  i jeszcze

Runtime error 217 at 0037C86E

Czy jest cos czego nie wpisalem bo nie wiem o co chodzi [???]

Z gory dzieki za podpowiedz ;-)

0

Problemem jest ze nie jest zwalniana zmienna "* Form2.Free; * zwolnij zmienna".

Jezlei wie ktos jak zrobic zeby ten blad sie nie pokazywal piszcie !

0

Na formie z DLL daj przycisk zamknij i w jego OnClick daj:

Form2.close;

i w OnClose Form2 daj:

Form2.Free
0

Witam ponownie

Niestety, nadal forma zaladowana z DLL wykrzacza sie przy probie wylaczenia glownej aplikacji, czy ma ktos inne rozwiazanie dla tego problemu ??

0
Swierzak napisał(a)

Niestety, nadal forma zaladowana z DLL wykrzacza sie przy probie wylaczenia glownej aplikacji, czy ma ktos inne rozwiazanie dla tego problemu ??

mozesz to gdzies zamiescic? jak bede mial chwile to zassam, bo widze, ze juz dlugo sie meczysz...

1 użytkowników online, w tym zalogowanych: 0, gości: 1