![]() |
Wer hilft mir ein Stück Code zu komprimieren?
Hab hier diesen Code und bin mir sicher diesen kann man etwas komprimieren, spricht vereinfachen, wer zeig mir wie? Danke im Voraus!
Delphi-Quellcode:
if Background='Blue' then
begin Image3.Picture:=Image23.Picture; Blue1.Checked:=True; Vista1.Checked:=False; Red1.Checked:=False; Black1.Checked:=False; Win71.Checked:=False; Light1.Checked:=False; Blue1.Enabled:=False; Vista1.Enabled:=True; Red1.Enabled:=True; Black1.Enabled:=True; Win71.Enabled:=True; Light1.Enabled:=True; Background:='Blue'; end; if Background='Vista' then begin Image3.Picture:=Image22.Picture; Blue1.Checked:=False; Vista1.Checked:=True; Red1.Checked:=False; Black1.Checked:=False; Win71.Checked:=False; Light1.Checked:=False; Blue1.Enabled:=True; Vista1.Enabled:=False; Red1.Enabled:=True; Black1.Enabled:=True; Win71.Enabled:=True; Light1.Enabled:=True; end; if Background='Red' then begin Image3.Picture:=Image24.Picture; Blue1.Checked:=False; Vista1.Checked:=False; Red1.Checked:=True; Black1.Checked:=False; Win71.Checked:=False; Light1.Checked:=False; Blue1.Enabled:=True; Vista1.Enabled:=True; Red1.Enabled:=False; Black1.Enabled:=True; Win71.Enabled:=True; Light1.Enabled:=True; end; if Background='Black' then begin Image3.Picture:=Image25.Picture; Blue1.Checked:=False; Vista1.Checked:=False; Red1.Checked:=False; Black1.Checked:=True; Win71.Checked:=False; Light1.Checked:=False; Blue1.Enabled:=True; Vista1.Enabled:=True; Red1.Enabled:=True; Black1.Enabled:=False; Win71.Enabled:=True; Light1.Enabled:=True; end; if Background='Win7' then begin Image3.Picture:=Image26.Picture; Blue1.Checked:=False; Vista1.Checked:=False; Red1.Checked:=False; Black1.Checked:=False; Win71.Checked:=True; Light1.Checked:=False; Blue1.Enabled:=True; Vista1.Enabled:=True; Red1.Enabled:=True; Black1.Enabled:=True; Win71.Enabled:=False; Light1.Enabled:=True; end; if Background='Light' then begin Image3.Picture:=Image27.Picture; Blue1.Checked:=False; Vista1.Checked:=False; Red1.Checked:=False; Black1.Checked:=False; Win71.Checked:=False; Light1.Checked:=True; Blue1.Enabled:=True; Vista1.Enabled:=True; Red1.Enabled:=True; Black1.Enabled:=True; Win71.Enabled:=True; Light1.Enabled:=False; end; |
Re: Wer hilft mir ein Stück Code zu komprimieren?
Hallo,
kleiner Tip(meine Idee)... mit einem "Case" als erstes die Farbe.."vorher" Grunddefinition der Felder setzen...diese Imagefiles evtl. in einen Array und dann ueber "+1" erreichen .. nur die Felder Changen die sich wirklich aendern....damit sparst Du ein paar Byte ...muss das in der "heutigen" Zeit des Speichers aber wirklich noch sein? :shock: |
Re: Wer hilft mir ein Stück Code zu komprimieren?
Ich glaube es geht nicht um die Dateigröße, sondern wie er die ganzen Checkboxen da geschickt mappt.
|
Re: Wer hilft mir ein Stück Code zu komprimieren?
Hallo,
Du könntest zuerst alle .Checked und .Enabled auf False setzen, und dann in den einzelnen Abfragen nur noch die benötigten auf True, dadurch könntest Du eventuell ein paar Zeilen sparen. Die einzelnen If-Abfragen können per Else miteinander verbunden werden, da ja nur eine If-Abfrage zutreffen kann.
Delphi-Quellcode:
Aber viel Ersparnis bringt das nicht.
Blue1.Checked:=False;
Vista1.Checked:=False; Red1.Checked:=False; Black1.Checked:=False; Win71.Checked:=False; Light1.Checked:=False; Blue1.Enabled:=False; Vista1.Enabled:=False; Red1.Enabled:=False; Black1.Enabled:=False; Win71.Enabled:=False; Light1.Enabled:=False; if Background='Blue' then begin Image3.Picture:=Image23.Picture; Blue1.Checked:=True; Vista1.Enabled:=True; Red1.Enabled:=True; Black1.Enabled:=True; Win71.Enabled:=True; Light1.Enabled:=True; end else if Background='Vista' then ... |
Re: Wer hilft mir ein Stück Code zu komprimieren?
Evtl mit einem Record und einem Array davon
Delphi-Quellcode:
und dann abhängig von Background-Wert den passenden Index nehmen.
type
TMyRec = record Image3: string; Blue1: Boolean; Vistal: Boolean; ... end; const MyValues: array[0..4] of TMyRec = ( (Image3 = 'Image24'; Blue1 = False; ....) ... ); |
Re: Wer hilft mir ein Stück Code zu komprimieren?
fällt dir was auf?
Delphi-Quellcode:
Blue1.Checked := Background = 'Blue';
Vista1.Checked := Background = 'Vista'; ... nun nur noch die Bilder ... z.B. über Bernhards Array für die Images, zusammen mit FindComponent |
Re: Wer hilft mir ein Stück Code zu komprimieren?
Zitat:
|
Re: Wer hilft mir ein Stück Code zu komprimieren?
Zitat:
- Array/Liste mit den Namen - aktuellen Namen in Liste suche = Index - Array mit Imagenamen und über den Index den passenden Imagenamen finden - FindComponent + Imagenamen das Bild zuweisen - CheckBoxen setzen
Delphi-Quellcode:
PS: warum immer alle Bilder in Images ständig geladen haben?
Blue1.Checked := Index = 0;
Vista1.Checked := Index = 1; ... ich würde jeweils nur das benötigte Bild direkt ins Image laden (Resourcen) |
Re: Wer hilft mir ein Stück Code zu komprimieren?
Zitat:
|
Re: Wer hilft mir ein Stück Code zu komprimieren?
Ja genau ich will den Code sparren!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 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