AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Error bei Einbindung von einer projektextern erstellten Unit
Thema durchsuchen
Ansicht
Themen-Optionen

Error bei Einbindung von einer projektextern erstellten Unit

Ein Thema von thomassolymosi · begonnen am 27. Sep 2013 · letzter Beitrag vom 30. Sep 2013
Antwort Antwort
thomassolymosi

Registriert seit: 3. Sep 2013
2 Beiträge
 
#1

Error bei Einbindung von einer projektextern erstellten Unit

  Alt 27. Sep 2013, 14:21
Hallo Leute,

ich habe schon viel von euren Tipps in den letzten 4 Wochen, in denen ich mit Lazarus angefangen habe, profitiert. Jetzt habe ich aber noch ein Problem, wo ich nicht weiterkomme:

Ich hab ein Hauptprojekt, habe in diesem auch mehrere Formen erstellt (projektintern). Jetzt dachte ich mir aber, dass ich mal eine Form in einem neuen Pojekt erstelle und es dann anschließend in meinen Hauptprojektordner reinkopiere, unter uses... angebe. Ich habe es auch über den Projektinspektor hinzugefügt und es müsste eigentlich alles problemlos klappen. Lazarus erkennt auch die Form und die Unit.

Wenn ich dann aber über meinen Button die Form aufrufen möchte (FormX.show; ) (das mit dem show schlägt mir Lazarus auch von allein vor, wenn ich FormX. eingebe und kurz warte, daraus schließe ich, dass alle nötigen verknüpfungen eigentlich da sein müssten.), dann kommt die Fehlermeldung: "external SIGSEGV In Datei: '.\include\customform.inc' in Zeile 2190" und dann springt er automatisch zur Stelle:
procedure TCustomForm.Show;
begin
Visible := True;
BringToFront;
end;
und unterstreicht die "Zeile Visible := True"

Hm, was ist nun falsch? Visible ist von anfang an auf False gestellt (also von FormX).

Vielen Dank für eure Unterstützung. LG, Thomas
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Error bei Einbindung von einer projektextern erstellten Unit

  Alt 28. Sep 2013, 00:33
Vielleicht läßt du Visible := True; einfach mal weg, denn Show setzt ja bereits Visible auf True.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Error bei Einbindung von einer projektextern erstellten Unit

  Alt 28. Sep 2013, 08:27
Hast du das Formular auch erzeugt? Von der IDE (jedenfalls kenn ich das von Delphi) werden neue Formulare automatisch erzeugt (Eintrag in dpr).
Wenn du ein existierendes Formular hinzufügst wird das nicht geschehen und du greifst auf ein nicht initialisiertes Objekt zu.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: Error bei Einbindung von einer projektextern erstellten Unit

  Alt 28. Sep 2013, 08:41
Mir ist dennoch nicht so recht klar, was er eigentlich macht:

Wenn ich dann aber über meinen Button die Form aufrufen möchte (FormX.show; )
Demnach ruft er in OnKlick eines Buttons FormX.Show auf. Der beigestellte Code besagt aber was ganz anderes:
Delphi-Quellcode:
procedure TCustomForm.Show;
begin
  Visible := True;
  BringToFront;
end;
Ist TCustomForm jetzt plötzlich FormX oder eine Procedure seiner Hauptunit, auf der sich der erähnte Button befindet? Ich steig' da nicht durch

Ansonsten hast du natürlich vollkommen recht: Ohne vorheriges (am besten in OnCreate) FormX := TFormX.Create; gibt's keine Instanz.

@thomassolymosi
Gehen wir mal davon aus, daß TCustomForm die Klasse deines Hauptformulars ist, dann rufst du im Buttonklick das hinzugefügte und erzeugte (instanziierte) Formular FormX mit oben in fettem Blau dargestellten Code auf. Visible = True und BringToFront sind unnötig, weil Visible bei Show automatisch auf True gesetzt wird und ebenso automatisch das angezeigte Formular im Vordergrund steht.
  Mit Zitat antworten Zitat
thomassolymosi

Registriert seit: 3. Sep 2013
2 Beiträge
 
#5

AW: Error bei Einbindung von einer projektextern erstellten Unit

  Alt 30. Sep 2013, 09:32
Hi, vielen Dank für eure schnellen Antworten!
Mein Fehler war es, dass ich die Form vorher nicht created habe, so wie ihr es geschrieben habt. Jetzt läuft alles wunderbar =) Ich habe mir schon gedacht, dass es nur was ganz kleines ist.
Zu deiner Frage, Perlsau: Deer Code, den ich gepostet habe, befand sich in dem Quellcode Customform.inc von Lazarus selbst. Also ist das (vllt.!?) eine Unterprozedur die ich mit "FormX.show;" aufrufe und an der stelle hat er mir dann ein Error rausgespuckt.

Vielen Dank! LG, Thomas
  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 03:18 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