AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Application.HelpJump überschreiben?

Ein Thema von FriFra · begonnen am 4. Feb 2005 · letzter Beitrag vom 6. Feb 2005
Antwort Antwort
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#1

Application.HelpJump überschreiben?

  Alt 4. Feb 2005, 09:47
Kann man irgendwie Application.HelpJump mit einer eigenen Funktion überschreiben?
Ich würde das ganze am liebsten über eine eigene zusätzliche unit lösen... Eine eigene von TApplikation abgeleitete Klasse wäre keine Lösung, da ich die eigene Funktionalität über ein einfaches einfügen/entfernen meiner unit aktivieren/deaktivieren will.
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: Application.HelpJump überschreiben?

  Alt 4. Feb 2005, 10:47
Was soll ich sagen... Das kannst du knicken.
Application ist auf die ekligst mögliche Art implementiert worden, als globale Variable in der Unit Forms:
Delphi-Quellcode:
{ Global objects }

var
  Application: TApplication;
  Screen: TScreen;
  ...
Und da die Borländer nicht auf die Idee kamen, dass wenigstens ein paar Delphianer OO programmieren sind keinerlei Methoden von TAplication virtual oder dynamic.

Viel Spass...
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Application.HelpJump überschreiben?

  Alt 4. Feb 2005, 10:58
Zitat von FriFra:
Kann man irgendwie Application.HelpJump mit einer eigenen Funktion überschreiben?
Ich würde das ganze am liebsten über eine eigene zusätzliche unit lösen... Eine eigene von TApplikation abgeleitete Klasse wäre keine Lösung, da ich die eigene Funktionalität über ein einfaches einfügen/entfernen meiner unit aktivieren/deaktivieren will.
Nein, aber du kannst das Event TApplication.OnHelp benützen.
Es gibt da z.B. eine Komponente namens ThhComp, die sich dieses Event krallt und die Hilfe
auf das neuere Dateiformat *.CHM umleitet.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Application.HelpJump überschreiben?

  Alt 4. Feb 2005, 11:11
Ich hab jetzt mal folgendes probiert:
Delphi-Quellcode:
program test;

uses
  Forms{, unit2},
  frm_Main in 'frm_Main.pas{Main},

{$R *.RES}

function MyHelp(Command: Word; Data: Integer;
  var CallHelp: Boolean): Boolean;
begin
//hier soll mein Code hin
end;

begin
  Application.Initialize;
  Application.OnHelp:=MyHelp;
  Application.ShowMainForm := False;
  Application.CreateForm(TMain, Main);
end.
Ich bekomme folgende Fehlermeldung:
Zitat von Ereignisprotokoll:
[Fehler] Test.dpr(23): E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5

Re: Application.HelpJump überschreiben?

  Alt 4. Feb 2005, 11:18
Ich habe das immer im "OnCreate" der Form deklariert. Da verursacht es keine Probleme. Vermutlich, weil du das "OnHelp"-Event als Form-bezogene Prozedur (TForm1.XXXX) deklarierst.
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Application.HelpJump überschreiben?

  Alt 5. Feb 2005, 07:50
Im onCreate der Form hilft mir das nicht weiter... ich will das ganze am Ende über eine unit implementieren, da es nur ein Workaround für einen Bug in Delphi2005 werden soll. Ich will dazu so wenig wie möglich an meinem Code herumbasteln.
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Application.HelpJump überschreiben?

  Alt 5. Feb 2005, 08:31
die Fehlermeldung sagt doch schon alles. du hast "MyHelp" als reguläre Procedure aber erwartet wird eine Methode. MyHelp muss also eine Methode einer Klasse sein.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#8

Re: Application.HelpJump überschreiben?

  Alt 6. Feb 2005, 12:47
Zitat:
Und da die Borländer nicht auf die Idee kamen, dass wenigstens ein paar Delphianer OO programmieren sind keinerlei Methoden von TAplication virtual oder dynamic.
Kann man dann nicht einfach die Unit "Forms" Öffnen und die Methoden alle dynamic machen?


nur mal so ne idee...
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#9

Re: Application.HelpJump überschreiben?

  Alt 6. Feb 2005, 13:23
Ich hab das Problem jetzt gelöst
> http://www.delphipraxis.net/internal...ct.php?t=45822 <

Ich hab einfach eine eigene Klasse von TControl abgeleitet und eine kompatible OnHelp-Funktion geschrieben. Es funktioniert alles bestens... nur die fertigen Programme werden durch meinen Workaround ca. 200k grösser , da ich ein externes Programm in eine Resource packen musste...
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  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 22:55 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