![]() |
ActiveX-Komponente prüfen und ggf. installieren
Hallo!
Ich habe ein Programm geschrieben, dass die Komponente ChartFX benutzt. Da das Programm ohne Registrierung der Komponente auf Delphi-losen Rechner nicht läuft, muss dies beim Start passieren. Ich habe bisher folgenden Code:
Delphi-Quellcode:
Leider kann ich im Moment nicht testen ob das klappt, weil ich ja schon Delphi drauf habe..
shellexecute(application.Handle,nil,PChar('regsvr32 /s -'+ExtractfilePath(Application.Exename)+'cfx32.ocx'),nil,nil,SW_Shownormal);
Dann wäre es noch schön, wenn man prüfen könnte, ob die Komponente schon da ist.. Man muss ja nicht bei jedem Start registrieren! Folgender Code hat übrigens nicht geklappt:
Delphi-Quellcode:
var hLib : Cardinal;
proc : function : HRESULT; hLib := LoadLibrary('e:\Borland\dcube.ocx'); if hLib = 0 then raise Exception.Create('dcube.ocx bla bla'); try proc := GetProcAddress(hLib, 'DLLRegisterServer'); arbeiten. if Assigned(proc) then OleCheck(proc()); finally FreeLibrary(hLib); end; |
Re: ActiveX-Komponente prüfen und ggf. installieren
1, Wieso ChartFX? In Delphi gibt es doch auch die TChart-Komponente, welche ohne irgendwelche ActiveX-Registrierung auskommt. Und ist auch m.E. Leistungsfähiger.
2, Dein Code wird nur funktionieren wenn der User auch Admin-Rechte hat. Und aufgrund der ganzen Viren/Wurm-Problematik wird das immer weniger der Fall sein. Also solltest Du einen richtigen Installere spendieren, welcher alles erledigt wenn der User ihn mit Admin-Rechten startet. 3, Die Registierung einer COM/ActiveX-Komponente könntest Du folgendermaßen überprüfen:
Delphi-Quellcode:
function IsMyActiveXOK: Boolean;
var myComponente: TActiveXToCheck; try myComponente := TActiveXToCheck.Create(nil); result := True; myComponente.Free; except result := False; end; |
Re: ActiveX-Komponente prüfen und ggf. installieren
Zitat:
Den Installer wollte ich nicht haben, da ich soetwas immer sehr lästig finde. Den Tipp mit der Überprüfung ist gut, werde ich notfalls mit einem Hinweis verbinden, der nach ADMIN-Rechten verlangt! --- EDIT! Wobei ich echt langsam die Nase voll von ActiveX habe.. Das hat nur Probleme gemacht. Ich werds rausschmeissen und mich nach einer anderen Komponente umsehen! |
Re: ActiveX-Komponente prüfen und ggf. installieren
Zitat:
M$ bietet ja mit .NET die XCopy-Version an (DLL einfach in Anwendungsverzeichnis legen). Gut das man als Delphi-Entwickler eigentlich fast immer auf ActiceX verzichten kann :-) |
Re: ActiveX-Komponente prüfen und ggf. installieren
Liste der Anhänge anzeigen (Anzahl: 2)
Ich bins nochmal!
Für alle, die es interessiert: Ich habe ja nach einer Alternativkomponente für einfache Balkendiagramme gesucht und leider keine wirklich überzeugende gefunden. Dazu habe ich jetzt meine eigene als Klasse programmiert. Sie funktioniert wie folgt: Grundlage ist eine TImage-Komponente, die beim Initialieren angegeben wird. Füllen und Zeichen der Grafik geschieht folgendermaßen:
Delphi-Quellcode:
Chart1 := Tpowerchart.INIT(Image1);
Chart1.Ueberschrift := 'Hochrechnungsergebnisse'; Chart1.suffix := '%'; // Suffix an Zahlen Chart1.Ganzzahl := true; // nur ganze Zahlen anzeigen Chart1.LoescheAlles; Chart1.NeuerBalken(45,clblue,'Name 1'); Chart1.NeuerBalken(31,clred,'Name 2'); Chart1.Zeichnen; Die Komponente ist natürlich individuell anpassbar! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 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