AGB  ·  Datenschutz  ·  Impressum  







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

Rückgabewert der Funktion undefiniert

Ein Thema von trebor90 · begonnen am 6. Jun 2009 · letzter Beitrag vom 16. Jun 2009
Antwort Antwort
Seite 3 von 3     123   
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#21

Re: Rückgabewert der Funktion undefiniert

  Alt 6. Jun 2009, 22:18
Sind die Einträge komplett identisch oder unterscheiden die sich durch Leerzeichen oder Groß-/Kleinschreibung?
Markus Kinzler
  Mit Zitat antworten Zitat
trebor90

Registriert seit: 28. Mai 2009
43 Beiträge
 
#22

Re: Rückgabewert der Funktion undefiniert

  Alt 6. Jun 2009, 23:10
ie Einträge sind komplett identisch, wie aus meinen vorigen Beiträgen hervor gehen müsste: Ich sagte ja bereits, dass ich einmal Dateien per Drag'n'Drop hineinziehe und dass sie beim zweiten Reinziehen (sprich gleiche Dateien) nicht nochmal hinzugefügt werden ...
Die Dateien werden weiterverarbeitet, und da wäre es dämlich, sie mehrmals zu bearbeiten, weil sie inner Listbox mehrmals stehen ...

Hier die komplette Drag'n'Drop-Routine ... Sicherlich auch von irgendwo hier geklaut

Delphi-Quellcode:
const DF_NUMBEROFFILES=$FFFFFFFF;
procedure TForm1.WMDROPFILES(var Msg: TMessage);
var i,j,l,a,r,anzahl,size:Integer;
    Dateiname:PChar;
    Pfad,Pfadneu,s:string;
begin
inherited;
Dateiname:=PChar('');
Pfad:=edit1.text;
//Ermitteln des Pfades der neuen Dateien durch Einlesen der neuen Dateien
//in Listbox4
anzahl:=DragQueryFile(Msg.WParam, DF_NUMBEROFFILES, Dateiname, 255);
for i:=0 to (anzahl-1) do
  begin
    size:=DragQueryFile(Msg.WParam,i,nil,0)+1;
    Dateiname:=StrAlloc(size);
    DragQueryFile(Msg.WParam,i,Dateiname,size);
    Listbox4.Items.Add(StrPas(Dateiname));
    StrDispose(Dateiname);
  end;
DragFinish(Msg.WParam);
//Herausfiltern des Pfades
s:=listbox4.items[0];
l:=length(s);
for j:=l downto 1 do
      begin
        if s[j]='\then
          begin
            Pfadneu:=copy(s,1,j);
            Break;
          end;
      end;
a:=listbox4.items.count;

