AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Combobox, morgen Prüfung kleine Frage
Thema durchsuchen
Ansicht
Themen-Optionen

Combobox, morgen Prüfung kleine Frage

Ein Thema von Bamer · begonnen am 12. Mai 2014 · letzter Beitrag vom 13. Mai 2014
Antwort Antwort
Bamer

Registriert seit: 29. Nov 2012
Ort: Pforzheim
5 Beiträge
 
Delphi 7 Personal
 
#1

Combobox, morgen Prüfung kleine Frage

  Alt 12. Mai 2014, 22:36
Gelöst
E: Wenn mir jemand sagen könnte wieso ich das hinzufügen müsste würd ich mich freuen.

Controls in uses hinzufügen
self.Parent := AOwner as TWinControl; nach create von der Combobox im Constructor
Guten Tag,

ich hoffe ich bin hier im richtigen Forum, wenn nicht dann entschuldige ich mich dafür.
Ich habe eine wichtige Frage und bin hier am verzweifeln.
Wenn ich mein Programm starte kommt ein Fehler weiss jemand wieso?
Ich möchte in die Combobox mein Array einfügen.
Delphi-Quellcode:
unit DecodeU;

interface
uses ExtCtrls, Classes, StdCtrls, Controls ;



type TDecode=class(TPanel)

private
  Ring1:TCombobox;
 // Ring2:TCombobox;
 // Ring3:TCombobox;
 // Ring4:TCombobox;
 zahl:integer;
{-Wert1: array[0..9] of integer = (0,1,2,3,4,5,6,7,8,9);
  FarbString2: array[0..9] of String = ('schwarz','braun','rot','orange','gelb','grün','blau','violett','grau','weiß');
  Wert2: array[0..9] of integer = (0,1,2,3,4,5,6,7,8,9);
  FarbString3: array[0..11] of String = ('silber','gold','schwarz','braun','rot','orange','gelb','grün','blau','violett','grau','weiß');
  Wert3: array[0..11] of integer = (0.01,0.1,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000);
  FarbString4: array[0..11] of String = ('keine','silber','gold','schwarz','braun','rot','orange','gelb','grün','blau','violett','grau');
  Wert4: array[0..11] of integer = (20,10,5,0,1,2,0,0,0.50,0.25,0.10,0.05); -}

public
  constructor Create(AOwner:TComponent); override;
end;
const FarbString1: array[0..9] of String = ('---','braun','rot','orange','gelb','grün','blau','violett','grau','weiß');
         Wert1: array[0..9] of integer = (0,1,2,3,4,5,6,7,8,9);
implementation

{ TDecode }

constructor TDecode.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  width:=600;
  height:=200;
  Ring1:= TCombobox.create(self);
  self.Parent := AOwner as TWinControl;
  Ring1.Parent := Self;
  Ring1.width:=100;
  Ring1.top:=100;
  Ring1.left:=100;
  Ring1.Items.Add(FarbString1[0]); <---- Fehler : Project mainP.exe raised exception class EInvalidOperation with message 'COntrol " has no parent window'. Proxess stopped. Use Step
                                               or Run to continue.
end;

end.
Da wo der Fehler kommt habe ich schon einiges Versucht aber keiner hat geklappt könnte mir jmd die Rätels Lösung zeigen?

Danke im Vorraus!

LG Bamer
Mathias

Geändert von Bamer (12. Mai 2014 um 23:21 Uhr) Grund: gelöst
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Combobox, morgen Prüfung kleine Frage

  Alt 12. Mai 2014, 22:54
Editiere das und ändere CODE-Tags in DELPHI-Tags (Schaler "Erweitert"), dann kann den Code leichter lesen (ich zumindest).
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#3

AW: Combobox, morgen Prüfung kleine Frage

  Alt 12. Mai 2014, 22:58
Hallo,

und ein herzliches Willkommen in der DP.

Zitat:
Ich möchte in die Combobox mein Array einfügen.
Was Du versuchst funktioniert nicht (Combobox.Items.Add fügt einen string aber kein array der Liste hinzu siehe auch OH).

Du kannst folgendes machen:
Delphi-Quellcode:
constructor TDecode.Create(AOwner: TComponent);
var
  i : Integer;
begin
  inherited Create(AOwner);
  width:=600;
  height:=200;
  Ring1:= TCombobox.create(self);
  Ring1.Parent := Self;
  Ring1.width:=100;
  Ring1.top:=100;
  Ring1.left:=100;
  for i := 0 to High (FarbString1) do
    Ring1.Items.Add(FarbString1 [i]);
