Re: Programm lässt sich nicht beenden
Oder einfach so...
Delphi-Quellcode:
program Project1;
uses Forms, ... Unit1 in 'Unit1.pas' {FrmMain}; {$R *.res} begin Application.Initialize; if ParamStr(1) <> '' then begin ShowMessage('Sub-Programmstart'); subprogramm; ShowMessage('Programm wird jetzt beendet.'); Exit; end; // Dann brauchts erst gar kein else Application.CreateForm(TFrmMain, FrmMain); Application.Run; end. |
Re: Programm lässt sich nicht beenden
stimmt ist mir garnicht aufgefallen :)(sorry ich miche mich schon wieder ein, aber mich interessiert sein Problem nunmal)
|
Re: Programm lässt sich nicht beenden
ööh.. hups.
daran lags wohl anscheinend. naja, bin ja anfänger. <- ausrede und hab heut wieder was gelernt. ich mach das lieber mit dem else, in den übergeordneten Quellcode will ich mal lieber nicht unbedingt eingreifen wenn es auch noch anders geht. Danke euch allen!! :love: |
Re: Programm lässt sich nicht beenden
Hat geklappt. Aber nun hat sich ein neues Problem aufgetan:
Delphi-Quellcode:
Da hab ich jetzt praktisch das so eingestellt, dass die Endung genommen wird und verglichen wird, wonach sich das Zielverzeichnis richtet.
FFileExt := ExtractFileExt(ParamStr(1)) ;
case FFileExt of '.ut2': FPathToDir := '\Maps\'; '.utx': FPathToDir := '\Textures\'; '.usx': FPathToDir := '\StaticMeshes\'; '.uax': FPathToDir := '\Sounds\'; '.ukx': FPathToDir := '\Animations\'; '.ka': FPathToDir := '\KarmaData\'; '.ogg': FPathToDir := '\Music\'; '.upl': FPathToDir := '\System\'; '.u' : FPathToDir := '\System\'; '.ucl': FPathToDir := '\System\'; '.frt': FPathToDir := '\System\'; '.int': FPathToDir := '\System\'; '.ini': FPathToDir := '\System\'; else ShowMessage('Unbekannte Dateiendung! Bitte ggf. manuell verschieben! Sorry =)'); end; Errors bekomme ich direkt bei dem "case FFileExt of" (FFileExt ist als String deklariert) und der debug besagt "Ordinal type required" und in Jeder Möglichkeit des Cases kommt die Meldung "Incompatible types: Integer and String" dabei sind das doch beides Strings... Hängt das vielleicht mit der Änderung der Programmreihenfolge da zusammen? Würd mich freuen wenn ich dazu noch schnell hilfe bekomme, denn das ist der vorletzte Teil des Programms! :love: |
Re: Programm lässt sich nicht beenden
CASE kennt nur ordinale Typen ... für Strings geht sowas nicht.
Könntrst ja verschachtelte IFs verwenden
Delphi-Quellcode:
If S = 'abc' Then Begin
End Else If S = 'def' Then Begin End .... |
Re: Programm lässt sich nicht beenden
Oder einfach viele IFs hintereinander:
Delphi-Quellcode:
Was wird denn kopiert? Zufällig UT2004? :mrgreen:
if s = '1' then
if s = '2' then ... Florian |
Re: Programm lässt sich nicht beenden
Zitat:
|
Re: Programm lässt sich nicht beenden
Hi.
Du könntest auch ne prozedur schreiben, die die Dateierweiterung überprüft, nur das sie als Parameter die schon durchsuchten enthält. Dazu müsstest du die bekannten extensions aber in nem Array speichern.
Delphi-Quellcode:
nicht getestet, aber sollte so in etwa hinhauen
procedure check(ext: string, Anzahl_der_ueberprüften: integer);
begin if(!ext = extA(Anzahl_der_ueberprüften) then check(ext, Anzahl_der_ueberprüften +1); else begin Verschiebung break // müsste rekursiven Aufstieg verhindern end; Sorry wenn meine Beiträge etwas sinnlos sind bin aber 1. Anfänger und hab 2. in letzter Zeit kaum noch Zeit für Delphi, da ich beruflich mit php arbeiten muss :kotz: |
Re: Programm lässt sich nicht beenden
@Radon
Erstelle doch bitte ein neues Thema für Deine 2. Frage. Die Modis sehen es nicht gerne, wenn pro Thema mehrere Fragen unterschiedlicher Themen gestellt werden. |
Re: Programm lässt sich nicht beenden
Jau, sorry. Dachte das gehört noch irgendwie dazu.
Habs jedenfalls jetzt mit verschachtelten If-Abfragen gelöst und es klappt. Thx! |
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