Entwickler-Ecke
Sonstiges (Delphi) - Bestimmten String aus einem Label auslesen?
rockzOr - Mi 16.08.06 07:44
Titel: Bestimmten String aus einem Label auslesen?
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 - Mi 16.08.06 07:54
rockzOr 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.
|
Delphi-Quelltext
1:
| function ExtractFileName(const FileName: string): string; |
rockzOr 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 -.-
|
Delphi-Quelltext
1:
| Form2.Color := IntToStr(Farbe); |
Ich denke Du solltest aber auch die Delphi Hilfe bemühen
rockzOr - Mi 16.08.06 09:53
uwewo hat folgendes geschrieben: |
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:
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: |
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:
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 - 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 - 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
_frank_ - Mi 16.08.06 14:10
du kannst IdentToColor nutzen, um die Konstantennamen zu konvertieren
HTH Frank
uwewo - Mi 16.08.06 15:10
Warum konvertieren?
WriteInteger un ReadInteger benutzen
dann funktioniert doch alles wunderbar!
_frank_ - 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
rockzOr - Mi 16.08.06 19:34
_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 - 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.
rockzOr - Mi 16.08.06 23:16
ok also ich hab das problem mit den farben hinbekommen :)
Beispiel:
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 - Mi 16.08.06 23:25
Hallo,
ChangeFileExt kann die Dateiendung durch einen Leerstring ersetzt werden:
Delphi-Quelltext
1:
| showmessage(ChangeFileExt(ExtractFileName('C:\Programme\Beispiel\Datei.abc'),'')); |
uwewo - Do 17.08.06 07:31
Wo liegt den das Problem
Delphi-Quelltext
1:
| Dateiname := ExtractFileName('c:\windows\system32\winlogon.exe'); |
ergibt "winlogon.exe"
es geht nicht einfacher
Lannes - Do 17.08.06 08:12
Hallo,
@
uwewo:
rockzOr möchte nicht den gesamten Dateinamen, sondern
nur den Teil der zwischen \ und .endung steht.
rockzOr - Do 17.08.06 08:23
Lannes hat folgendes geschrieben: |
Hallo,
@ uwewo:
rockzOr möchte nicht den gesamten Dateinamen, sondern nur den Teil der zwischen \ und .endung steht. |
genau, danke!
Delphi-Quelltext
1:
| label3.caption := ChangeFileExt(ExtractFileName(filelistbox1.FileName),''); |
hat funktioniert, vielen dank!
uwewo - Do 17.08.06 08:26
Ok, Sorry
wohl zu schnell gelesen :oops:
rockzOr - Do 17.08.06 08:43
macht nichts, trotzdem danke für deine hilfe ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!