//Messagebox, wenn Listbox nicht leer und Pfade der neuen/alten Dateien ungleich
if ((listbox1.items.count<>0) and (Pfad<>Pfadneu) and (Pfad<>'')) then
  if Application.MessageBox ('Sie können nur Dateien des gleichen Ordners nummerieren!'#13'Wenn Sie Dateien eines anderen Ordners in die Liste ziehen, werden die anderen Elemente entfernt.','Hinweis',MB_OKCANCEL +MB_ICONINFORMATION +MB_SETFOREGROUND)=mrok then listbox1.items.clear
  else a:=0;

//Neue Dateien in Listbox1
for r:=1 to a do
  //if schonda(listbox4.items[r-1])=false then
  if listbox1.items.indexof(listbox4.items[r-1])=-1 then
    begin edit2.text:=inttostr(listbox1.items.indexof(listbox4.items[r-1]));
    listbox1.items.add(listbox4.items[r-1]); end;

listbox4.items.clear;
Dateinamenkurz();
Form1.ActiveControl:=listbox1;
BitBtn1.enabled:=false;
BitBtn2.enabled:=true;
Button2.enabled:=true;
BitBtn3.enabled:=false;
BitBtn5.enabled:=true;
Button6.enabled:=true;
listbox2.items.clear;
listbox3.items.clear;
listbox1.itemindex:=0;
SetLBHScrollbar(Listbox1);
end;

PS: Was macht inherited ... Ich verstehs immer noch nicht ...
"Es amüsiert mich immer wieder, wenn Menschen all ihr Unglück dem Schicksal, dem Zufall oder dem Verhängnis zuschreiben, während sie ihre Erfolge oder ihr Glück mit ihrer eigenen Klugheit, ihrem Scharfsinn oder ihrer Einsicht begründen."
  Mit Zitat antworten Zitat
trebor90

Registriert seit: 28. Mai 2009
43 Beiträge
 
#23

Re: Rückgabewert der Funktion undefiniert

  Alt 11. Jun 2009, 09:09
Nun wurde ich aufgefordert, Quelltext zu geben und es antwortet keiner mehr ...
Keiner einen Rat?
"Es amüsiert mich immer wieder, wenn Menschen all ihr Unglück dem Schicksal, dem Zufall oder dem Verhängnis zuschreiben, während sie ihre Erfolge oder ihr Glück mit ihrer eigenen Klugheit, ihrem Scharfsinn oder ihrer Einsicht begründen."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Rückgabewert der Funktion undefiniert

  Alt 11. Jun 2009, 09:18
Da ich nicht weiß worum es geht, da auch die Überschrift nicht zur geposteten Prozedur paßt ...



Zitat von trebor90:
PS: Was macht inherited ... Ich verstehs immer noch nicht ...
dieses ruft die gleiche Funktion in einer übergeordneten Klasse auf

Also wenn z.B. mit "WMDROPFILES" eine gleichnamige Funktion in einer der Elternklasse überschrieben wurde, dann wird die alte Funktion aufgerufen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#25

Re: Rückgabewert der Funktion undefiniert

  Alt 11. Jun 2009, 11:15
Zitat von trebor90:
Nun wurde ich aufgefordert, Quelltext zu geben und es antwortet keiner mehr ...
Keiner einen Rat?
sorry, hatte den thread hier total vergessen

also dein source macht bei mir genau das was er soll. es werden nur neue dateien hinzugefügt.
was macht denn die funktion "Dateinamenkurz();", die hast du ja nicht mit gepostet.
  Mit Zitat antworten Zitat
trebor90

Registriert seit: 28. Mai 2009
43 Beiträge
 
#26

Re: Rückgabewert der Funktion undefiniert

  Alt 12. Jun 2009, 22:14
Zitat von himitsu:
Da ich nicht weiß worum es geht, da auch die Überschrift nicht zur geposteten Prozedur paßt ...
Dann müsstest du einfach mal den gesamten Gesprächsfaden von vorn beginnend lesen, denn da (auf Seite 1) ging es anfangs um einen undefinierten Rückgabewert ...
___________________________________________

Für nat (und alle anderen natürlich auch):

Delphi-Quellcode:
procedure TForm1.dateinamenkurz();
var a,i,j,l:integer;
    Pfad,s:string;
begin
a:=listbox1.items.count;
s:=listbox1.items[a-1];
l:=length(s);
//Pfadlänge ermitteln mittels letztem Backslash
for j:=l downto 1 do
      begin
        if s[j]='\then
          begin
            Pfad:=copy(s,1,j);
            Break;
          end;
      end;

//Pfad aus jeder Datei löschen, sodass nur noch Dateiname übrig bleibt
for i:=1 to a do
  begin
    s:=listbox1.items[i-1];
    if (pos(Pfad,s)<>0) then delete(s,1,j);
    listbox1.items[i-1]:=s;
  end;
if (Pfad<>'') then edit1.text:=Pfad;
end;
"Es amüsiert mich immer wieder, wenn Menschen all ihr Unglück dem Schicksal, dem Zufall oder dem Verhängnis zuschreiben, während sie ihre Erfolge oder ihr Glück mit ihrer eigenen Klugheit, ihrem Scharfsinn oder ihrer Einsicht begründen."
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#27

Re: Rückgabewert der Funktion undefiniert

  Alt 12. Jun 2009, 23:05
Zitat:
Dann müsstest du einfach mal den gesamten Gesprächsfaden von vorn beginnend lesen, denn da (auf Seite 1) ging es anfangs um einen undefinierten Rückgabewert ...
Um die Funktion der Suche weiterhin zu gewährleisten und andere schnell an passende Ergebnisse kommen wäre es doch passend ein neues Thema zu starten, mit der neuen Frage/Thematik.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#28

Re: Rückgabewert der Funktion undefiniert

  Alt 12. Jun 2009, 23:43
Und man könnte auch ExtractFilePath und ExtractFileName verwenden, das ist nicht so umständlich
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#29

Re: Rückgabewert der Funktion undefiniert

  Alt 13. Jun 2009, 14:45
Delphi-Quellcode:
for i:=0 to (anzahl-1) do
  begin
    size:=DragQueryFile(Msg.WParam,i,nil,0)+1;
    Dateiname:=StrAlloc(size);
    DragQueryFile(Msg.WParam,i,Dateiname,size);
    Listbox4.Items.Add(StrPas(Dateiname)); //hier fügst du mit pfad ein
    StrDispose(Dateiname);
  end;
Delphi-Quellcode:
//Neue Dateien in Listbox1
for r:=1 to a do
  //if schonda(listbox4.items[r-1])=false then
  if listbox1.items.indexof(listbox4.items[r-1])=-1 then //hier wird "datei mit pfad" mit "datei ohne pfad" verglichen
    begin edit2.text:=inttostr(listbox1.items.indexof(listbox4.items[r-1]));
    listbox1.items.add(listbox4.items[r-1]);
dein problem ist, dass du die dateinamen ohne pfad speicherst,
vergleichst die (neuen) gedroppten dateien aber mit pfad mit den
alten (vorher gedroppten) dateien von denen du den pfad abgeschnitten
hast mit deiner procedure TForm1.dateinamenkurz(); methode.
  Mit Zitat antworten Zitat
trebor90

Registriert seit: 28. Mai 2009
43 Beiträge
 
#30

Re: Rückgabewert der Funktion undefiniert

  Alt 16. Jun 2009, 12:01
Gut, Danke nat!

Jetzt funktioniert es.
Ich habe die Dateinamen in Listbox4 schon gekürzt, sodass sie ganz ohne Pfad in die Listbox1 kommen.
Es geht jetzt!

Danke!

-- Somit ist das Problem gelöst und kann daher beendet werden. --
"Es amüsiert mich immer wieder, wenn Menschen all ihr Unglück dem Schicksal, dem Zufall oder dem Verhängnis zuschreiben, während sie ihre Erfolge oder ihr Glück mit ihrer eigenen Klugheit, ihrem Scharfsinn oder ihrer Einsicht begründen."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 17:42 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