end;
Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Bamer

Registriert seit: 29. Nov 2012
Ort: Pforzheim
5 Beiträge
 
Delphi 7 Personal
 
#4

AW: Combobox, morgen Prüfung kleine Frage

  Alt 12. Mai 2014, 23:25
Vielen Vielen Dank. Ich stoße grade auf mein zweites Problem

Delphi-Quellcode:
unit DecodeU;

interface
uses ExtCtrls, Classes, StdCtrls, Controls;



type TDecode=class(TPanel)

private
  Ring1:TCombobox;
  Ring2:TCombobox;
  Ring3:TCombobox;
  Ring4:TCombobox;
  Ausgabe:TLabel;


public
  constructor Create(AOwner:TComponent); override;
end;
const FarbString1: array[0..9] of String = ('---','braun','rot','orange','gelb','grün','blau','violett','grau','weiß');
         Wert1: array[0..9] of integer = (0,1,2,3,4,5,6,7,8,9);
         FarbString2: array[0..9] of String = ('schwarz','braun','rot','orange','gelb','grün','blau','violett','grau','weiß');
         Wert2: array[0..9] of integer = (0,1,2,3,4,5,6,7,8,9);
         FarbString3: array[0..11] of String = ('silber','gold','schwarz','braun','rot','orange','gelb','grün','blau','violett','grau','weiß');
         Wert3: array[0..11] of double = (0.01,0.1,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000);
         FarbString4: array[0..11] of String = ('keine','silber','gold','schwarz','braun','rot','orange','gelb','grün','blau','violett','grau');
         Wert4: array[0..11] of double = (20,10,5,0,1,2,0,0,0.50,0.25,0.10,0.05);
implementation

{ TDecode }

constructor TDecode.Create(AOwner: TComponent);
var
  i:integer;
begin
  inherited Create(AOwner);
  width:=600;
  height:=200;

  Ring1:= TCombobox.create(self);
  Ring2:= TCombobox.create(self);
  Ring3:= TCombobox.create(self);
  Ring4:= TCombobox.create(self);

  self.Parent := AOwner as TWinControl;

  Ring1.Parent := Self;
  Ring1.width:=100;
  Ring1.top:=50;
  Ring1.left:=10;

  Ring2.Parent := Self;
  Ring2.width:=100;
  Ring2.top:=50;
  Ring2.left:=120;

  Ring3.Parent := Self;
  Ring3.width:=100;
  Ring3.top:=50;
  Ring3.left:=230;

  Ring4.Parent := Self;
  Ring4.width:=100;
  Ring4.top:=50;
  Ring4.left:=340;

  for i:=0 to 11 do
  begin
    if i<=9 then
    begin
      Ring1.Items.Add(FarbString1[i]);
      Ring2.Items.Add(FarbString2[i]);
    end;
    Ring3.Items.Add(FarbString3[i]);
    Ring4.Items.Add(FarbString4[i]);
  end;

  Ausgabe:= TLabel.create(self);
  Ausgabe.Parent := Self;
  Ausgabe.width:=350;
  Ausgabe.top:=150;
  Ausgabe.left:=150;
  Ausgabe.caption:=('Bitte geben sie ihren Widerstand ein');

end;


end.
Weiss jemand wie ich eine onChange Funktion mache? Also ich vermute das ist dashier
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin

end;

end.
Aber füge ich bei TForm TDecode und ändere Combobox1 in Ring1 bekomme ich ein Fehler. Weiß jemand wie das genau geht?
Ich versuche es grade neben bei auch zu googeln, aber ich weiss nicht mal nach was ich genau googeln soll. :s

Vielen Dank für eure schnelle Antwort auf mein letzten Beitrag.

Ich habs gefunden sobald ich es fertig habe werde ich es posten, damit es evtl anderen Usern hilft

LG Bamer
Mathias

Geändert von Bamer (12. Mai 2014 um 23:41 Uhr)
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#5

AW: Combobox, morgen Prüfung kleine Frage

  Alt 12. Mai 2014, 23:42
Hallo,

Zitat:
Für eine Alternative Idee wäre ich auch zufrieden
Kann ich Dir leider nicht anbieten, da die Informationslage das nicht hergibt.
Zitat:
Weiss jemand wie ich eine onChange Funktion mache?
Vielleicht so (nur das Wesentliche):
Delphi-Quellcode:
type
  TDecode = class (TPanel)
    private
      procedure Ring1Change (Sender : TObject);
  end;

