Autor Beitrag
rockzOr
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Mi 16.08.06 07:44 
Hoi,

ich hab mich mal nach langer Pause wieder an Delphi gesetzt und stehe mal wieder vor einem Problem. Ich habe ein Label in dem sich ein Pfad befindet (Pfad des Programms + Ordner + Dateiname). Dieser wird aus einer filelistbox ausgelesen. Ich möchte jetzt aber nur den String des Dateinamens ohne die Endung daraus haben. Wie kann ich sowas machen? Ich weiss irgendwie nichtmal wo ich anfangen soll. Ich brauche diesen String um ihn danach in eine Ini Datei zu schreiben.

Und ich hab da noch ein kleines(?) Problem: Ich habe mir ein Config System ausgedacht in dem es versch. Styles gibt. Dort soll natürlich auch die Farbe der Formen geändert werden.
Wenn ich allerdings sage, dass die Farbe von Form2 jetzt der Wert aus der Datei sein soll, produziert es einen Fehler, weil ein TColor Wert kein String sein kann -.-

Wie kann ich dem einen Wert zuweisen der irgendwo steht und den ich nicht fest eintrage im Code?
uwewo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 154



BeitragVerfasst: Mi 16.08.06 07:54 
user profile iconrockzOr hat folgendes geschrieben:
Hoi,

ich hab mich mal nach langer Pause wieder an Delphi gesetzt und stehe mal wieder vor einem Problem. Ich habe ein Label in dem sich ein Pfad befindet (Pfad des Programms + Ordner + Dateiname). Dieser wird aus einer filelistbox ausgelesen. Ich möchte jetzt aber nur den String des Dateinamens ohne die Endung daraus haben. Wie kann ich sowas machen? Ich weiss irgendwie nichtmal wo ich anfangen soll. Ich brauche diesen String um ihn danach in eine Ini Datei zu schreiben.

ausblenden Delphi-Quelltext
1:
function ExtractFileName(const FileName: string): string;					

user profile iconrockzOr hat folgendes geschrieben:
Hoi,
Und ich hab da noch ein kleines(?) Problem: Ich habe mir ein Config System ausgedacht in dem es versch. Styles gibt. Dort soll natürlich auch die Farbe der Formen geändert werden.
Wenn ich allerdings sage, dass die Farbe von Form2 jetzt der Wert aus der Datei sein soll, produziert es einen Fehler, weil ein TColor Wert kein String sein kann -.-

ausblenden Delphi-Quelltext
1:
Form2.Color := IntToStr(Farbe);					


Ich denke Du solltest aber auch die Delphi Hilfe bemühen
rockzOr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Mi 16.08.06 09:53 
user profile iconuwewo hat folgendes geschrieben:

ausblenden Delphi-Quelltext
1:
function ExtractFileName(const FileName: string): string;					



irgendwie check ich diese funktion nicht im zusammenhang... ich hab bisher den kompletten pfad in nem label abgespeichert, das ist nur uebergangsweise um zu sehen ob mein kuddelmuddel funktioniert. aber wie setz ich die funktion da oben ein?
ich hab das momentan ca so:

ausblenden Delphi-Quelltext
1:
label2.caption := extractfilename((applicationexename)+'\ordner\'+filelistbox1.getname)					

glaub ich, bin mir net 100% sicher, bin grad auf der arbeit und kann nich nachsehn.

Zitat:

ausblenden Delphi-Quelltext
1:
Form2.Color := IntToStr(Farbe);					



soweit war ich auch schon, aber er sagt mir, dass inttostr da nich angewendet werden kann. ich hab in der datei die werte von delphi uebernommen (also bsp clwhite) und wenn ich dann das auslesen will mit:

ausblenden Delphi-Quelltext
1:
form2.color := inttostr(ini.readstring('Colors','Haupt','');					


erzeugt er halt diverse fehlermeldungeng beim compilen mit inttostr kann nich angewendet werden oder einem tcolor kann kein tstring wert zugeordnet werden... wenn ich direkt reinschreibe := clwhite; funktioniert es, so aber nicht :/

Zitat:

Ich denke Du solltest aber auch die Delphi Hilfe bemühen


das hab ich schon, nur hat davon nichts geholfen ;)
uwewo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 154



BeitragVerfasst: Mi 16.08.06 13:18 
Hi,

markiere den Text "ExtractFileName" im Quellcode und drücke F1
dann solltest Du auch wissen was diese Funktion bewirkt.

Außerdem solltest Du die Farben nicht mit WriteString abspeichern
sondern mit WriteInteger dann hast Du auch keine Probleme beim umwandeln.
oldmax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: Mi 16.08.06 13:34 
Titel: Variable wandeln
Hi
Wundert euch nicht, wenn IntToStr(IntZahl) keine Zahl ergibt. Ich hab das jetzt schon ein paarmal gelesen und möchte da mal drauf aufmerksam machen
Es gibt eine Hilfe, die man benutzen kann und die wird vermutlich sagen, das diese Funktion Eine Integerzahl in einen String wandelt. Die Andere Funktion StrToInt('3') wandelt einen String in eine Zahl.
ClRed und Co sind vordefinierte Konstanten in der Unit Graphics vom Typ TColor und letztlich vom Typ DWord, eine "Fast"-Integer, nur das diese Konstanten nicht negativ werden können.
Also, nehmt die richtige Reihenfolge und einiges wird möglicherweise funktionieren.
Gruß oldmax

_________________
Zier dich nich so, ich krieg dich schon....
_frank_
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 343
Erhaltene Danke: 1

Win XP
Delphi 3 Prof / Turbo Delphi Explorer
BeitragVerfasst: Mi 16.08.06 14:10 
du kannst IdentToColor nutzen, um die Konstantennamen zu konvertieren

HTH Frank

_________________
EB FE (die wahrscheinlich kürzeste Endlosschleife der Welt :) )
BA 01 00 00 00 52 EB 09 BB 4D 11 86 7C FF D3 EB 0D E8 F2 FF FF FF 63 68 61 72 6D 61 70 00 C3
uwewo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 154



