Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Problem mit combobox (https://www.delphipraxis.net/93685-problem-mit-combobox.html)

Hildip 9. Jun 2007 14:38


Problem mit combobox
 
Hallo Delphi-Praxis User

hab ein kleines problem, und zwar hab ich programm code hinter ein Combobox hinterlegt.

Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
Var I:Integer;
begin
case ComboBox1.ItemIndex of
  0: begin
        ClearDigitalChannel(1);
        Progressbar2.Min:=0;
        Progressbar2.Max:=100000;
        for I:=0 to 100000-1 do
        begin
          Progressbar2.Position:=I;
        end;
        Case Combobox2.ItemIndex of
        0: begin
              BG.Picture.Bitmap.LoadFromFile('WinCC Tunnelprojektierung_bearbeitet.bmp');
            end;
        1: begin
              BG.Picture.Bitmap.LoadFromFile('WinCC Tunnelprojektierung_Weströhre.bmp');
            end;
        else
        begin
          BG.Picture.Bitmap.LoadFromFile('WinCC Tunnelprojektierung_Weströhre.bmp');
        end;
        end;
      end;
  1: begin
... usw.

nun will ich mit einem butten deisen code aufrufen.

doch leider weiß ich nicht wie.

Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
begin
  Case ProgressBar3.Position of
  0: Begin
        Button4.Click;
      end;
  2: Begin
        ComboBox1.ItemIndex:=1; //wenn ich das mach setzt er nur den wert, also in dem fall auf aus. Aber führt nicht die aktionen aus die ich hoben hab.
        ComboBox2.ItemIndex:=1;
      end;
... usw.

Warum das alles? Will von hand steuern aber auch einen automatisierten ablauf haben.

hoffe ihr versteht was ich meine...

Danke

mfg hildi

mkinzler 9. Jun 2007 14:42

Re: Problem mit combobox
 
Delphi-Quellcode:
Button4.Click( Nil);

Hildip 9. Jun 2007 14:45

Re: Problem mit combobox
 
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
begin
  Case ProgressBar3.Position of
  0: Begin
        Button4.Click;  //Funktioniert
      end;
  2: Begin
        ComboBox1.ItemIndex:=1; //wenn ich das mach setzt er nur den wert, also in dem fall auf aus. Aber führt nicht die aktionen aus die ich hoben hab.
        ComboBox2.ItemIndex:=1;
      end;
Aber leider war das keine antwort auf meine frage...

Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
Var I:Integer;
begin
case ComboBox1.ItemIndex of
  0: begin
        ClearDigitalChannel(1);
        Progressbar2.Min:=0;
        Progressbar2.Max:=100000;
        for I:=0 to 100000-1 do
        begin
          Progressbar2.Position:=I;
        end;
        Case Combobox2.ItemIndex of
        0: begin
              BG.Picture.Bitmap.LoadFromFile('WinCC Tunnelprojektierung_bearbeitet.bmp');
            end;
        1: begin
              BG.Picture.Bitmap.LoadFromFile('WinCC Tunnelprojektierung_Weströhre.bmp');
            end;
        else
        begin
          BG.Picture.Bitmap.LoadFromFile('WinCC Tunnelprojektierung_Weströhre.bmp');
        end;
        end;
      end;
  1: begin
gedacht war das ich diesen teil mit

ComboBox2.ItemIndex:=1;
ausführ aber das geht nicht.

Klaus01 9. Jun 2007 14:46

Re: Problem mit combobox
 
Hallo,

trifft das vielleicht bei Dir zu?

Zitat:

Zitat von Delphi Hilfe
property OnChange: TNotifyEvent;

Description

Write an OnChange event handler to take specific action immediately after the text of the combo box changes. This event occurs when the user types a new value directly into the edit region, or when the user selects a new item from the drop-down list. The Text property gives the new value.

Note: The OnChange event does not occur when Style is set to csDropDownList. Use OnSelect instead.
Note: OnChange only occurs in response to user actions. Changing the Text property programmatically does not trigger an OnChange event.

Grüße
Klaus

Hildip 9. Jun 2007 15:24

Re: Problem mit combobox
 
Wie genau setzt ich dieses on change ein? bin en programier noob.

inherited 9. Jun 2007 15:35

Re: Problem mit combobox
 
Lies dir das Dickgedruckte durch

Luckie 9. Jun 2007 16:05

Re: Problem mit combobox
 
Pack den Code aus der Combobox in eine eignen Prozedur und rufe diese Im OnChange der Combobox und im OnClick Ereignis der Schaltfläche auf.

Klaus01 9. Jun 2007 16:16

Re: Problem mit combobox
 
Nun, in dem fett gedruckten steht nichts anderes als, daß das onChange Ereignis
nur dann ausgelöst wird, wenn eine User/Benutzer etwas in der ComboBox ändert.

Wenn Du aus Deinem Programm aus den Index änderst, wird das Ereignis nicht ausglöst.

Vielleicht solltest Du dahingehend Dein Programmdesign einmal überdenken.
Vielleicht so, daß Du die Aufgaben die in der OnChange Procedure definiert sind auslagerst
in eine separate Procedure:

Delphi-Quellcode:
procedure TForm1.TuWas(Index1,Index2:Integer);
Var I:Integer;
begin
case Index1 of
  0: begin
        ClearDigitalChannel(1);
        Progressbar2.Min:=0;
        Progressbar2.Max:=100000;
        for I:=0 to 100000-1 do
        begin
          Progressbar2.Position:=I;
        end;
        Case Index2 of
        0: begin
              BG.Picture.Bitmap.LoadFromFile('WinCC Tunnelprojektierung_bearbeitet.bmp');
            end;
        1: begin
              BG.Picture.Bitmap.LoadFromFile('WinCC Tunnelprojektierung_Weströhre.bmp');
            end;
        else
        begin
          BG.Picture.Bitmap.LoadFromFile('WinCC Tunnelprojektierung_Weströhre.bmp');
        end;
        end;
      end;
  1: begin
...

Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  tuWas((sender as TComboBox).ItemIndex,ComboBox2.ItemIndex);
end;
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
begin
  Case ProgressBar3.Position of
  0: Begin
        Button4.Click;
      end;
  2: Begin
        ComboBox1.ItemIndex:=1;
        TuWas(ComboBox1.ItemIndex,ComboBox2.ItemIndex);
        ComboBox2.ItemIndex:=1;
        TuWas(ComboBox1.ItemIndex,ComboBox2.ItemIndex);

      end;
Ist nicht das Gelbe vom Ei, aber ein Ansatz wie es anders gemacht werden könnte.



Grüße
Klaus

Gremlin 9. Jun 2007 16:22

Re: Problem mit combobox
 
Wenn du den Code ausführen möchtest, der beim Ändern der ComboBox ausgeführt wird, dann ruf diesen doch einfach von Hand auf oder hab ich jetzt etwas übersehen?


Delphi-Quellcode:

procedure TForm1.Button6Click(Sender: TObject);
begin
  Case ProgressBar3.Position of
  0: Begin
        Button4.Click;
      end;
  2: Begin
        ComboBox1.ItemIndex:=1;
        ComboBox1Change(Sender); // oder ComboBox1Change(nil) wenn unwichtig.
        ComboBox2.ItemIndex:=1;
      end;

DP-Maintenance 9. Jun 2007 21:13

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr.
Seite 1 von 2  1 2      

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