procedure TDecode.Ring1Change (Sender : TObject);
begin
  // Do what ever you want
end;

constructor TDecode.Create(AOwner: TComponent);
begin
  Ring1:= TCombobox.Create (self);
  Ring1.OnChange := Ring1Change
end;
Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Bamer

Registriert seit: 29. Nov 2012
Ort: Pforzheim
5 Beiträge
 
Delphi 7 Personal
 
#6

AW: Combobox, morgen Prüfung kleine Frage

  Alt 13. Mai 2014, 00:07
Vielen Dank für deine Hilfe Volker Z.
Ich stelle hier nochmal meinen ganzen Quellcode zur Verfügung wer vielleicht das ein oder andere darauf braucht.
Delphi-Quellcode:
unit DecodeU;

interface
uses Windows, Messages, SysUtils, Variants, Graphics, Forms,
  Dialogs, ExtCtrls, Classes, StdCtrls, Controls;



type TDecode=class(TPanel)

private
  Ring1:TCombobox;
  Ring2:TCombobox;
  Ring3:TCombobox;
  Ring4:TCombobox;
  Ausgabe:TLabel;
protected
  procedure myChange(Sender: TObject);
public
  constructor Create(AOwner:TComponent); override;
end;
const FarbString1: array[0..9] of String = ('---','braun','rot','orange','gelb','grün','blau','violett','grau','weiß');
         Wert1: array[0..9] of integer = (0,1,2,3,4,5,6,7,8,9);
         FarbString2: array[0..9] of String = ('schwarz','braun','rot','orange','gelb','grün','blau','violett','grau','weiß');
         Wert2: array[0..9] of integer = (0,10,20,30,40,50,60,70,80,90);
         FarbString3: array[0..11] of String = ('silber','gold','schwarz','braun','rot','orange','gelb','grün','blau','violett','grau','weiß');
         Wert3: array[0..11] of double = (0.01,0.1,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000);
         FarbString4: array[0..11] of String = ('keine','silber','gold','schwarz','braun','rot','orange','gelb','grün','blau','violett','grau');
         Wert4: array[0..11] of double = (20,10,5,0,1,2,0,0,0.50,0.25,0.10,0.05);
implementation

{ TDecode }

constructor TDecode.Create(AOwner: TComponent);
var
  i:integer;
begin
  inherited Create(AOwner);
  width:=600;
  height:=200;

  Ring1:= TCombobox.create(self);
  Ring2:= TCombobox.create(self);
  Ring3:= TCombobox.create(self);
  Ring4:= TCombobox.create(self);

  self.Parent := AOwner as TWinControl;

  Ring1.Parent := Self;
  Ring1.width:=100;
  Ring1.top:=50;
  Ring1.left:=10;

  Ring2.Parent := Self;
  Ring2.width:=100;
  Ring2.top:=50;
  Ring2.left:=120;

  Ring3.Parent := Self;
  Ring3.width:=100;
  Ring3.top:=50;
  Ring3.left:=230;

  Ring4.Parent := Self;
  Ring4.width:=100;
  Ring4.top:=50;
  Ring4.left:=340;

  for i:=0 to 11 do
  begin
    if i<=9 then
    begin
      Ring1.Items.Add(FarbString1[i]);
      Ring2.Items.Add(FarbString2[i]);
    end;
    Ring3.Items.Add(FarbString3[i]);
    Ring4.Items.Add(FarbString4[i]);
  end;
  Ausgabe:= TLabel.create(self);
  Ausgabe.Parent := Self;
  Ausgabe.width:=350;
  Ausgabe.top:=150;
  Ausgabe.left:=150;

  ring1.ItemIndex := 0;
  ring2.ItemIndex := 1;
  ring3.ItemIndex := 2;
  ring4.ItemIndex := 1;

  ring1.OnChange := myChange;
  ring2.OnChange := myChange;
  ring3.OnChange := myChange;
  ring4.OnChange := myChange;
end;



procedure TDecode.myChange(Sender: TObject);
var
zwischenzahl:double;
begin
  zwischenzahl:= (Wert1[ring1.ItemIndex] + Wert2[ring2.ItemIndex]) * Wert3[ring3.ItemIndex];


  Ausgabe.Caption:=(FormatFloat('0.00',zwischenzahl) + ' Ohm Toleranz:'+ (FloatToStr (Wert4[ring4.ItemIndex]))+'%');
end;

end.
PS: Leider gibts kein Thank you Button

LG Bamer
Mathias
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:30 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