Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi wiederholungen zusammenfassen? (https://www.delphipraxis.net/101491-wiederholungen-zusammenfassen.html)

PaddyMu 14. Okt 2007 12:27


wiederholungen zusammenfassen?
 
hallo^^
ich habe gerade gemerkt dass mein quelltext ewig lang ist
da sich viele phraseb wiederholen wollte ich fragen ob man es zusammenfassen kann
hier ein beispiel:
Delphi-Quellcode:
       
begin if
             Zahl17=28
                      then begin
                           Zahl5:=255;
                           Zahl6:=255;
                           Zahl7:=255;
                           Zahl8:=240;
                      end;
       end;

       begin if
             Zahl17=29
                      then begin
                           Zahl5:=255;
                           Zahl6:=255;
                           Zahl7:=255;
                           Zahl8:=248;
                      end;
       end;
kann man das irgendwie kürzer gestalten? von dieser art existieren weitere 5 6 stück..
MfG :)

mkinzler 14. Okt 2007 12:31

Re: wiederholungen zusammenfassen?
 
Ein Case-Konstrukt

SaFu 14. Okt 2007 12:52

Re: wiederholungen zusammenfassen?
 
oder du schreibst es in eine Procedure

Delphi-Quellcode:

private

procedure zahlen;
.
.
.

procedure Form1.zahlen;
begin
 Zahl5:=255;
 Zahl6:=255;
 Zahl7:=255;
end;

begin
 if Zahl17=28 then
  begin
   zahlen;
   Zahl8:=240;
  end;
 end;

 begin
  if Zahl17=29  then
    begin
     zahlen;
    end;
  end;
vorausgesetzt deine zahlen bleiben immer gleich ind procedure

somit sparst du dir viele zeilen

Gruss sascha

scrat1979 14. Okt 2007 13:00

Re: wiederholungen zusammenfassen?
 
Zitat:

Zitat von fuknersascha
oder du schreibst es in eine Procedure

[...]

vorausgesetzt deine zahlen bleiben immer gleich ind procedure

somit sparst du dir viele zeilen

Gruss sascha

Sollten sie sich doch ändern, könntest du aber auch eine Prozedur mit Parametern nehmen, z.B.

Delphi-Quellcode:
procedure Zahlen(myZahl1, myZahl2, myZahl3, myZahl4 : Integer);
begin
 Zahl5 := myZahl1;
 Zahl6 := myZahl2;
 Zahl7 := myZahl3;
 Zahl8 := myZahl4;
end;

[...]

if Zahl17=28 then
   zahlen(255, 255, 255, 240);
SCRaT

Garfield 14. Okt 2007 14:34

Re: wiederholungen zusammenfassen?
 
Vielleicht so:
Delphi-Quellcode:
procedure Eintragen(Neue5, Neue6, Neue7, Neue8: Integer);
begin
  Zahl5 := Neue5;
  Zahl6 := Neue6;
  Zahl7 := Neue7;
  Zahl8 := Neue8;
end;

...

Case Zahl17 of
  28 : Eintragen(255, 255, 255, 240);
  29 : Eintragen(255, 255, 255, 248);
end;

SaFu 14. Okt 2007 14:37

Re: wiederholungen zusammenfassen?
 
ich weis ja net wieviel ahnung er hat aber nach den einträgen zu urteilen ist er neu und da würde ich es doch bei einfachen sachen belassen :-D

PaddyMu 14. Okt 2007 16:02

Re: wiederholungen zusammenfassen?
 
nein case kann ich mehr oder whniger^^ (habs mir selbst beigebracht)
wo deklariere ich denn "eintragen"?

mkinzler 14. Okt 2007 16:04

Re: wiederholungen zusammenfassen?
 
Delphi-Quellcode:
begin
    case Zahl17 of
      18: ..
      29: ..
    end;
end;

alzaimar 14. Okt 2007 16:57

Re: wiederholungen zusammenfassen?
 
Delphi-Quellcode:
Const
  Zahlen : Array [28..29,0..3] of (
    (255,255,255,240),
    (255,255,255,248)
);

Begin
  If Zahl7 in (27,28) Then Begin
    Zahl5 := Zahlen [Zahl7,0];
    Zahl6 := Zahlen [Zahl7,1];
    Zahl7 := Zahlen [Zahl7,2];
    Zahl8 := Zahlen [Zahl7,3];
  End;
end;
Bei den Zahlen handelt es sich ja um Konstanten und daher sollten sie auch entsprechend deklariert werden.

Garfield 14. Okt 2007 17:03

Re: wiederholungen zusammenfassen?
 
