| Autor |
Beitrag |
Martello
      
Beiträge: 131
WIN 2000
TP, C, Delphi 1.0, Turbo Delphi 2006, Delphi 7
|
Verfasst: Do 12.03.09 19:03
Hallo,
meine kleinen Lern-Programme kamen bisher alle ohne "Project1" aus.
Stattdessen stand der gesamte Code jeweils in "Unit1". Auch habe ich immer nur ein Formular verwendet.
Durch irgend einen "Fehler", den ich wohl gemacht habe, existiert auf einmal neben meiner Unit1 ein
Objekt namens "Project1" und ich krieg alles nicht mehr compiliert, obwohl es zuvor sehr gut klappte.
Alles Unheil nahm seinen Anfang damit, daß ich "Form1" in "Rundern" umbenannt habe.
Leider habe ich die Arbeit nicht gesichert; es ist ja eigentlich auch nichts kaputt. Aber ich habe den Überblick verloren, bzw. bisher noch nicht so richtig gewonnen
Wie krieg ich denn das unnütze Project1 wieder aus meinem Programm?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| program Project1;
uses Forms, Unit1 in 'UNIT1.PAS' ;
{$R *.RES}
begin Application.CreateForm(TForm, Form); Application.Run; end. |
Bei
Delphi-Quelltext 1:
| Application.CreateForm(TForm, Form); |
meldet der Compiler "Unbekannter Bezeichner"
Gruß
Martello
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Do 12.03.09 19:09
schreib mal statt form bei dem: Application.CreateForm(TForm, Form);
ein Rudern
so also: Application.CreateForm(TForm, Rudern);
lg elundril
btw: das Projekt1 wird immer angelegt, bei jedem Programm das ein Formular hat.  das gibt an wieviele Formulare es im projekt gibt, usw.
Moderiert von Narses: Delphi-Tags hinzugefügt
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Martello 
      
Beiträge: 131
WIN 2000
TP, C, Delphi 1.0, Turbo Delphi 2006, Delphi 7
|
Verfasst: Do 12.03.09 19:22
hatte ich inzwischen auch schon probiert....
Dann compiliert er zwar fehlerfrei, aber beim Start erscheint lediglich ein leeres graues Rechtecke in der linken oberen Schirmecke:-(
Ich hätte ja kein Problem, alles nochmal neu zu konstruieren, zum Glück ist ja der Code erhalten. Das
wäre aber nur eine andere Lehrübung. Vielleicht gelingt mir ja die Korrektur auf andere Weise; wäre auch, aber auf andere Weise lehrreich.
Martello
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Do 12.03.09 19:24
öffne mal das File Unit1.dfm und sag mal was da drin steht.
lg
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Martello 
      
Beiträge: 131
WIN 2000
TP, C, Delphi 1.0, Turbo Delphi 2006, Delphi 7
|
Verfasst: Do 12.03.09 19:48
Das Öffnen geschieht mit der Medlung: Fehler in Modul Unit1: Modul Header fehlt oder ist fehlerhaft.
Und das steht alles drin:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77:
| Left = 485 Top = 129 Width = 435 Height = 300 Caption = 'Rudern' Font.Color = clWindowText Font.Height = -13 Font.Name = 'System' Font.Style = [] Menu = MainMenu1 PixelsPerInch = 96 TextHeight = 16 object TLabel Left = 56 Top = 112 Width = 4 Height = 16 end object ListBox1: TListBox Left = 184 Top = 8 Width = 209 Height = 137 ItemHeight = 16 TabOrder = 0 end object Edit1: TEdit Left = 16 Top = 176 Width = 377 Height = 24 TabOrder = 1 Text = 'Pfadname' end object Button1: TButton Left = 40 Top = 8 Width = 105 Height = 33 Caption = 'Zeige_Liste' TabOrder = 2 OnClick = Button1Click end object Button2: TButton Left = 40 Top = 48 Width = 105 Height = 33 Caption = 'Zeige_Matrix' TabOrder = 3 OnClick = Button2Click end object OpenDialog1: TOpenDialog Filter = '*.txt|*.txt' Left = 40 Top = 224 end object MainMenu1: TMainMenu Left = 8 Top = 224 object Datei1: TMenuItem Caption = 'Datei' object Open1: TMenuItem Caption = 'Open' OnClick = Open1Click end object Save1: TMenuItem Caption = 'Save' OnClick = Save1Click end end end object SaveDialog1: TSaveDialog Left = 72 Top = 224 end end |
Gruß
Martello
Moderiert von Narses: Code-Tags hinzugefügt
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 12.03.09 20:10
Moin und  im Forum!
Wie´s aussieht, ist deine Formulardefinition beschädigt, denn das sollte etwa so anfangen:
Quelltext
Wenn das fehlt, ist das mit der ungültigen-Header-Meldung klar.
Scheint, als hätte Delphi beim Umbenennen des Formulars Probleme gehabt, den Quelltext anzupassen  sowas passiert aber eigentlich nur, wenn man manuell Änderungen in den automatisch gepflegten Code einfügt (und selbst das kriegt die IDE normalerweise gebacken)...
Füg mal einen entsprechenden Header ein. Was passiert?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Martello 
      
Beiträge: 131
WIN 2000
TP, C, Delphi 1.0, Turbo Delphi 2006, Delphi 7
|
Verfasst: Do 12.03.09 20:33
Der Header scheint doch in Ordnung zu sein...
denn in der ersten Zeile steht
"object Rudern: TRudern"
Einmal kam die Fehlermeldung mit dem defekten Header noch, aber meistens bleibt sie beim Öffnen jetzt aus.
Das erscheint mir alles recht komisch...
Vielleicht bau' ich die Anwendung am besten nochmal ganz von vorne...
Gruß
Martello
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 12.03.09 20:51
Moin!
Martello hat folgendes geschrieben : | Einmal kam die Fehlermeldung mit dem defekten Header noch, aber meistens bleibt sie beim Öffnen jetzt aus.
Das erscheint mir alles recht komisch... | Meistens?  Entweder das Projekt ist kaputt oder nicht, aber manchmal?
Hast du zufällig das Projekt in einen andern Ordner kopiert/verschoben und die Dateireferenzen im Projekt nicht angepasst?
Martello hat folgendes geschrieben : | | Vielleicht bau' ich die Anwendung am besten nochmal ganz von vorne... |
Ja, das scheint mir auch eine gute Idee zu sein.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
Zuletzt bearbeitet von Narses am Do 12.03.09 21:12, insgesamt 1-mal bearbeitet
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Do 12.03.09 21:10
Martello hat folgendes geschrieben : | Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| program Project1;
uses Forms, Unit1 in 'UNIT1.PAS' ;
{$R *.RES}
begin Application.CreateForm(TForm, Form); Application.Run; end. | |
Diese Datei scheint ziemlich durcheinandergekommen zu sein
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| program Project1;
uses Forms, Unit1 in 'UNIT1.PAS' ;
{$R *.RES}
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. |
Die Initialize-Zeile fehlt auf jeden Fall (oder wurde die in einer neueren Delphi-Version in den initialization-Teil der Unit Forms gelegt?).
Was die 1er angeht: Du hast dein Formular nicht zufällig Form genannt, oder? Das wäre nämlich nicht besonders gut (und sollte eigentlich auch nicht funktionieren), da es die Klasse TForm schon gibt. Sonst setzt dort einfach den Namen deines Formulars ein - und schick beim ersten noch ein T vorraus.
Aber vielleicht wäre es wirklich am Besten, wenn du das Projekt nochmal neu zusammenbastelst.
|
|
Martello 
      
Beiträge: 131
WIN 2000
TP, C, Delphi 1.0, Turbo Delphi 2006, Delphi 7
|
Verfasst: Do 12.03.09 21:13
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 12.03.09 21:20
Moin!
Martello hat folgendes geschrieben : | | Ich hatte ein ganzes Projekt in ein neues Verzeichnis kopiert und dort weitergearbeitet. |
Ha  dachte ich´s mir doch.
Wenn du sowas machst, dann musst du alle Code-Fenster in der IDE schließen, die Projektverwaltung öffnen und mit einem Doppelklick auf den Projektelementen diese neu öffnen. Grund: Irgendwie merkt sich die IDE, welche Fenster für ein Projekt offen waren und öffnet diese beim Öffnen des Projekts. Allerdings: wenn du das Projekt kopiert hast, werden die Fenster mit dem Inhalt der Dateien an der Originalposition im Dateisystem geöffnet (erkennt man am Pfad oben in der Titelleiste des IDE-Code-Fensters).  Du arbeitest dann versehentlich noch mit den alten Dateien, und das führt dann zu Chaos!
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Do 12.03.09 21:23
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 12.03.09 21:27
Moin!
Xentar hat folgendes geschrieben : | | Dieses "irgendwie" nennt sich Projekt-Desktop |
Stimmt, das meinte ich.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Martello 
      
Beiträge: 131
WIN 2000
TP, C, Delphi 1.0, Turbo Delphi 2006, Delphi 7
|
Verfasst: Do 12.03.09 21:40
Xentar hat folgendes geschrieben : | Narses hat folgendes geschrieben : | Moin!
Martello hat folgendes geschrieben : | | Ich hatte ein ganzes Projekt in ein neues Verzeichnis kopiert und dort weitergearbeitet. | Ha dachte ich´s mir doch.
Wenn du sowas machst, dann musst du alle Code-Fenster in der IDE schließen, die Projektverwaltung öffnen und mit einem Doppelklick auf den Projektelementen diese neu öffnen. Grund: Irgendwie merkt sich die IDE, welche Fenster für ein Projekt offen waren und öffnet diese beim Öffnen des Projekts. Allerdings: wenn du das Projekt kopiert hast, werden die Fenster mit dem Inhalt der Dateien an der Originalposition im Dateisystem geöffnet (erkennt man am Pfad oben in der Titelleiste des IDE-Code-Fensters). Du arbeitest dann versehentlich noch mit den alten Dateien, und das führt dann zu Chaos! |
Dieses "irgendwie" nennt sich Projekt-Desktop, und ist meiner Meinung nach eine sehr gute Erfindung, wenn man weiß was man tut
Falls du wirklich mal mal ein Projekt in ein neues Verzeichnis umziehen möchtest:
Delphi Schließen -> Projekt mit allen Dateien verschieben -> Wichtig: *.dsk Datei löschen! Hier wird gespeichert, welche Fenster offen waren, und diese zeigen somit u.U. auf den alten Pfad -> Projekt wieder öffnen. Fertig. |
Kann ich das Projekt auf die folgende Weise neu bauen:
Alle Formularelemente werden erzeugt, und per Klick werden dabei die entsprechenden "leeren" Einträge in der Unit1 automatisch generiert.
Diese neuen automatischen Einträge sind nun "rein zufällig" identisch mit den alten, in der Original-Unit erhaltenen.
Dann könnte ich doch in der neuen Unit die neuen Texte durch die alten ersetzen (mit dem spezifischen Code). Oder bestehen zwischen dem Inhalt der Unit (die ich editiere) und dem System unsichtbare Beziehungen, die dem entgegenlaufen?
Gruß
Martello
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Do 12.03.09 21:59
Martello hat folgendes geschrieben : | | Kann ich das Projekt auf die folgende Weise neu bauen: |
Probier's doch einfach aus
Wenn ich eines nicht verstehe, dann ist es die mangelnde Experimentierfreudigkeit von EE-Usern. Kaputtgehen kann doch nichts - vorrausgesetzt natürlich, dass du dein Projekt vorher sicherst (was sowieso ungefähr täglich passieren sollte).
Aber ich denke auch, dass die von dir genannte Vorgehensweise erfolgreich sein könnte. 
|
|
Martello 
      
Beiträge: 131
WIN 2000
TP, C, Delphi 1.0, Turbo Delphi 2006, Delphi 7
|
Verfasst: Do 12.03.09 22:57
Yogu hat folgendes geschrieben : | Martello hat folgendes geschrieben : | | Kann ich das Projekt auf die folgende Weise neu bauen: |
Probier's doch einfach aus
Wenn ich eines nicht verstehe, dann ist es die mangelnde Experimentierfreudigkeit von EE-Usern. Kaputtgehen kann doch nichts - vorrausgesetzt natürlich, dass du dein Projekt vorher sicherst (was sowieso ungefähr täglich passieren sollte).
Aber ich denke auch, dass die von dir genannte Vorgehensweise erfolgreich sein könnte.  |
Einfacher war es, nur den eigenen Code (wie nennt man das eigentlich, was zwischen "begin" und "end" noch fehlt?)
einzutragen, nachdem die Elemente mausklickig sich_erzeugt wurden.
Aber ich kann das gesamte Projekt doch jetzt z.B. zippen und auf einem anderen Rechner (z.B. morgen vormittag) weiterbearbeiten. Oder muß ich dort auch die PATH-Umgebung meines Home-PC reproduzieren, um unangenehme Erlebnisse zu vermeiden?
Gruß
Martello
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 12.03.09 23:11
Moin!
Martello hat folgendes geschrieben : | | Aber ich kann das gesamte Projekt doch jetzt z.B. zippen und auf einem anderen Rechner (z.B. morgen vormittag) weiterbearbeiten. Oder muß ich dort auch die PATH-Umgebung meines Home-PC reproduzieren, um unangenehme Erlebnisse zu vermeiden? |
Klar kannst du das Projekt kopieren (mache ich ja auch häufiger).  Aber: vor dem Öffnen des kopierten Projekts entweder die .dsk löschen oder alle Code-Fenster schließen und aus der Projektverwaltung neu öffnen.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|