AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Wer hilft mir ein Stück Code zu komprimieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Wer hilft mir ein Stück Code zu komprimieren?

Ein Thema von AlexII · begonnen am 4. Jan 2010 · letzter Beitrag vom 4. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#1

Wer hilft mir ein Stück Code zu komprimieren?

  Alt 4. Jan 2010, 17:27
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='Bluethen
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='Vistathen
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='Redthen
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='Blackthen
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='Win7then
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='Lightthen
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;
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Wer hilft mir ein Stück Code zu komprimieren?

  Alt 4. Jan 2010, 17:34
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?
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Wer hilft mir ein Stück Code zu komprimieren?

  Alt 4. Jan 2010, 17:35
Ich glaube es geht nicht um die Dateigröße, sondern wie er die ganzen Checkboxen da geschickt mappt.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

Re: Wer hilft mir ein Stück Code zu komprimieren?

  Alt 4. Jan 2010, 17:36
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:
  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='Bluethen
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='Vistathen
...
Aber viel Ersparnis bringt das nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Wer hilft mir ein Stück Code zu komprimieren?

  Alt 4. Jan 2010, 17:36
Evtl mit einem Record und einem Array davon
Delphi-Quellcode:
type
  TMyRec = record
    Image3: string;
    Blue1: Boolean;
    Vistal: Boolean;
    ...
  end;

const
  MyValues: array[0..4] of TMyRec = (
    (Image3 = 'Image24'; Blue1 = False; ....)
    ...
  );
und dann abhängig von Background-Wert den passenden Index nehmen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#6

Re: Wer hilft mir ein Stück Code zu komprimieren?

  Alt 4. Jan 2010, 17:38
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Wer hilft mir ein Stück Code zu komprimieren?

  Alt 4. Jan 2010, 17:40
Zitat von himitsu:
fällt dir was auf?

Delphi-Quellcode:
Blue1.Checked := Background = 'Blue';
Vista1.Checked := Background = 'Vista';
...
nun nur noch die Bilder
6 Bytes..maechtige Code->Ersparnis *fg* (assembler)
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#8

Re: Wer hilft mir ein Stück Code zu komprimieren?

  Alt 4. Jan 2010, 17:49
Zitat von Der.Kaktus:
6 Bytes..maechtige Code->Ersparnis *fg* (assembler)
ich dachte er will QuellCode sparen

- 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:
Blue1.Checked := Index = 0;
Vista1.Checked := Index = 1;
...
PS: warum immer alle Bilder in Images ständig geladen haben?
ich würde jeweils nur das benötigte Bild direkt ins Image laden (Resourcen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Wer hilft mir ein Stück Code zu komprimieren?

  Alt 4. Jan 2010, 17:51
Zitat von himitsu:
Zitat von Der.Kaktus:
6 Bytes..maechtige Code->Ersparnis *fg* (assembler)
ich dachte er will QuellCode sparen
...
Öhhhm, stand das da?
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Wer hilft mir ein Stück Code zu komprimieren?

  Alt 4. Jan 2010, 17:57
Ja genau ich will den Code sparren!
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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