AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi start des Programms über Explorer. Komisches Zeichen aus DOS
Thema durchsuchen
Ansicht
Themen-Optionen

start des Programms über Explorer. Komisches Zeichen aus DOS

Ein Thema von padavan · begonnen am 25. Jan 2006 · letzter Beitrag vom 26. Jan 2006
Antwort Antwort
padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#1

start des Programms über Explorer. Komisches Zeichen aus DOS

  Alt 25. Jan 2006, 14:35
Hallo Leute,

bin auch mal wieder da


Habe eine, so glaube ich, recht Grundlegende Frage zu Windows bzw. DOS

Folgendes Szenario:
{Handelt sich im Groben erstmal um ein Manager mit Bildanzeige (nicht der eigentlich Sinn des Programms, aber so weit so gut)}

Ich starte mein Programm also nun über den Explorer und lade in dem Fall das Bild welches ich im Explorer angeklickt habe mit Paramcount/ Paramstr in ein Image.
Das reinladen klappt auch.
Dann stelle ich auch gleich eine Shelltreeview und eine Filelistbox auf den Pfad aus Paramcount ein.

Klappt alles wunderbar.

Jetzt das Problem, will natürlich, dass das reingeladene Bild auch dann gleich in der Filelistbox selektiert wird.
Das wollte ich so lösen:

Delphi-Quellcode:
for i := 0 to Filelistbox1.Count - 1 do
  p := pos(extractfilename(Paramstr(1)),Filelistbox1.items[i]);
if p > 0 then
  Filelistbox1.Selected[p] := true;
Das geht aber nicht, da in Paramcount dann wieder unter DOS-Zeiten so ein Sinuszeichen '~' drin steht.
Wie schlüsselt man das dann richtig auf. Gehen muss es ja irgenwie, sonst wüsste das Image ja auch nicht was es laden soll.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: start des Programms über Explorer. Komisches Zeichen aus

  Alt 25. Jan 2006, 14:39
Das ist eine Tilde.

Und MSDOS nutzt die, um längere Dateinamen zu verarbeiten. Aber weiter weiß ich nicht mehr.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: start des Programms über Explorer. Komisches Zeichen aus

  Alt 25. Jan 2006, 21:58
Moin padavan,

schau Dir mal MSDN-Library durchsuchenGetLongPathName an.
Die mit ~ sind die ShortPathNames, also die Darstellung des Pfadnamens in der 8.3 Konvention.
(zumindest in der Standardeinstellung, man kann das auch anders einstellen, aber ich kenne bewusst niemanden der das macht )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: start des Programms über Explorer. Komisches Zeichen aus

  Alt 26. Jan 2006, 10:17
Aha,
da es Einstellungssache ist, könnte es unter einer anderen Umgebung funktionieren? (muss ich mal irgendwie ausprobieren).
Was mir halt unlogisch erscheint ist, dass ich das Bild ja auch nicht anders in das Image lade.
Und da das reinladen in das Image ja ohne Probleme klappt, habe ich versucht den Pfadnamen+Dateinamen wieder rückwärts aus dem Image rauszuladen.
so in etwa:

image1.picture.getnamepath Zu meiner Ernüchterung bekomme ich da aber nur 'TIMage' oder sowas.


Wenn mir evtl. jemand nen Tipp geben könnte, wie ich evtl. so weiterkomme?!

@ Christian_Seehase
Deinen link habe ich mir angeschaut, aus den Windows-Kommandos werd ich nie ganz schlau.
Ich müsste mir wohl eine Prozedur anlegen, in welcher ich das Getlongpathname zurückbekomme?!

Danke schonmal
Padavan
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: start des Programms über Explorer. Komisches Zeichen aus

  Alt 26. Jan 2006, 11:13
Hallo padavan,

vielleicht hilft dir diese kleine Funktion:

Delphi-Quellcode:
// uses Windows;
function ShortPathName(const fileName: string): String;
var
  buf: array [0..MAX_PATH] of char;
begin
  SetString(Result, buf, GetShortPathName(PAnsiChar(fileName), @buf, MAX_PATH));
end;
Dein Problem mit den Namen entsteht dadurch, dass du die leicht verständliche aber veraltete FileListBox verwendest. Und die Image Komponente merkt sich den Namen der Datei nicht, aus der du das Bild geladen hast. Das musst du selbst tun.

Grüße vom marabu
  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 18:40 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