Zitat:

Zitat von PaddyMu
nein case kann ich mehr oder whniger^^ (habs mir selbst beigebracht)
wo deklariere ich denn "eintragen"?

Am besten unter private des Formulars. Dann muss bei der Procedure vor dem Namen noch der Klassenname eingetragen werden.

Zitat:

Zitat von alzaimar
Bei den Zahlen handelt es sich ja um Konstanten und daher sollten sie auch entsprechend deklariert werden.

Sieht fast so aus.

PaddyMu 14. Okt 2007 17:27

Re: wiederholungen zusammenfassen?
 
Zitat:

Zitat von Garfield
Zitat:

Zitat von PaddyMu
nein case kann ich mehr oder whniger^^ (habs mir selbst beigebracht)
wo deklariere ich denn "eintragen"?

Am besten unter private des Formulars. Dann muss bei der Procedure vor dem Namen noch der Klassenname eingetragen werden.

der klassenname? also was das ist?
kommt der in
Delphi-Quellcode:
var
rein?
wenn nicht..sorry bin wirklich neu^^

DeddyH 14. Okt 2007 17:46

Re: wiederholungen zusammenfassen?
 
Delphi-Quellcode:
type TFormBlubb = class(TForm)
  ...
  private
    procedure Machwas;
  ...
 end;

procedure TFormBlubb.Machwas; //hier den Klassennamen (TFormBlubb) davorschreiben
begin
  ...
end;

Garfield 14. Okt 2007 17:55

Re: wiederholungen zusammenfassen?
 
Zitat:

Zitat von PaddyMu
wenn nicht..sorry bin wirklich neu^^

Vielleicht solltest Du Dir erst einmal ein Buch ansehen. Zum Beispiel Delphi für Kids? :wink:

SaFu 14. Okt 2007 17:56

Re: wiederholungen zusammenfassen?
 
Deshalb habe ich doch gesagt er soll es ertmal mit einer einfachen Procedure versuchen :warn:

Ich merke ja was ich immer für Probleme habe

PaddyMu 15. Okt 2007 08:50

Re: wiederholungen zusammenfassen?
 
habt ja irgendwo recht :-D aber sonst lerne ich es nie...
Zitat:

Zitat von DeddyH
Delphi-Quellcode:
type TFormBlubb = class(TForm)
  ...
  private
    procedure Machwas;
  ...
 end;

procedure TFormBlubb.Machwas; //hier den Klassennamen (TFormBlubb) davorschreiben
begin
  ...
end;


das habe ich jetzt gemacht
Delphi-Quellcode:
   private
    { Private-Deklarationen }
   procedure Eintragen(Neue5, Neue6, Neue7, Neue8:integer);
.
.
.
procedure TForm1.Btn1Click(Sender: TObject);
          TForm1.Eintragen(Neue5, Neue6, Neue7, Neue8: integer);// und hier liegt 100% mein fehler...
er findet die anweisung TForm1 nich(die von tform1.Eintragen). Muss ich das als komplett neue anweisung schreiben?

mkinzler 15. Okt 2007 08:52

Re: wiederholungen zusammenfassen?
 
Delphi-Quellcode:
procedure TForm1.Eintragen(Neue5, Neue6, Neue7, Neue8: integer);

PaddyMu 15. Okt 2007 10:52

Re: wiederholungen zusammenfassen?
 
nein selbst wenn ich oben und unten TForm1 davorschreibe sagt er mir oben (bei private)
Zitat:

undefinierter bezeichner
und unten
Zitat:

unbekannte anwendung'TForm1'

DeddyH 15. Okt 2007 11:03

Re: wiederholungen zusammenfassen?
 
Du darfst (und musst) den Klassennamen nur "unten" (unter implementation) davorschreiben.

PaddyMu 15. Okt 2007 11:48

Re: wiederholungen zusammenfassen?
 
jetzt ist zumindist oben das schonmal weg.. aber er sagt mir unten bei dem TForm immer noch
Zitat:

Unbekannte anweisung TForm1
ich habe das direkt unter das procedure Btn1.klick geschrieben wie ich es oben angegeben habe.. stimmt das ?

DeddyH 15. Okt 2007 12:42

Re: wiederholungen zusammenfassen?
 
Zeig doch mal Deinen Source.

pilic 15. Okt 2007 12:55

Re: wiederholungen zusammenfassen?
 
Delphi-Quellcode:
procedure TForm1.Button1Click(...);
var
  i,j,k,l: Integer;
begin
  ...
  DeineProcedure(i,j,k,l);
  ...
end;

