AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi ActiveX-Komponente prüfen und ggf. installieren
Thema durchsuchen
Ansicht
Themen-Optionen

ActiveX-Komponente prüfen und ggf. installieren

Ein Thema von axelf98 · begonnen am 12. Sep 2004 · letzter Beitrag vom 14. Sep 2004
Antwort Antwort
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#1

ActiveX-Komponente prüfen und ggf. installieren

  Alt 12. Sep 2004, 22:34
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:

 shellexecute(application.Handle,nil,PChar('regsvr32 /s -'+ExtractfilePath(Application.Exename)+'cfx32.ocx'),nil,nil,SW_Shownormal); Leider kann ich im Moment nicht testen ob das klappt, weil ich ja schon Delphi drauf habe..
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;
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: ActiveX-Komponente prüfen und ggf. installieren

  Alt 13. Sep 2004, 08:25
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;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#3

Re: ActiveX-Komponente prüfen und ggf. installieren

  Alt 13. Sep 2004, 15:15
Zitat von Bernhard Geyer:
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.
Leider hat mein Delphi 5 Standard keine TChart-Komponente... Leider habe ich diese Komponente schon eingebaut und kann sie nur mit viel Aufwand wieder rausnehmen!
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!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: ActiveX-Komponente prüfen und ggf. installieren

  Alt 14. Sep 2004, 08:49
Zitat von axelf98:
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!
M$ hat ja auch erkannt das das ActivX-Konzept diverse "Optimierungsmöglichkeiten" besitzt (Stichwort: DLL-Hölle). Ich für meinen teil nehme schon lange bei Auswahlmöglichkeit ActiveX <-> kein ActivX immer nur die Version ohne X.
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
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#5

Re: ActiveX-Komponente prüfen und ggf. installieren

  Alt 14. Sep 2004, 14:37
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!
Miniaturansicht angehängter Grafiken
powerchart.jpg  
Angehängte Dateien
Dateityp: pas powerchart.pas (4,6 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz