Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 12, 2025 15:50

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Eigene Property nicht gefunden
BeitragVerfasst: Do Jan 08, 2009 12:07 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 09, 2005 13:48
Beiträge: 117
Wohnort: Sankt Augustin
Hallo,

ich habe mir eine Treeviewkomponente gebaut, die Checkboxen anzeigt. Um abzufragen ob sich der Status der Checkboxen geändert hat,
habe ich einen eigenen Event gebaut (OnChecked). Der Event erscheint auch schön im Objektinspektor und ich kann dann nach einem
Doppelklick auf den Event im erscheinenden Codegerüst schön meinen Code schreiben. Starte ich allerdings das Programm, kommt immer
die Fehlermeldung

Im Projekt Project1.exe ist eine Exception der Klasse EReadError mit der Meldung 'Eigenschaft OnChecked existiert nicht.' aufgetreten.

Ich habe die Deklarationen bis zum erbrechen gecheckt und schon viele Änderungen versucht, aber nichts klappt.

Kann mir jemand weiterhelfen?

Danke,

Andy

---------------------------------------------------------------------------------------------------------------------------
Code:
  1.  
  2. interface
  3.  
  4. uses
  5.   Types,
  6.   Windows,
  7.   ComCtrls,
  8.   Classes,
  9.   SCTreenode;
  10.  
  11. type
  12.   TCheckedEvent = procedure (Sender: TObject;
  13.                              NodeCurrent,
  14.                              NodeBefore: TSCTreenode) of Object;
  15.  
  16. type
  17.   TSCTreeview = class(TTreeview)
  18.   private
  19.     { Private declarations }
  20.     FOnChecked: TCheckedEvent;
  21.     FOnClick: TNotifyEvent;
  22.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  23.     procedure ToggleTreeViewCheckBoxes(Node: TSCTreeNode);
  24.     procedure DoChecked (NodeCurrent, Nodebefore: TSCTreenode);
  25.   protected
  26.     { Protected declarations }
  27.     procedure Click; override;
  28.   public
  29.     constructor Create(AOwner: TComponent); override;
  30.     destructor Destroy; override;
  31.     function CreateNode: TTreeNode; override;
  32.     function IsChecked (idx: integer): boolean; overload;
  33.     function IsChecked (Node: TSCTreeNode): boolean; overload;
  34.     function IsCheckbox (idx: integer): boolean; overload;
  35.     function IsCheckbox (Node: TSCTreeNode): boolean; overload;
  36.     function IsRadiobutton (idx: integer): boolean; overload;
  37.     function IsRadiobutton (Node: TSCTreeNode): boolean; overload;
  38.   published
  39.     property OnChecked: TCheckedEvent read FOnChecked write FOnChecked;
  40.     property OnClick: TNotifyEvent read FOnClick write FOnClick;
  41.   end;
  42.  

---------------------------------------------------------------------------------------------------------------------------


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 08, 2009 13:36 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Hmm... Fehler dieser Art treten bei der Komponentenentwicklung mit Delphi leider häufiger auf. Irgendwie geraten da die Laufzeit und Designzeitobjekte etwas aus der Synchronisation. Ich empfehle folgendes Vorgehen:
1. Delphi neu starten
2. Das Projekt öffnen, wo du die Komponente verwendest
3. Package öffnen, in dem du die Komponente implementierst
4. Ausführen -> Alles neu erstellen (Run -> Build all), kann eventuell auch unter Projekt / Project sein.
5. Projekt starten

Wenn das nicht hilft... Kann es helfen, ein neues Paket zu erstellen und die Unitdatei unter anderem namen dort zu importieren. Den Klassennamen der Checkbox musst du wahrscheinlich auch ändern. Das dann installieren und schauen, obs geht. Wenn ja, das andere Paket entfernen, alles zurückumbennenen und schaun, obs immernoch geht.

//Edit: Wenn alles nix hilft, benutz die TVirtualTreeView komponente. Ich glaube, was besseres kannst du eh nicht bekommen.

Ich hoffe, ich konnte helfen.

Gruß Lord Horazont

(Solche Fehler treten auch in ähnlicher Form auf, z.B. "EClassNotFound" oder so... Ich frage mich, was an solchen Stellen schief läuft)

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: werde es versuchen
BeitragVerfasst: Do Jan 08, 2009 14:37 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 09, 2005 13:48
Beiträge: 117
Wohnort: Sankt Augustin
Danke für den Tipp. Ich hatte auch schon vermutet, dass es an Delphi liegt und diese Komponente aus einem anderen Package in ein neues exportiert. Das lief eine ganze Weile, bis ich den Event programmiert habe. jetzt also das ganze nochmal von vorne ...


Danke


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]