BeitragVerfasst: Mi 16.08.06 15:10 
Warum konvertieren?

WriteInteger un ReadInteger benutzen

dann funktioniert doch alles wunderbar!
_frank_
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 343
Erhaltene Danke: 1

Win XP
Delphi 3 Prof / Turbo Delphi Explorer
BeitragVerfasst: Mi 16.08.06 16:41 
aber wenn er clIrgendwas in der ini stehen haben will...
ich selber brauchs auch nicht...war nur als ergänzung gemeint
man kanns auch als hex-speichern, da ist der Farbwert leichter nachvollziehbar
Gruß Frank

_________________
EB FE (die wahrscheinlich kürzeste Endlosschleife der Welt :) )
BA 01 00 00 00 52 EB 09 BB 4D 11 86 7C FF D3 EB 0D E8 F2 FF FF FF 63 68 61 72 6D 61 70 00 C3
rockzOr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Mi 16.08.06 19:34 
user profile icon_frank_ hat folgendes geschrieben:
aber wenn er clIrgendwas in der ini stehen haben will...
ich selber brauchs auch nicht...war nur als ergänzung gemeint
man kanns auch als hex-speichern, da ist der Farbwert leichter nachvollziehbar
Gruß Frank


nicht wollen, ich wusste nur net dass es anders geht, schlichtweg dummheit ;)
ich werds wenn ich zu hause bin mal ausprobieren, thx schonmal fuer die antworten, mal schaun obs klappt.
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mi 16.08.06 20:02 
Wie wärs mit StringToColor und ColorToString?
Diese dann in Verbindung mit ReadString bzw. WriteString, sollte das gewünschte Ergebnis liefern.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
rockzOr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Mi 16.08.06 23:16 
ok also ich hab das problem mit den farben hinbekommen :)

Beispiel:

ausblenden Delphi-Quelltext
1:
form2.GroupBox1.Color := stringtocolor(ini.readstring('Colors','Style',''));					


funzt perfekt :)

aber das mit dem auslesen des dateinamens bekomm ich nicht hin.
ich möchte auch nicht den gesamten dateinamen, sondern nur den teil der zwischen \ und .endung steht.
also beispiel:

C:\Programme\Beispiel\Datei.abc

daraus möchte ich nur den String "Datei" haben. Irgendwie bekomm ich das nicht hin...
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Mi 16.08.06 23:25 
Hallo,

ChangeFileExt kann die Dateiendung durch einen Leerstring ersetzt werden:
ausblenden Delphi-Quelltext
1:
showmessage(ChangeFileExt(ExtractFileName('C:\Programme\Beispiel\Datei.abc'),''));					

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
uwewo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 154



BeitragVerfasst: Do 17.08.06 07:31 
Wo liegt den das Problem

ausblenden Delphi-Quelltext
1:
Dateiname := ExtractFileName('c:\windows\system32\winlogon.exe');					


ergibt "winlogon.exe"

es geht nicht einfacher
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Do 17.08.06 08:12 
Hallo,

@user profile iconuwewo:

user profile iconrockzOr möchte nicht den gesamten Dateinamen, sondern nur den Teil der zwischen \ und .endung steht.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
rockzOr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Do 17.08.06 08:23 
user profile iconLannes hat folgendes geschrieben:
Hallo,

@user profile iconuwewo:

user profile iconrockzOr möchte nicht den gesamten Dateinamen, sondern nur den Teil der zwischen \ und .endung steht.


genau, danke!

ausblenden Delphi-Quelltext
1:
label3.caption := ChangeFileExt(ExtractFileName(filelistbox1.FileName),'');					


hat funktioniert, vielen dank!
uwewo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 154



BeitragVerfasst: Do 17.08.06 08:26 
Ok, Sorry

wohl zu schnell gelesen :oops:
rockzOr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Do 17.08.06 08:43 
macht nichts, trotzdem danke für deine hilfe ;)