![]() |
Delphi-Version: XE2
[DCC Fehler] Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren.
Hallo, habe heut mein D7 Projekt in XE2 geöffnet und habe beim unveränderten Quellcode beim Kompilieren folgenden Fehler bekommen:
[DCC Fehler] Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren. Der Code der den fehler verursacht lautet
Delphi-Quellcode:
-das geht 5000 Zeilen so weiter-
if (Form14.ComboBox1.Text = 'Amulette') and (TrackBar1.Position= 0 ) then Image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'Items/Amulette/0.jpg');
if (Form14.ComboBox1.Text = 'Amulette') and (TrackBar1.Position= 1 ) then Image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'Items/Amulette/1.jpg'); if (Form14.ComboBox1.Text = 'Amulette') and (TrackBar1.Position= 2 ) then Image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'Items/Amulette/2.jpg'); Nun ist die Frage wie ich den Code kleiner kriege oder anders den Fehler umgehe? Bin für jede Hilfe dankbar. |
AW: [DCC Fehler] Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren.
Hallo...
Zitat:
Vorschlag:
Delphi-Quellcode:
if (Form14.ComboBox1.Text = 'Amulette') then
Image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Items/Amulette/' + IntToStr(TrackBar1.Position) + '.jpg'); if (Form14.ComboBox1.Text = 'Blubb') then Image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Items/Blubb/' + IntToStr(TrackBar1.Position) + '.jpg'); |
AW: [DCC Fehler] Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren.
Hmm.. so weiss mein Programm aber nicht auf welcher Position die Trackbar ist um das entsprechende Bild anzuzeigen.
Und der Code ist damit sogar länger. |
AW: [DCC Fehler] Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren.
Zitat:
8 Zeilen sind länger als 5000 Zeilen? |
AW: [DCC Fehler] Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren.
Wieviele verschiedene ComboBox Einträge ?
Wieviele TrackBar Positionen ? Zitat:
|
AW: [DCC Fehler] Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren.
Wenn die Verzeichnisse immer genauso heißen wie der Text in der Combobox, geht es noch einfacher für alle:
Delphi-Quellcode:
Sprich immer das Hauptverzeichnis der Exe, das Unterverzeichnis aus der Combobox und den Dateinamen aus der Trackbar, dazu noch .jpg als Dateierweiterung.
Image1.Picture.LoadFromFile(Format('%sItems\%s\%d.jpg',
[ExtractFilePath(ParamStr(0)), Form14.ComboBox1.Text, TrackBar1.Position]); |
AW: [DCC Fehler] Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren.
Da es vermutlich nicht viel Sinn macht, den Text in der ComboBox eingeben zu lassen, würde ich die Einträge zur Designtime festlegen und den Style auf csDropDownlist stellen, dann kann man schön über den ItemIndex gehen.
Delphi-Quellcode:
var
BasePath, SubPath: string; begin BasePath := ExtractFilePath(ParamStr(0)) + 'Items\'; case ComboBox1.ItemIndex of 0: SubPath := 'Amulette'; 1: SubPath := 'Schwerter'; 2: SubPath := 'Keuschheitsgürtel'; else raise Exception.Create('Nichts ausgewählt'); end; BasePath := IncludeTrailingPathDelimiter(BasePath + SubPath); Image1.Picture.LoadFromFile(Format('%s%d.jpg', [BasePath, TrackBar1.Position])); end; |
AW: [DCC Fehler] Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren.
Warum immer gleich den TE mit verschiedenen Varianten verwirren. Ist es nicht besser daß er erst mal seinen Code versteht bzw. was daran falsch war ? Verbessern geht dann immer noch. So läuft es auf C&P hinaus und er hat nix gewonnen... :roll:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz