Hallo,
ich habe ein merkwürdiges Problem. Ich erstelle ein Formular aus einer dll heraus mit folgendem code:
(code in der dll)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure showan(appHandle: THandle); stdcall; begin if appHandle = 0 then apphandle := GetActiveWindow; Application.Handle := appHandle; try with TAnzeigefenster.Create(Application) Do try ShowModal finally Free; end except On E: Exception Do Application.HandleException(E); end; Application.Handle := 0; end; |
nun greife ich aus der create-methode des erstellten formulars auf eine Variable aus der Unit zu, die die procedure der dll aufruft. Die variable ist vom typ tfield, der als
Delphi-Quelltext
1:
| type tfield = array [1..10, 1..10] of boolean |
deklariert ist. Nun hat aber komischerweise dieselbe Instanz davon unterschiedliche Werte, nähmlich wenn ich die Instanz aus dem durch die dll erstelltem Formular aufrufe, immer 100 mal false, in anderen Units oder Formularen den richtigen Wert. Wie kann das sein??
Moderiert von
Narses: Code- durch Delphi-Tags ersetztModeriert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 18.06.2008 um 17:51