AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Edit-Komponenten zur Laufzeit die Hintergrundfarbe ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Edit-Komponenten zur Laufzeit die Hintergrundfarbe ändern

Ein Thema von Ameisenbär · begonnen am 5. Apr 2005 · letzter Beitrag vom 6. Apr 2005
Antwort Antwort
Ameisenbär

Registriert seit: 21. Okt 2004
6 Beiträge
 
#1

Edit-Komponenten zur Laufzeit die Hintergrundfarbe ändern

  Alt 5. Apr 2005, 18:47
Hab schon gesucht, aber eben nichts gefunden, was meinem Problem weiterhelfen könnte. Vielleicht hat ja hier jemand eine Idee, wie man das lösen könnte.

Problem:
Ich habe ca 200 Edit-Felder, in die verschiedene Werte eingetragen werden. Diese sind in als Matrix angeordnet. Nun werden diese Werte miteinander verglichen. Wenn nun 2 oder mehr Werte in einer Spalte identisch sind, sollen die Hintergründe auf eine bestimmte Farbe gesetzt werden. Das Problem ist nicht die Nummern der Edit-Feldern herauszufinden, diese kann ich mir anhand des Arrays, in dem die Werte zum vergleichen und rechnen gespeichert sind, errechnen. Nur wie kann ich dann gezielt die 2 oder mehr Edit-Felder ansprechen?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Edit-Komponenten zur Laufzeit die Hintergrundfarbe änder

  Alt 5. Apr 2005, 18:55
Moin Ameisenbär,

Du kannst Dir doch einfach die in Frage kommenden Edits ein einer Liste Speichern, z.B. vom Typ TObjectList, TList oder einem davon abgeleiteten Typ.

[EDIT]
Wobei ich mich frage, ob für die genannte Anwendung ein StringGrid evtl. sinnvoller wäre.
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Ameisenbär

Registriert seit: 21. Okt 2004
6 Beiträge
 
#3

Re: Edit-Komponenten zur Laufzeit die Hintergrundfarbe änder

  Alt 5. Apr 2005, 19:00
hm.. die Idee mit der Liste ist gut (Hatte ich in Java schon desöfteren, nur bin ich net auf die Idee gekommen es hier auch zu machen). In Frage kommen leider alle Komponenten, aber mit Copy und Paste geht das mim eintragen ja.
Mit StringGrids haut das ganze nicht hin.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Edit-Komponenten zur Laufzeit die Hintergrundfarbe änder

  Alt 5. Apr 2005, 19:16
Moin Ameisenbär,

mit den "in Frage kommenden Komponenten" meine ich die, bei denen die Werte übereinstimmen.


Zitat von Ameisenbär:
aber mit Copy und Paste geht das mim eintragen ja.
was meinst Du damit

Mir ist das Ganze Problem auch noch nicht so ganz klar geworden, denn sobald Du eine Übereinstimmung hast, kannst Du die Farbe ja genau bei den betreffenden setzen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Ameisenbär

Registriert seit: 21. Okt 2004
6 Beiträge
 
#5

Re: Edit-Komponenten zur Laufzeit die Hintergrundfarbe änder

  Alt 5. Apr 2005, 19:32
Beim Start des Programms muss ich also in die Liste alle Edit-Komponenten nacheinander eintragen, da der Vergleich während der Laufzeit öfters vorkommt. deswegen Copy und Paste. dann hab ich halt ca 200 Zeilen fürs eintragen in die Liste.
Hab mir das mit dem StringGrid nocheinmal angeschaut. könnte vielleicht doch gehen. Brauche dann eben 3 von denen, weil die Edit-Komponenten in 3 großen Matrizen aufgeteilt sind. Damit bräuchte ich aber mir die Nummer der Edit-Komponente nicht zu berechnen, sondern könnte genau die Array-Werte, die ich zum vergleichen nehme, verwenden.

Um das Problem nocheinmal etwas ausführlicher zu schildern: Ich lese zuerst alle Edit-Felder aus und speicher diese in einem Array, da ich hiermit gut rechnen kann. dann werden immer 2 Array-Werte miteinander verglichen. Falls diese gleich sein sollten, dann soll die Hintergrundfarben der betreffenden Edit-Komponenten geändert werden. Nur ist da eben das Problem, wie ich diese Edit-Komponente anspreche ("EditXXX.Color").
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Edit-Komponenten zur Laufzeit die Hintergrundfarbe änder

  Alt 5. Apr 2005, 19:43
Moin Ameisenbär,

was Du Dir auf jeden Fall noch anschauen solltest ist FindComponent Einerseits hier, andereseits auch in der Hilfe.

Um, z.b., mit Hilfe einer TObjectList ein Array darzustellen:
Es hindert Dich ja niemand ein einer TObjectList wieder eine TObjectList unterzubringen, so dass Du eine zweidimensionale Liste erhältst (=Matrix)
Wenn diese nun garantiert TEdit enthalten genügt ein einfacher Typcast auf TEdit.

Mal ein ganz grobes Beispiel:

Delphi-Quellcode:
var
  ls1 : TObjectList;
  ls2 : TObjectList;

begin
  ls1 := TObjectList.Create(false);
  try
    try
      ls2 := TObjectList.Create(false);
      ls1.Add(ls2);
      (ls1[0] as TObjectList).Add(Edit1);
      ShowMessage((ls2[0] as TEdit).Text);
    finally
      FreeAndNil(ls2);
    end;
  finally
    FreeAndNil(ls1);
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Ameisenbär

Registriert seit: 21. Okt 2004
6 Beiträge
 
#7

Re: Edit-Komponenten zur Laufzeit die Hintergrundfarbe änder

  Alt 6. Apr 2005, 01:51
Ich bedanke mich für die Hilfe. Problem gelöst.
  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 18:40 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