Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Form.Create
ruewue - Mi 28.03.12 11:07
Titel: Form.Create
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.
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
Gausi: Delphi-Tags hinzugefügt
Lemmy - 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
Blup - Mi 28.03.12 11:37
Lemmy hat folgendes geschrieben : |
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:
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 - Mi 28.03.12 12:04
Blup hat folgendes geschrieben : |
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]
Delphi-Quelltext
1: 2: 3: 4: 5:
| constructor TMyfrmPrinting.Create(AOwner: TComponent; const AEnvironment: string); begin gsEnvironment := AEnvironment; inherited Create(AOwner); end; |
Lemmy - Mi 28.03.12 12:17
Blup hat folgendes geschrieben : |
Das ist kein Recourcen-Schutzblock (der fehlt allerdings auch) und ok so.
|
Hast Recht, das habe ich übersehen...
Blup hat folgendes geschrieben : |
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 - 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 - Mi 28.03.12 13:09
ruewue hat folgendes geschrieben : |
[...] 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?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!