![]() |
Re: DFMEdit
Als Beispiel mal, wie ich DFMEdit den VirtualTreeView bekannt gemacht habe. Die Originalquellen hab ich gar nicht angefasst, stattdessen ein neues "Wrapper-Package" gebaut:
MyVTReg.pas:
Delphi-Quellcode:
und MyVTRegP.dpk:
unit MyVTReg;
interface implementation uses Classes, VirtualTrees; initialization RegisterClasses([TVirtualStringTree, TVirtualDrawTree]); finalization UnRegisterClasses([TVirtualStringTree, TVirtualDrawTree]); end.
Delphi-Quellcode:
Allerdings war der VT danach immer noch nicht vollständig integriert, da fehlen wohl noch diverse Einträge in den *.obj's. Das auszuprobieren hatte ich dann allerdings keine Lust mehr.
package MyVTRegP;
{$R *.res} {$ALIGN 8} {$ASSERTIONS ON} {$BOOLEVAL OFF} {$DEBUGINFO ON} {$EXTENDEDSYNTAX ON} {$IMPORTEDDATA ON} {$IOCHECKS ON} {$LOCALSYMBOLS ON} {$LONGSTRINGS ON} {$OPENSTRINGS ON} {$OPTIMIZATION ON} {$OVERFLOWCHECKS OFF} {$RANGECHECKS OFF} {$REFERENCEINFO OFF} {$SAFEDIVIDE OFF} {$STACKFRAMES OFF} {$TYPEDADDRESS OFF} {$VARSTRINGCHECKS ON} {$WRITEABLECONST ON} {$MINENUMSIZE 1} {$IMAGEBASE $400000} {$IMPLICITBUILD ON} requires vcl, VirtualTreesD10; contains MyVTReg; end. |
Re: DFMEdit
Ich verzweifle grad.
Ich habe alles so gemacht wie bisher besprochen, doch wenn ich die Komponente nun im DFMEdit einsetze und auf "Vorschau" klicke, dann bekomme ich folgende Fehlermeldung:
Code:
---------------------------
Fehler --------------------------- Zugriffsverletzung bei Adresse 5100B847 in Modul 'dclusr100.bpl'. Lesen von Adresse 00000068 (EAccessViolation) --------------------------- OK --------------------------- [edit] Komischerweise ist es nur EINE der Komponenten, die diese Meldung erzeugt. Blöderweise ist es aber die für mich am wichtigste :( [/edit] |
Re: DFMEdit
also zugriffsverletzung klingt nicht nach einem Packet-Fehler...ich würde eher denken, dass die komponente selber buggy ist...
um welche komponente handelt es sich denn? hast du den quellcode? hast du ein eigenes Package für die kompo gemacht? funktioniert das bei delphi? Packages lassen sich halt bescheiden debuggen. evtl mal die kompo hardcoded in die classes_u mit einbinden (registerclasses nicht vergessen) und erneut probieren. HTH Frank |
Re: DFMEdit
Da ich Turbo Delphi nutze
Zitat:
Zitat:
Zitat:
Ich glaube inzwischen auch nicht daran, dass es an dem Package liegt. Andere Komponenten aus der dclusr100.bpl werden ohne Probleme angezeigt. |
Re: DFMEdit
um den Fehler zu lokalisieren würde ich die komponente mal statisch einbinden (uses in classes_u.pas, registerclasses) und breakpoints innerhalb der klasse machen (constructor, onpaint, etc)...dann müsstest du sehen, wo die AV herkommt ;)
schonmal die neuen Funktionen getested/neuer Name dieser eingefallen? //edit: hab mir jetzt mal Turbo-delphi installiert...musste erstmal sämtliche TSpinedits/TSpinbuttons in TUpDown ändern (weil es die Komponenten nicht mehr gibt bzw. sich das Zusatzpacket nicht installieren lässt), jetzt läuft es erstmal ich musste nur feststellen, dass die popups in der toolbar nicht funktionieren. Auch das setzen der EnableDropdown-Eigenschaft half nicht (da wird button ausgegraut)...was ist da falsch? im Anhang mal das geänderte Main-und Options-Form die functions_u.pas enthält den folgenden bugfix sowie eine Möglichkeit in der config anzugeben, dass es sich bei einer unbekannten Komponente um ein Control handelt (wenn kein rtti möglich ist). //edit bugfix: Zugriffsverletzung beim Erstellen von unbekannten Komponenten functions_u.pas:804:
Delphi-Quellcode:
//edit: ich hab jetzt die löschregeln mit in den Optionen-Dialog integriert...
if assigned(cl) then
begin if cl.InheritsFrom(TControl) then sl.AddStrings(ctlprop); end; aktuelle version 0.2.0.6b Frank |
Re: DFMEdit
Moin,
ich hab dfmedit mal in Zusammenhang mit Turbo-Delphi probiert und musste feststellen, das dort die Dropdownmenüs in der Toolbar nicht angezeigt wurden (vermutlich auch in weiteren delphi-Versionen). Es hat sich herausgestellt, dass es am "falschen" PopupComponent lag (TToolbar statt TToolbutton) ![]() die geänderte Version hab ich auf die beta-seite hochgeladen. (weitere Kompilierinfos in Readme.txt). Ich hab eauch herausgefunden, warum sich dfmedit bei Formularen aus Binärdateien manchmal aufhängt. Nach meinen bisherigen Recherchen liegt es an Fließkomma-eigenschaften, die scheinbar die Grenzen von 32-Bit-Integern überschreiten. leider ist mir außer dem Neukompilieren mit einer neueren Delphi-Version kein workaround bekannt. Es würde mich freuen, wenn sich noch Beta-Tester finden würden. Gruß Frank |
Re: DFMEdit
hab mal noch vorhandene Memory-Leaks gefixt ;) *push*
Gruß Frank |
Re: DFMEdit
ich hab mal unter Versionsnummer 0.2.0.9 die RC1 für die 0.3 hochgeladen.
Es wird vor der 0.3 nur noch bugfixes geben ( also testen testen testen ;) ) . Neu sind u.a. eine automatische positionsanpassung beim einfügen in der Vorschau (wenn durch einfügen die Komponente im neuen Parent nicht mehr sichtbar ist), eine Klassenersetzung (z.B. TNT-Controls im Preview durch die Standard-Komponenten darzustellen), eine löschliste für eigenschaften die mit der Ersetzung nicht mehr kompatibel sind, ein Bug beim bringtofront/sendtoback im Preview. Hoffe, es finden sich noch Tester... Gruß Frank |
Re: DFMEdit
hab mal einiges umgebaut (u.a. gibt es jetzt die Möglichkeit Pas-Dateien nach dem Erstellen/Ändern gleich zu öffnen).
RC2 = 0.2.0.10b Schon jemand Bugs (in der RC1) gefunden? Gruß Frank |
Re: DFMEdit
ich wollte mal nachfragen, ob schon bugs in der rc2 (0.2.0.10b) gefunden wurden, da ich diese jetzt als Stable hochladen will...
Gruß Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 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 by Thomas Breitkreuz