AGB  ·  Datenschutz  ·  Impressum  







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

TSmartCard für Delphi 2010

Ein Thema von hoika · begonnen am 3. Mai 2011 · letzter Beitrag vom 17. Apr 2013
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#1

TSmartCard für Delphi 2010

  Alt 3. Mai 2011, 09:56
Hallo #,

bei der Umstellung eines D7-Programmes habe ich ein Problem.
Das Programm verwendet die Komponente TSmartCard.
Ich habe jetzt die Pas-Quellen (scardcmp.inc) von String auf AnsiString, PChar PAnsiChar geändert.
Trotzdem stürzt das Programm beim Beenden des Forms, welches die TSmartCard verwendet ab.

Es scheint also doch noch Probleme zu geben.

Bei Towotoko finde ich keine D2010 kompatible Version ... ;(

Was nun ?


Schon mal im voraus Danke für Anregungen/Hilfe.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

AW: TSmartCard für Delphi 2010

  Alt 3. Mai 2011, 10:05
Und sonst funktioniert alles?!
Ich hab nämlich für D2009 u.a. noch folgende Funktionen angepasst:
Delphi-Quellcode:
function TSmartCard.ComandStr(const Cmd,DataIn: AnsiString): AnsiString;
begin
  if DataIn = 'then
  begin
    SetLength(Result, 255);
    SetLength(Result, Comand(Cmd,nil,0,@Result[1], Length(Result)));
  end else begin
    SetLength(Result, 255);
    SetLength(Result, Comand(Cmd,@DataIn[1],Length(DataIn),@Result[1], Length(Result)));
  end;
end;

function TSmartCard.Comand(const Cmd: AnsiString;
                            DataIn: Pointer; DataInLen: LongInt;
                            DataOut: Pointer; DataOutMax: LongInt
                            ): LongInt;
var R,L,M: LongInt; C: AnsiString;
begin
  try
    Result:=DataOutMax;
    if not FActive then Error('SmartCard component not activated');
    L:=Length(Cmd);
    if L = 0 then
      R:=FSCardComand(FTDevHandle,nil,L,
                      DataIn,DataInLen,DataOut,Result)
    else
      R:=FSCardComand(FTDevHandle,@Cmd[1],L,
                      DataIn,DataInLen,DataOut,Result);
    if R > 0 then begin
      Result:=0;
      C:=cmSystem+cmInfo+cmErrText;
      L:=Length(C);
      M:=0;
      SetLength(FError, 255);
      R:=Length(FError);
      FSCardComand(FTDevHandle,@C[1],L,nil,M,@FError[1],R);
      SetLength(FError, R);
      Error(FError);
    end;
  except
    Result:=0;
    if not (csDesigning in ComponentState) then raise;
  end;
end;
Vergleichs mal mit deinen Aber ob's daran liegt weiß ich natürlich nicht ...
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TSmartCard für Delphi 2010

  Alt 3. Mai 2011, 11:34
Hallo,

oh ein Gleichgesinnter.
Habe das jetzt geändert.
Leider funktioniert es immer noch ;(

Beim Beenden schmiert das Formular ab.

Kannst du mir deine Inc-datei mal per PN geben ?

Danke


Heiko
Heiko
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: TSmartCard für Delphi 2010

  Alt 3. Mai 2011, 13:00
Hallo,

erledigt !!!
Musste die Komponente neuinstallieren.

1000 Dank


Heiko
Heiko
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TSmartCard für Delphi 2010

  Alt 3. Mai 2011, 13:29
Hallo,

zu früh gefreut ;(
Ist kein Lesegerät angeschlossen,
stürzt das Programm nach dem Form-Beenden ab.
Allerdings nicht in der Debug- sondern nur in der Release-Version.

Ich erzeuge die Komponente jetzt dynamisch und gebe sie erst mal nicht frei


Heiko
Heiko

Geändert von hoika ( 3. Mai 2011 um 13:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#6

AW: TSmartCard für Delphi 2010

  Alt 3. Mai 2011, 13:42
Mh, ich hatte auch mal ein Problem mit nicht angeschlossenem Kartenleser ... ich glaube das war, weil ich auf DeviceList zugegriffen habe, obwohl Active auf false stand - glaube ich
Vlt. greifst du auch auf etwas zu, was nicht existiert?!
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TSmartCard für Delphi 2010

  Alt 3. Mai 2011, 13:44
Hallo,

Das letzte FreeLibrary in SetActive ist der Schuldige.
Das habe ich jetzt ausgeklammert und werde mir das später ansehen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: TSmartCard für Delphi 2010

  Alt 3. Mai 2011, 15:08
AFAICR hatte ich vor zwei Jahren dasselbe Problem mit einem ähnlichen Workaround.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
schorsch666

Registriert seit: 21. Apr 2011
81 Beiträge
 
#9

AW: TSmartCard für Delphi 2010

  Alt 8. Mai 2011, 19:34
Hallo. Ich suche mir seit Wochen schon die Finger wund, weil ich genau das selbe Problem habe. Setze mehrere SCR335 ein und nutzte bisher TSmartCard. Nun setze ich Delphi XE ein und bekomme es nicht gebacken

Kann mir vielleicht jemand einen Link (oder auch gerne per Mail) posten, wo ich mir mal eine funktionierende Version ziehen kann?

Wäre echt supermega..!

Tks vorab..

Schorsch
  Mit Zitat antworten Zitat
schorsch666

Registriert seit: 21. Apr 2011
81 Beiträge
 
#10

AW: TSmartCard für Delphi 2010

  Alt 8. Mai 2011, 20:29
Nochmal ich,
ich habe jetzt mal versucht die Kompo umzustellen, wie hier weiter oben beschrieben.

Aber in der function: SetActive - meckert er mir folgende Zeilen an:

if FileSearch(StrPas(@DllFile[1]), ExtractFilePath(ParamStr(0))+'\;'+S+';'+T) <> '' then

(Doppeldeutiger oder überladener Aufruf von "StrPas")
..
Error('Invalid/missing SmartCard library '+StrPas(@DllFile[1])+
' (Error code '+IntToStr(FLibHandle)+')'+#13#10+
'Pls. download latest version at: http://www.towitoko.de');

(Doppeldeutiger oder überladener Aufruf von "StrPas")
..
Error('Invalid SmartCard library '+StrPas(@DllFile[1])+
' (version mismatch)'+#13#10+
'Pls. download latest version at: http://www.towitoko.de');

(Doppeldeutiger oder überladener Aufruf von "StrPas")

Hat da vielleicht jemand ne Idee? Obwohl ne aktuelle, lauffähige Kompo wäre natürlich was

Tks vorab und schönes Restwochenende..

Schorsch
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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