AGB  ·  Datenschutz  ·  Impressum  







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

Flexibles Pluginsystem: Diskussion

Ein Thema von cruiser · begonnen am 20. Jul 2006 · letzter Beitrag vom 3. Mai 2009
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#11

Re: Flexibles Pluginsystem

  Alt 20. Jul 2006, 18:24
@DGL-luke: Ich wollt des gerade in mein TestPlugin einfügen doch leider kann ich die Funktion AnsiIndexStrings nicht finden. Naja daraus schliesse ich des du sie selber geschrieben hast. Ich bin nur etwas ratlos wie ich die Funktion am besten schreibe vorallem wegen dem zweiten Parameter


//edit: Habs geschafft:
Delphi-Quellcode:
function AnsiIndexStrings(Befehl : String; StringArray : array of String) : integer;
begin
  for result := 0 to Length(StringArray) - 1 do
  begin
    if Befehl = StringArray[result] then exit;
  end;
  Result := -1;
end;

procedure PluginMain(Befehl : PChar; Parameter : Pointer); stdcall;
begin
  case AnsiIndexStrings(Befehl,['PluginInit', 'PluginStart', 'PluginStop', 'PluginFree']) of
    0://PluginInit
    begin
      PluginSend := TPluginRecord_PluginInit(Parameter^).PluginSend;
    end;
    1://PluginStart
    begin
    end;
    2://PluginStop
    begin
    end;
    3://PluginFree
    begin
    end;
  end;
end;
Kann man des noch irgendwie optimieren?
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von GimbaR
GimbaR

Registriert seit: 17. Apr 2004
Ort: Weltmetropole Rostock ;)
134 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Flexibles Pluginsystem

  Alt 20. Jul 2006, 18:49
Zitat von gsh:
@DGL-luke: Ich wollt des gerade in mein TestPlugin einfügen doch leider kann ich die Funktion AnsiIndexStrings nicht finden. Naja daraus schliesse ich des du sie selber geschrieben hast. Ich bin nur etwas ratlos wie ich die Funktion am besten schreibe vorallem wegen dem zweiten Parameter
Ein Besipiel dafür findet sich in der CodeLib: *Klick*

Des Weiteren befindet sich in der Unit "StrUtils" eine Funktion die genau das Gleiche tut:
function AnsiIndexStr(const AText: string; var AValues: array of string): Integer; so far

GimbaR
Jonas
Bei dem Tempo ist es nur noch eine Frage der Zeit bis SSchäuble verlangt allen deutschen Bürgern ein Halsband zur ständigen Überwachung zu verpassen...
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Flexibles Pluginsystem

  Alt 20. Jul 2006, 18:51
Ich bitte dich... ich würde hier doch nie meine eigenen FUnktionen kommentarlos hinklatschen^^

heisst halt nur n bischen anders: Delphi-Referenz durchsuchenAnsiIndexStr

@GimbaR: jaa....
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#14

Re: Flexibles Pluginsystem

  Alt 20. Jul 2006, 18:54
hehe jetzt hab ich es schon selber geschafft
troztdem danke

Aber noch eine wichtige Frage kann man des noch optimieren ... vllt. mit ein bissi asm? (ich kann leider kein inline asm)


@DGL-luke: ja ich habs sie nur nicht gefunden (nicht mal mit Unit suchen)
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von Boombuler
Boombuler

Registriert seit: 14. Mär 2003
Ort: Osnabrück
244 Beiträge
 
Delphi 2009 Professional
 
#15

Re: Flexibles Pluginsystem

  Alt 21. Jul 2006, 08:06
Hi,

alternativ könnte man auch statt eines Strings einen Integer übergebenm, und dort mit Konstanten oder Enumerationen für Befehle arbeiten. Das hätte folgende Vorteile:

1) Schnellere Überprüfung auf Gleichheit!
2) Keine Fehler durch Rechtschreibfehler oder der gleichen.

und wenn man neue Konstante immer nur Hinten anfügt hat man auch die Abwertskompatibilität berücksichtigt!

Greetz
Boombuler

PS: War nur so ne Idee
"Look at you, Hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?"
SwapIt Highscore:
  Mit Zitat antworten Zitat
Benutzerbild von alias5000
alias5000

Registriert seit: 10. Sep 2005
Ort: Heilbronn
268 Beiträge
 
#16

Re: Flexibles Pluginsystem

  Alt 21. Jul 2006, 13:56
man könnte einen Pointer auf einen Record übergeben. Anonsten nur mit Integer als Enumeration zu arbeiten ist halt blöd, weil damit das übergeben von Parametern (fast) unmöglich ist.

Gruß alias5000
Im Interesse der Purierung des germanischen Ideoms ist es opertum den immensen Usus peregrieder Verben auf ein Minimum zu reduzieren.
--> www.lanchat2.de <---
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#17

Re: Flexibles Pluginsystem

  Alt 21. Jul 2006, 21:14
Zitat von Boombuler:
Hi,

alternativ könnte man auch statt eines Strings einen Integer übergebenm, und dort mit Konstanten oder Enumerationen für Befehle arbeiten. Das hätte folgende Vorteile:

1) Schnellere Überprüfung auf Gleichheit!
2) Keine Fehler durch Rechtschreibfehler oder der gleichen.

und wenn man neue Konstante immer nur Hinten anfügt hat man auch die Abwertskompatibilität berücksichtigt!

Greetz
Boombuler

PS: War nur so ne Idee
ja man könnte natürlich auch einen Integer übergeben.
ja es würde ein bisschen die Gischwindigkeit steigern
aber naja man könnte sich immer noch mit der Nummer vertippen

ABER des mit String Kommands zu machen hat menschliche vorteile ... "Was war Befehl 34345 noch mal *kratz*". aber wenn da steht "ProgrammStart" dann weiss man sofort bescheid

es steht natürlich jedem frei integer zu verwenden. aber ich bleibe bei Strings
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#18

Re: Flexibles Pluginsystem

  Alt 21. Jul 2006, 21:21
Hallo,
Zitat von gsh:
aber naja man könnte sich immer noch mit der Nummer vertippen

ABER des mit String Kommands zu machen hat menschliche vorteile ... "Was war Befehl 34345 noch mal *kratz*". aber wenn da steht "ProgrammStart" dann weiss man sofort bescheid
Wer sich schon 'mal Windows-Botschaften angesehen hat, der weiß, dass man für sowas Konstanten (mit aussagekräftigen Namen) definiert.

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#19

Re: Flexibles Pluginsystem

  Alt 21. Jul 2006, 21:32
man könnte sogar das windows messaging missbrauchen und sich per Delphi-Referenz durchsuchenregisterwindowsmessage einen Integer zu einem string holen... (oder das ganze nachbilden).

aber konstante sollten hier reichen,.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#20

Re: Flexibles Pluginsystem

  Alt 21. Jul 2006, 22:56
ok stimmt

Am besten in der Gemeinsamen Unit (also die die man veröffentlichen sollte) einfach alle Konstanten definieren.
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 00:46 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