| Autor |
Beitrag |
Fienix
      
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Do 17.02.11 15:18
Ich möchte gern mein eigenes TBlobField erzeugen, klappt auch soweit wunderbar.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| type TMyWideMemoField = class(TBlobField) private protected public procedure SetAsString(const Value: string); override; function GetAsString: string; override; end; |
Allerdings gibt es eine Fehlermeldung das er die Komponenten TMyWideMemoField in den Formularen nicht finden kann wenn ich dies öffne.
Klasse TMyWideMemoField nicht gefunden. ...
Compilieren geht ohne Probleme und es läuft auch.
_________________ Wer sichert ist feige!!
|
|
Tranx
      
Beiträge: 648
Erhaltene Danke: 85
WIN 2000, WIN XP
D5 Prof
|
Verfasst: Do 17.02.11 18:01
Du erledigst dies am Besten, indem Du bei Delphi "Neu..." wählst, und dort "Komponente" auswählst. Dann gibst Du den Vorfahrtyp ein, hier TBlobField und Deinen Typnamen und den Namen der Unit. Dann wird eine Prozedur RegisterComponent erzeugt. Anschließend schreibst Du in die Komponente Deine Prozeduren, wie gehabt und speicherst Die Unit ab. Dann Rufst Dur "Komponente installieren" auf und installierst die Komponente. Dann hast Du Deine Komponente abrufbereit in einem der Reiter, meist "Beispiele", aber Du kannst auch einen anderen Reiter wählen. Dann sollte das Ganze klappen.
_________________ Toleranz ist eine Grundvoraussetzung für das Leben.
|
|
Fienix 
      
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Fr 18.02.11 08:44
Hi,
an diesen Weg hab ich noch garnicht gedacht.
Funktioniert aber leider nicht, ich kann das TBlobField nicht als Vorfahre auswählen. 
_________________ Wer sichert ist feige!!
|
|
Steve1024
      
Beiträge: 141
Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
|
Verfasst: Fr 18.02.11 08:50
schau mal ob im initialization coderl der unit ein RegisterClass hilft.
Möglicherweise löst das dein Problem.
_________________ - posted with HTC HD2 -
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Fr 18.02.11 08:58
Kann es sein, dass du die Unit, in der TBlobField definiert ist, nicht mit Uses eingebunden hast?
Allerdings bin ich jetzt auch ein wenig verwirrt, weil du im Start-Posting geschrieben hast, dass die Fehlermeldung Klasse TMyWideMemoField nicht gefunden erscheint.
Sind alle Suchpfade richtig eingestellt?
|
|
Steve1024
      
Beiträge: 141
Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
|
Verfasst: Fr 18.02.11 09:02
Suchpfade können es weniger sein da sonst das kompilieren nicht klappen würde.
Ich habe mal ein Programm geschrieben das dfm Dateien zur Laufzeit lädt. Dabei habe ich eine solche Meldung erhalten. Allesdings für TButton etc. Lösen konnte ich das mit RegisterClass im Initialization Code von der Unit. da hab ich alle möglichen Komponenten einer dfm Datei registriert und schon ging das alles.
_________________ - posted with HTC HD2 -
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Fr 18.02.11 09:10
Steve1024 hat folgendes geschrieben : | | Suchpfade können es weniger sein da sonst das kompilieren nicht klappen würde |
Wo steht denn, dass es compiliert werden kann?
Ich hatte dieses Phänomen in einem alten Projekt schonmal. Die genutzten Komponenten waren zum Teil neu benannt worden oder lagen in anderen Verzeichnissen. Dabei kam exakt diese Fehlermeldung.
|
|
Fienix 
      
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Fr 18.02.11 09:12
und schon gehts!
Delphi-Quelltext 1: 2: 3:
| initialization
RegisterClass(TMyWideMemoField); |
hat es gebracht!
Danke!
_________________ Wer sichert ist feige!!
|
|