AGB  ·  Datenschutz  ·  Impressum  







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

Datentypen Umwandeln

Ein Thema von thomasvonmuenster1 · begonnen am 22. Mär 2004 · letzter Beitrag vom 23. Mär 2004
Antwort Antwort
Seite 1 von 3  1 23      
thomasvonmuenster1

Registriert seit: 19. Mär 2004
132 Beiträge
 
Delphi 7 Enterprise
 
#1

Datentypen Umwandeln

  Alt 22. Mär 2004, 15:44
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text:=IBQuery1.FieldByName('Pfad').AsString;
Label4.Caption:=Edit2.Text;
if ShellExecute(windows.PROCESS_CREATE_THREAD, 'open', 'AcroRd32.exe', Edit2.Text, nil, SW_SHOWDEFAULT)< 33 then showmessage('Anwendung kann nicht geoeffnet werden ');

end;

Ich lese aus einer Interbase DB de Pfad einer PDF Datei aus und lase ihn anzeigen.
Das geht auch aber bei der Übergabe in die ShellExecute Anweisung weigert er sich
und sagt
[Fehler] DbDatesF.pas(90): Inkompatible Typen: 'TCaption' und 'PAnsiChar'
wie kann PAnsiChar in einen String Umwandeln?
Oder geht es anders besser?

Danke Thomas!!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Datentypen Umwandeln

  Alt 22. Mär 2004, 15:47
Hmm, an dem kann's eigentlich nicht liegen, normalerweise sind TCaption und PAnsiChar kompatibel, was folgendes Beispiel zeigt:

Delphi-Quellcode:
var a: PAnsiChar;
begin
  a := 'test';
  Caption := a;
end;
  Mit Zitat antworten Zitat
thomasvonmuenster1

Registriert seit: 19. Mär 2004
132 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Datentypen Umwandeln

  Alt 22. Mär 2004, 15:53
Ja das Stimmt.Ich kann es ja auch in ein Label Übergeben.
Aber es startet nicht die PDF Datei.
Manuell geht es aber.Aber nicht aus der Datebank!!!!
if ShellExecute(windows.PROCESS_CREATE_THREAD, 'open', 'AcroRd32.exe', 'c:\\test\test2.pdf', nil, SW_SHOWDEFAULT)< 33 then showmessage('Anwendung kann nicht geöffnet werden !');
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#4

Re: Datentypen Umwandeln

  Alt 22. Mär 2004, 15:54
Eine Umwandlung geht ganz einfach.

Code:
S := [color=red]Typenbezeichnung([/color]A[color=red])[/color];
z.B.:
Delphi-Quellcode:
Var S: String
  A: PAnsiChar;


S := String(A);

Achja, ShellExecute verlangt AnsiChar und nicht String (Edit2.Text = String)
Code:
ShellExecute(windows.PROCESS_CREATE_THREAD, 'open', 'AcroRd32.exe', [color=red]PChar([/color]Edit2.Text[color=red])[/color], nil, SW_SHOWDEFAULT)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
thomasvonmuenster1

Registriert seit: 19. Mär 2004
132 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Datentypen Umwandeln

  Alt 22. Mär 2004, 16:07
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s: String
    A: PAnsiChar;
begin
 A:=IBQuery1.FieldByName('Pfad').AsString;
 s := String(A);
 Label4.Caption:=Edit2.Text;
 if ShellExecute(windows.PROCESS_CREATE_THREAD, 'open', 'AcroRd32.exe', s, nil, SW_SHOWDEFAULT)< 33 then showmessage('Anwendung kann nicht geoeffnet werden ');
end;
So macht er es nicht!
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Datentypen Umwandeln

  Alt 22. Mär 2004, 16:08
Zitat von himitsu:
Delphi-Quellcode:
Var S: String
  A: PAnsiChar;


S := String(A);
Heisst des nicht StrPas in dem Fall ???, also

Delphi-Quellcode:
var
  s: string;
  p: PChar;
begin
  // ...
  s := StrPas(p);
end;
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
thomasvonmuenster1

Registriert seit: 19. Mär 2004
132 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Datentypen Umwandeln

  Alt 22. Mär 2004, 16:16
PChar(Edit2.Text) ergibt keine Fehler aber er gibt mir dann meine Fehlermeldung wieder!
Probiere jetzt mal StrPas
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Datentypen Umwandeln

  Alt 22. Mär 2004, 16:20
in deinem Fall, muss zu PChar gecastet werden, da ShellExecute() PChar verlangt.

Zu deinem Fehler: Wenn du 'AcroRd32.exe' ohne Programmpfad angibst, sucht Windows die Datei im Programmverzeichnis. Da ist es möglich, dass ein Fehler beim Öffnen auftritt...

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
thomasvonmuenster1

Registriert seit: 19. Mär 2004
132 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Datentypen Umwandeln

  Alt 22. Mär 2004, 16:20
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
  p: PChar;
begin
  s := StrPas(p);
  s:=IBQuery1.FieldByName('Pfad').AsString;
  if ShellExecute(windows.PROCESS_CREATE_THREAD, 'open', 'AcroRd32.exe', s, nil, SW_SHOWDEFAULT)< 33 then showmessage('Anwendung kann nicht geoeffnet werden ');
[Fehler] DbDatesF.pas(93): Inkompatible Typen: 'String' und 'PAnsiChar'
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#10

Re: Datentypen Umwandeln

  Alt 22. Mär 2004, 16:24
wenn denn sop:=Pchar (IBQuery1.FieldByName('Pfad').AsString); oder so
Delphi-Quellcode:

p:=strPas(IBQuery1.FieldByName('Pfad').AsString;
und p in deine shellexecute statt s.
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 14:35 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