procedure TForn1.DeineProcedure(Zahl1,Zahl2,Zahl3,Zahl4: Integer);
begin
  ...
end;
Du rufst die Procedure "DeineProcedure" in der Procedure "Button1Click" auf.

Edit: Dein Ziel ist ja die Anzahl der Zeilen zu reduzieren. Deswegen lagert man die Prozeduren ja aus.

PaddyMu 15. Okt 2007 13:56

Re: wiederholungen zusammenfassen?
 
hier der delphi text^^
Delphi-Quellcode:
vielleicht ists jetzt besser^^

DeddyH 15. Okt 2007 14:22

Re: wiederholungen zusammenfassen?
 
Im implementation-Teil:
Delphi-Quellcode:
procedure TForm1.Btn1Click(Sender: TObject);        
begin
  //hier der Code von Btn1Click
end;

procedure TForm1.Eintragen(Neue5, Neue6, Neue7, Neue8: integer);
begin
  //hier der Code von Eintragen
end;

PaddyMu 15. Okt 2007 14:51

Re: wiederholungen zusammenfassen?
 
so läufts durch aber es erscheint bei '8' nichts neues es bleibt einfach das drin stehn was schon drin steht..

Garfield 15. Okt 2007 16:54

Re: wiederholungen zusammenfassen?
 
Delphi-Quellcode:
   private
    { Private-Deklarationen }
    Zahl1, Zahl2, Zahl3, Zahl4, Zahl5, Zahl6, Zahl7, Zahl8, Zahl9, Zahl10,
    Zahl11, Zahl12, Zahl13, Zahl14, Zahl15, Zahl16, Zahl17: integer;
    Zwischenzahl:integer;
    Minuszahl:integer;
    Laenge:integer;
    ClipbrdText:string;
    Text1:string;
    procedure Eintragen(Neue5, Neue6, Neue7, Neue8:integer);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

procedure TForm1.Eintragen(Neue5, Neue6, Neue7, Neue8: integer);
begin
  Zahl5:=Neue5;
  Zahl6:=Neue6;
  Zahl7:=Neue7;
  Zahl8:=Neue8;
end;

procedure TForm1.Btn1Click(Sender: TObject);
begin
  if Edit1.Text <> '' then Zahl1:=StrToInt(Edit1.Text);
  if Edit2.Text <> '' then Zahl2:=StrToInt(Edit2.Text);
  if Edit3.Text <> '' then Zahl3:=StrToInt(Edit3.Text);
  if Edit4.Text <> '' then Zahl4:=StrToInt(Edit4.Text);
  if Edit5.Text <> '' then Zahl5:=StrToInt(Edit5.Text);
  if Edit6.Text <> '' then Zahl6:=StrToInt(Edit6.Text);
  if Edit7.Text <> '' then Zahl7:=StrToInt(Edit7.Text);
  if Edit8.Text <> '' then Zahl8:=StrToInt(Edit8.Text);
  if Edit9.Text <> '' then Zahl9:=StrToInt(Edit9.Text);
  if Edit10.Text <> '' then Zahl10:=StrToInt(Edit10.Text);
  if Edit11.Text <> '' then Zahl11:=StrToInt(Edit11.Text);
  if Edit12.Text <> '' then Zahl12:=StrToInt(Edit12.Text);
  if Edit13.Text <> '' then Zahl13:=StrToInt(Edit13.Text);
  if Edit14.Text <> '' then Zahl14:=StrToInt(Edit14.Text);
  if Edit15.Text <> '' then Zahl15:=StrToInt(Edit15.Text);
  if Edit16.Text <> '' then Zahl16:=StrToInt(Edit16.Text);
  if Edit17.Text <> '' then Zahl17:=StrToInt(Edit17.Text);

  Case Zahl17 of
     8 : Eintragen(255, 0, 0, 0);
     9 : Eintragen(255, 128, 0, 0);
    10 : Eintragen(255, 192, 0, 0);
    11 : Eintragen(255, 224, 0, 0);
    12 : Eintragen(255, 240, 0, 0);
    13 : Eintragen(255, 248, 0, 0);
  end;
end;
Zitat:

Zitat von PaddyMu
so läufts durch aber es erscheint bei '8' nichts neues es bleibt einfach das drin stehn was schon drin steht..

Logisch, was meinst Du was die geschweiften Klammern bedeuten?

:gruebel: Erinnert mich an Tuvok (hat Fragen in Videoforen gestellt).

PaddyMu 16. Okt 2007 07:47

Re: wiederholungen zusammenfassen?
 
ah wnderbar nun hab ichs auch verstanden :-D
DANKE!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 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