AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei OpenDialog - Delphi 8

Ein Thema von Steffen73 · begonnen am 16. Aug 2004 · letzter Beitrag vom 16. Aug 2004
Antwort Antwort
Steffen73

Registriert seit: 16. Aug 2004
10 Beiträge
 
#1

Fehler bei OpenDialog - Delphi 8

  Alt 16. Aug 2004, 00:34
Hallo,

ich arbeite seit einer Woche mit Delphi 8. Nun bin ich auf ein Problem mit der OpenDialog-Komponente gestoßen, dass ich einfach nicht lösen kann:

Wenn ich "opendialog1.execute" aufrufe, erhalte ich immer die Fehlermeldung: "Invalid threading model (STAThreadAttribute is required)". - Kann mir jemand sagen, was das heißt und wie ich den Fehler beheben kann?

Ich habe die diversen Eigenschaften von "opendialog1" schon mit Werten belegt und diese auch wieder gelöscht - der Fehler bleibt, der Dialog geht nicht auf...

Danke vorab
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#2

Re: Fehler bei OpenDialog - Delphi 8

  Alt 16. Aug 2004, 01:22
hast du zufällig die unnütz scheinende, unscheinbare zeile aus dem code gelöscht, die so was ähnliches wie "STAThreadAttribute" besagt?
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#3

Re: Fehler bei OpenDialog - Delphi 8

  Alt 16. Aug 2004, 07:12
1.) Ich glaube, Du bist im falschen Forum. Delphi.NET wäre hier glaube ich passender

2.) Ich kann das nicht nachvollziehen.

Versuchst Du möglicherweise, in einer WinForms Anwendung auf die VCL Controls zuzugreifen? Wenn Du eine WinForms Anwendung hast, würde ich direkt den .NET eigenen FileSaveDialog nehmen, und nicht dem Umweg über die VCL machen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Fehler bei OpenDialog - Delphi 8

  Alt 16. Aug 2004, 09:38
Du solltest unbedingt den hier:
[STAThread] vor den Aufruf deiner anwendung (also im Project file) stehen haben.
Ohne diese kleine Zeile wirst du fast kein COM Objekt öffnen können. (Der OpenFileDialog ist IMHO nichts weiter als eine Kapselung eines COM Objektes )

Zitat von Phoenix:
2.) Ich kann das nicht nachvollziehen.
Probiere es aus, auch du wirst die Meldung zu Gesicht bekommen.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#5

Re: Fehler bei OpenDialog - Delphi 8

  Alt 16. Aug 2004, 09:40
Zitat von Robert_G:
Zitat von Phoenix:
2.) Ich kann das nicht nachvollziehen.
Probiere es aus, auch du wirst die Meldung zu Gesicht bekommen.
Eben nicht. Ich habe sowohl eine VCL als auch eine WinForms Anwendung als Testprojekte erzeugt und dort jeweils den passenden Dialog draufgezogen und auf ButtonClick geöffnet. Bei mir ging das Einwandfrei und ohne murren und knurren.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
MasterC

Registriert seit: 9. Jan 2004
Ort: Krefeld
369 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Fehler bei OpenDialog - Delphi 8

  Alt 16. Aug 2004, 09:52
Öhm ich kenne mich mit Delphi 8 nicht aus, aber bei den andere Delphi Versionen ist das vergessen der If Abfrage beim Open/ Save Dialog ein beliebter Fehler.

Der Fehler sollte nicht schon bei Execute kommen, sondern erst wenn man den Dialog wieder schließt. Kannst du ja trotzdem mal versuchen:

If OpenDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName
Christian H.
www.Future-Coding.de
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#7

Re: Fehler bei OpenDialog - Delphi 8

  Alt 16. Aug 2004, 10:03
Robert_G hat natürlich recht. Die Meldung "Invalid threading model (STAThreadAttribute is required)" besagt eindeutig, dass [STAThread] nicht gesetzt ist. Entweder weil diese Zeile gelöscht wurde, oder weil sie in [MTAThread] umgeändert wurde. Falls sie aus Versehen gelöscht wurde, erstelle doch ein neues Projekt, um die Stelle zu finden, wo es normalerweise steht. In C#-Anwendungen beispielsweise steht es immer vor der Main-Funktion (aber in Delphi gibt's ja keine Main-Funktion, und ich kenne mich mit D8 sowieso nicht aus).

@Phoenix: Hast du die Zeile [STAThread] mal in [MTAThread] umgewandelt? Die Meldung hat auch nichts mit Delphi zu tun, die kommt mit jeder .net-Anwendung, wenn ein COM-Aufruf [STAThread] fordert, aber man [MTAThread] hat.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Steffen73

Registriert seit: 16. Aug 2004
10 Beiträge
 
#8

Re: Fehler bei OpenDialog - Delphi 8

  Alt 16. Aug 2004, 11:39
Hey Leute,

vielen Dank!!! Das "[STAThread]" war die Lösung! Das Ganze habe ich so eingebaut:

--

uses
Forms,
MainFormUnit in 'MainFormUnit.pas' {MainForm},
Steffen8 in '..\..\DelphiUnits\Steffen8.pas',
RCPUnit in 'RCPUnit.pas';

{$R *.res}

[STAThread]

begin
Application.Initialize;
Application.Title := 'RCP';
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.

--

Und es klappt! - Übrigens hatte ich die Zeile "[STAThread]" nicht gelöscht, die wird bei mir einfach nicht beim Erstellen einer neuen Anwendung eingetragen.

Viele Grüße
Steffen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz