Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Methoden der Objekte des Formblattes nicht mehr abrufbar (https://www.delphipraxis.net/166702-methoden-der-objekte-des-formblattes-nicht-mehr-abrufbar.html)

foerster7892 26. Feb 2012 09:07

Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Ja ich wollte gerade an einem Programm weiterarbeiten als mir aufviel, dass sämtliche Methoden von Buttons, Edits, LabeledEdits ... nicht mehr abrufbar sind. Also wenn ich darauf doppelt klicke kommt als Meldung nur:

Komponenteneditor der Klasse "TDefaultComponentEditor" hat einen Fehler erzeugt: "Kann die Methode nicht finden. Bitte beheben sie den im Meldungsfenster gezeigten Fehler."

Meldungsfenster:
Unit1.pas(28,17) Error: Klasse TFORM1 nicht gefunden

bisher konnte ich den Fehler immer nur lösen, in dem ich alles bisher gemachte kopiert, mir nen Screenshot vom Formblatt gemacht und dann wieder von neuem begonnen habe.

Hoffe es gibt eine Alternative!

MfG
ich

Furtbichler 26. Feb 2012 09:15

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Schau dir mal deinen Quellcode an. Delphi bringt den gerne mal durcheinander.

foerster7892 26. Feb 2012 09:21

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Wüsste nicht welcher Teil da falsch sein soll.
Außerdem ging es bis gerade noch, also ich habe nichts der Oberfläche hinzugefügt, seitdem ich die letzte Methode gedoppelklickt habe. Es ging plötzlich einfach nicht mehr

hoika 26. Feb 2012 09:31

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Hallo,

zeig doch mal ein bissel Code,
vor allem den interface-Teil.


Heiko

foerster7892 26. Feb 2012 09:52

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Delphi-Quellcode:
interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  Spin, StdCtrls;

type

  { TForm1 }
  Type
    TPoints=record
      x1,x2,x3:integer;
    end;

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    Label2: TLabel;
    LabeledEdit1: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    LabeledEdit3: TLabeledEdit;
    LabeledEdit4: TLabeledEdit;
    ListBox1: TListBox;
    PaintBox1: TPaintBox;
    SpinEdit1: TSpinEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
...und Unit.lfm
Delphi-Quellcode:
object Form1: TForm1
  Left = 350
  Height = 613
  Top = 129
  Width = 1080
  Caption = '3D Rotations'
  ClientHeight = 613
  ClientWidth = 1080
  LCLVersion = '0.9.30'
  object PaintBox1: TPaintBox
    Left = 10
    Height = 600
    Top = 6
    Width = 600
  end
  object LabeledEdit1: TLabeledEdit
    Left = 616
    Height = 23
    Top = 24
    Width = 52
    EditLabel.AnchorSideLeft.Control = LabeledEdit1
    EditLabel.AnchorSideBottom.Control = LabeledEdit1
    EditLabel.Left = 616
    EditLabel.Height = 16
    EditLabel.Top = 5
    EditLabel.Width = 48
    EditLabel.Caption = 'Winkel A'
    EditLabel.ParentColor = False
    TabOrder = 0
  end
  object LabeledEdit2: TLabeledEdit
    Left = 616
    Height = 23
    Top = 72
    Width = 52
    EditLabel.AnchorSideLeft.Control = LabeledEdit2
    EditLabel.AnchorSideBottom.Control = LabeledEdit2
    EditLabel.Left = 616
    EditLabel.Height = 16
    EditLabel.Top = 53
    EditLabel.Width = 47
    EditLabel.Caption = 'Winkel B'
    EditLabel.ParentColor = False
    TabOrder = 1
  end
  object LabeledEdit3: TLabeledEdit
    Left = 616
    Height = 23
    Top = 120
    Width = 52
    EditLabel.AnchorSideLeft.Control = LabeledEdit3
    EditLabel.AnchorSideBottom.Control = LabeledEdit3
    EditLabel.Left = 616
    EditLabel.Height = 16
    EditLabel.Top = 101
    EditLabel.Width = 48
    EditLabel.Caption = 'Winkel C'
    EditLabel.ParentColor = False
    TabOrder = 2
  end
  object LabeledEdit4: TLabeledEdit
    Left = 712
    Height = 23
    Top = 120
    Width = 360
    EditLabel.AnchorSideLeft.Control = LabeledEdit4
    EditLabel.AnchorSideBottom.Control = LabeledEdit4
    EditLabel.Left = 712
    EditLabel.Height = 16
    EditLabel.Top = 101
    EditLabel.Width = 146
    EditLabel.Caption = 'connection order (1; 2; ... n)'
    EditLabel.ParentColor = False
    TabOrder = 3
  end
  object SpinEdit1: TSpinEdit
    Left = 712
    Height = 23
    Top = 24
    Width = 52
    MaxValue = 20
    TabOrder = 4
  end
  object Label1: TLabel
    Left = 712
    Height = 18
    Top = 6
    Width = 104
    AutoSize = False
    Caption = 'number of points'
    ParentColor = False
  end
  object Button1: TButton
    Left = 712
    Height = 21
    Top = 56
    Width = 104
    Caption = 'add points'
    OnClick = Button1Click
    TabOrder = 5
  end
  object Button2: TButton
    Left = 616
    Height = 21
    Top = 149
    Width = 52
    Caption = 'rotate'
    OnClick = Button2Click
    TabOrder = 6
  end
  object ListBox1: TListBox
    Left = 616
    Height = 346
    Top = 260
    Width = 232
    ItemHeight = 0
    TabOrder = 7
  end
  object Label2: TLabel
    Left = 616
    Height = 18
    Top = 240
    Width = 52
    AutoSize = False
    Caption = 'points'
    ParentColor = False
  end
  object Button3: TButton
    Left = 712
    Height = 21
    Top = 149
    Width = 104
    Caption = 'add connections'
    OnClick = Button3Click
    TabOrder = 8
  end
end
ka ob dies hilft

sahimba 26. Feb 2012 11:06

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Delphi-Quellcode:
type
  { TForm1 }
  Type
Nimm das zweite "Type" mal heraus (und verschiebe bei der Gelegenheit den Kommentar "TForm1" forthin, wo er hingehört bzw. entferne ihn, da sinnlos).
Cheers.

vagtler 26. Feb 2012 11:12

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Und da war es wieder, dieses typische "Ich habe nichts gemacht...und ganz plötzlich...von selbst..." :wall:

JamesTKirk 26. Feb 2012 11:37

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Zitat:

Zitat von sahimba (Beitrag 1152903)
Delphi-Quellcode:
type
  { TForm1 }
  Type
Nimm das zweite "Type" mal heraus (und verschiebe bei der Gelegenheit den Kommentar "TForm1" forthin, wo er hingehört bzw. entferne ihn, da sinnlos).
Cheers.

Bezüglich des Kommentars: vagtlerfoerster7892 hat wahrscheinlich die Option "Header Kommentar für die Klasse" aktiviert. Da kann er den wegmachen soviel er will, sobald er ein Strg+Shift+C macht ist der wieder da. :mrgreen: (wobei er wahrscheinlich dann an die richtige Stelle gesetzt wird...)

Gruß,
Sven

vagtler 26. Feb 2012 11:46

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Zitat:

Zitat von JamesTKirk (Beitrag 1152907)
[...] vagtler hat wahrscheinlich [...]

Nein, hat er nicht... :mrgreen:

JamesTKirk 26. Feb 2012 12:18

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Zitat:

Zitat von vagtler (Beitrag 1152908)
Zitat:

Zitat von JamesTKirk (Beitrag 1152907)
[...] vagtler hat wahrscheinlich [...]

Nein, hat er nicht... :mrgreen:

:oops: Ich meinte natürlich foerster7892...

Gruß,
Sven

foerster7892 26. Feb 2012 14:24

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
ähm ja sry schon ein bisschen peinlich dass ich das nicht gesehen hab

allerdings bleibt der Fehler bestehen, nachdem ich ein "Type" entfernt habe

himitsu 26. Feb 2012 14:44

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Was sagt der Compiler zu deinem Code?

JamesTKirk 26. Feb 2012 20:27

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Ich hab mal deinen Code genommen und ausprobiert, ob ich den Fehler mit Lazarus 0.9.30 nachvollziehen kann. Selbst mit dem zusätzlichen
Delphi-Quellcode:
type
gab es keinerlei Schwierigkeiten Ereignisse hinzuzufügen oder diese anzuspringen.

Kannst du mal einfach folgendes probieren:
  • lege ein neues Projekt an und speichere es (die Formularunit bitte mit dem gleichen Namen wie in deinem originalem Projekt)
  • ersetze den Inhalt von Unit1.pas und Unit1.lfm (dazu einfach die Unit1.lfm per Datei->Öffnen öffen) in deinem neuen Projekt durch das, was du hier ins Forum kopiert hast, aber füge am Beginn von Unit1.pas noch
    Delphi-Quellcode:
    unit Unit1;
    und am Ende hinzu.
    Delphi-Quellcode:
    implementation

    end.
  • Schließe Unit1.lfm und Unit1.pas und öffne letztere erneut (dein Formular sollte nun wieder so aussehen wie in deinem ursprünglichen Projekt)
  • versuche nun mit Strg+Shift+C mit dem Cursor innerhalb der TForm1-Klasse die fehlenden Methoden anzulegen
  • versuche im Objektinspektor weiter Ereignisbehandlungen anzulegen

Wenn das soweit funktioniert hat, dann war in deinem vorherigen Projekt irgendwas faul. Mach am besten dann in dem neuen weiter (du kannst deinen restlichen Code ja dann rumkopieren).

Gruß,
Sven

himitsu 26. Feb 2012 23:39

AW: Methoden der Objekte des Formblattes nicht mehr abrufbar
 
Jupp, oder erstmal einfach kompilieren, wenn das geht, dann ist der Code vermutlich korrekt.
Der Kompiler sagt eher, was ihm nicht gefällt, der Quellcodeparser/-compiler für diese Funktionen ist da recht stumm (entweder er macht es, oder es stimmt irgendwas nicht)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz