AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Logisches problem

Ein Thema von SaFu · begonnen am 27. Jan 2007 · letzter Beitrag vom 28. Jan 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#11

Re: Logisches problem

  Alt 27. Jan 2007, 15:09
Wenn

ComboBox4.Items.IndexOf(ComboBox4.Text) = 1 Then

dann den Rest ausfüren, ansonsten

Combobox4.Items.Add(ComboBox4.Text);

und dann erst den Rest ausfüren.

Danke nochmal für die Tips
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#12

Re: Logisches problem

  Alt 27. Jan 2007, 15:26
Zitat von fuknersascha:
ComboBox4.Items.IndexOf(ComboBox4.Text) = 1 Then
Achtung! Wenn der Text an 1. oder 3. Stelle ist, dann funzt es nicht mehr
überprüfe einfach ob es <> -1 ist
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#13

Re: Logisches problem

  Alt 27. Jan 2007, 15:28
Hallo Sascha,

Zitat:
Aber ich glaube #6 ist auch nicht so ganz richtig
Das stimmt, Der_Unwissende hat einen kleinen Fehler eingebaut und damit deine Liste Vertrpl etwas durcheinander gebracht:

Delphi-Quellcode:
for x:= 0 to StringGrid1.ColCount-1 do
begin
  for y:= 0 to StringGrid1.RowCount-1 do
  begin
    Vertrpl.Add(StringGrid1.Cells[x,y]);
  end;
// Vertrpl.Add(IntToStr(StringGrid1.ColWidths[x])); // diese Zeile löschen
// Vertrpl.Add(IntToStr(StringGrid1.RowHeights[x])); // diese Zeile löschen
end;

for x:= 0 to StringGrid1.ColCount-1 do // diese Zeilen einfügen
  Vertrpl.Add(IntToStr(StringGrid1.ColWidths[x])); // (von _x_ abhängig!)

for y:= 0 to StringGrid1.RowCount-1 do // diese Zeilen einfügen
  Vertrpl.Add(IntToStr(StringGrid1.RowHeights[y])); // (von _y_ abhängig!)
In Fabians Code aus Beitrag #10 ist der Fehler nicht enthalten.

//Edit: auch die x-Schleife muß raus, sonst stimmt die Reihenfolge nicht!

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#14

Re: Logisches problem

  Alt 27. Jan 2007, 17:26


Ich glaub jetzt bin ich total verwirt
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#15

Re: Logisches problem

  Alt 27. Jan 2007, 17:42
Sorry für die Verwirrung, ich versuche das mal zu erklären.

Das war dein Originalcode:

Delphi-Quellcode:
for x:= 0 to StringGrid1.ColCount-1 do
for y:= 0 to StringGrid1.RowCount-1 do
Vertrpl.Add(StringGrid1.Cells[x,y]);
for x:= 0 to StringGrid1.ColCount-1 do
Vertrpl.Add(IntToStr(StringGrid1.ColWidths[x]));
for x:= 0 to StringGrid1.RowCount-1 do
Vertrpl.Add(IntToStr(StringGrid1.RowHeights[x]));
Du speicherst zunächst alle Zellen des Stringgrids ab, danach alle Spaltenbreiten und dann alle Zeilenhöhen.
Bei Formatieren deines Codes wurde folgendes daraus (Beitrag #6):

Delphi-Quellcode:
for x:= 0 to StringGrid1.ColCount-1 do
begin
  for y:= 0 to StringGrid1.RowCount-1 do
  begin
    Vertrpl.Add(StringGrid1.Cells[x,y]);
  end; // for y:= 0 to StringGrid1.RowCount-1

  Vertrpl.Add(IntToStr(StringGrid1.ColWidths[x]));
  Vertrpl.Add(IntToStr(StringGrid1.RowHeights[x]));
end; // for x:= 0 to StringGrid1.ColCount-1
Fehler 1: Es werden nun nicht mehr RowCount Zeilenhöhen gespeichert sondern ColCount.
Fehler 2: Durch das Verlagern in die x-Schleife werden die Spaltenbreiten und Zeilenhöhen in die Zellendaten eingestreut. Nachdem jeder Spalte des Stringgrids folgt eine Spaltenbreite und darauf eine Zeilenhöhe.

In meinem Beitrag #13 habe ich versucht, das zu korrigieren. Aber wie das mit der 13 so ist, ich habe einen Fehler übersehen und später meinen eigenen Beitrag überarbeitet. Fabian hat in Beitrag #10 deinen Code ebenfalls formatiert aber dabei die Schleifenstruktur nicht geändert. Deshalb hat sich dort der Fehler nicht eingeschlichen.

Sind nun alle Klarheiten beseitigt?

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: Logisches problem

  Alt 27. Jan 2007, 17:53
Naja das war ja vorher nicht das Problem das Speichern hat gut Funktioniert.

Das Problem war die Abfrage am Anfang, was immernoch nicht funkioniert.

Ich ja ich habe mich selber total verwirt
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#17

Re: Logisches problem

  Alt 27. Jan 2007, 18:01
Delphi-Quellcode:
 
if not ComboBox4.Items.IndexOf(ComboBox4.Text)> -1 Then
  begin
    Combobox4.Items.Add(ComboBox4.Text);
  end;
end
Vielleicht so?

Delphi-Quellcode:
if ComboBox4.Items.IndexOf(ComboBox4.Text) <= -1 Then
  begin
    Combobox4.Items.Add(ComboBox4.Text);
  end;
oder so:
Delphi-Quellcode:
if not (ComboBox4.Items.IndexOf(ComboBox4.Text) > -1) Then
  begin
    Combobox4.Items.Add(ComboBox4.Text);
  end;

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#18

Re: Logisches problem

  Alt 28. Jan 2007, 11:53
Hi...

Vielleicht ganz ersichtlich:
Deiner:
Delphi-Quellcode:
 
if not ComboBox4.Items.IndexOf(ComboBox4.Text)> -1 Then
begin
  Combobox4.Items.Add(ComboBox4.Text);
end;
Pseudocode:
Code:
falls Position In Den Items Der ComboBox4 "nicht vorhanden" ist dann
  Füge Item mit dem Text der ComboBox4 hinzu
Und das jetzt zu Delphi:
Delphi-Quellcode:
 
if ComboBox4.Items.IndexOf(ComboBox4.Text) = -1 then // Wenn ".IndexOf" "-1" ergibt, dann ist der Eintrag nicht vorhanden
begin
  Combobox4.Items.Add(ComboBox4.Text); // Füge ein Item hinzu (Hinweis: Wenn du es machst, während man den Text ändert, dann erstellt er ständig neue Einträge)
end;
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 13:23 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