Autor Beitrag
ruewue
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mi 28.03.12 11:07 
Hallo zusammen,

ich falle langsam vom Glauben ab oder seh den Wald vor lauter Bäumen nicht. Ich haben eine Anwendung die mehrere Formen aufruft. Alle nach dem gleichen Chema. Bei einer Form nun reagiert aber alles anders.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
function ShowFormPrintMaterial(sEnvironment : WideString): Integer; stdcall;
var
  Printer : TfrmPrinting;

begin
  try
    Printer      := TfrmPrinting.Create(nil);
    Printer.gsEnvironment := sEnvironment;
    Printer.Show;
    
  except
    on E:Exception do begin
      MessageDlg(E.Message, mtWarning, [mbOk],0);
    end;
  end;
  Result := 0;
end;


Hier wird die Form gleich mit dem CREATE geöffnet. Ich bekomme also nicht meinen Parameter gesetzt.

Wo liegt nun mein Fehler? Habe ich in der Form was falsch gemacht? Da jeder Aufruf der anderen Formen genauso aus sieht und da der Parameter übergeben wird, verstehe ich dies nicht so recht.

Ich danke euch schon mal für eine Hinweis.

Gruß
Rüdiger

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mi 28.03.12 11:18 
Hi Rüdiger,

zuerst mal gehört das .Create() vor die Try..Except.

Und hast Du schon mal den Debugger bemüht? Da müsste doch schnell zu finden sein, weshalb das Form direkt nach dem Create angezeigt wird. Und selbst wenn die Aufrufe identisch sind, es gibt ne Menge an Einstellungen beim jeweiligen Form, die das Anzeigen steuern, d.h. ohne Code von frmPrinter kann dir niemand außer dir helfen ;-)

Grüße

Für diesen Beitrag haben gedankt: ruewue
Blup
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 174
Erhaltene Danke: 43



BeitragVerfasst: Mi 28.03.12 11:37 
user profile iconLemmy hat folgendes geschrieben Zum zitierten Posting springen:
zuerst mal gehört das .Create() vor die Try..Except.

Das ist kein Recourcen-Schutzblock (der fehlt allerdings auch) und ok so.

Ich würde das als Hotfix versuchen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
type
  TMyfrmPrinting = class(TfrmPrinting)
    constructor Create(AOwner: TComponent; const AEnvironment: string);
  end;

constructor TMyfrmPrinting.Create(AOwner: TComponent; const AEnvironment: string);
begin
  gsEnvironment := AEnvironment;
  inherited;
end;
vagtler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 96
Erhaltene Danke: 24


Delphi 2010, C# (VS 2012), Objective-C, Java
BeitragVerfasst: Mi 28.03.12 12:04 
user profile iconBlup hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
constructor TMyfrmPrinting.Create(AOwner: TComponent; const AEnvironment: string);
begin
  gsEnvironment := AEnvironment;
  inherited;
end;

[Kleinkariert]Ohne die Angabe der Signatur des aufzurufenden Konstruktors im inherited dürfte das noch nicht einmal kompilieren... :mrgreen:[/Kleinkariert]

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
constructor TMyfrmPrinting.Create(AOwner: TComponent; const AEnvironment: string);
begin
  gsEnvironment := AEnvironment;
  inherited Create(AOwner);
end;
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mi 28.03.12 12:17 
user profile iconBlup hat folgendes geschrieben Zum zitierten Posting springen:

Das ist kein Recourcen-Schutzblock (der fehlt allerdings auch) und ok so.

Hast Recht, das habe ich übersehen...

user profile iconBlup hat folgendes geschrieben Zum zitierten Posting springen:

Ich würde das als Hotfix versuchen:


vielleicht bin ich schon zu alt - in Zeiten wo überall "Beta" drauf steht ist das vielleicht auch üblich. Aber bei so einem Fehler nicht nachzuschauen WARUM das so ist und statt dessen etwas Farbe über die Stelle zu pinseln halte ich für sträflich....


Grüße
ruewue Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mi 28.03.12 12:41 
Danke Lemmy,

stimmt, gehört davor. HAbe den Rest jetzt auch gelöst. Läuft wie alle anderen.


Ganz herzlichen Dank an alle!
vagtler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 96
Erhaltene Danke: 24


Delphi 2010, C# (VS 2012), Objective-C, Java
BeitragVerfasst: Mi 28.03.12 13:09 
user profile iconruewue hat folgendes geschrieben Zum zitierten Posting springen:
[...] stimmt, gehört davor. [...]

Nö. Zumindest nicht so. Aber das wurde ja schon gesagt.

Zitat:
[...] HAbe den Rest jetzt auch gelöst. Läuft wie alle anderen. [...]

Und was war es jetzt?