AGB  ·  Datenschutz  ·  Impressum  







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

Combox, Checkbox, usw. selektiert ????

Ein Thema von vanilla · begonnen am 15. Mai 2007 · letzter Beitrag vom 16. Mai 2007
Antwort Antwort
vanilla

Registriert seit: 23. Mär 2007
44 Beiträge
 
Delphi 7 Professional
 
#1

Combox, Checkbox, usw. selektiert ????

  Alt 15. Mai 2007, 11:23
hallo leute,

ich habe eine funktion geschrieben der alle komponenten im form durchläuft und überprüft ob daten verändert worden sind oder nicht. allerdings durchläuft er nur die komponenten die zur klasse tcustomedit gehören also komponenten wie edit, memo werden durchlaufen, da gibt es die methode modified mit der ich immer abfragen konnte und es hat ganz gut geklappt soweit.

Delphi-Quellcode:

procedure TForm1.fileModified (EdtCmp : TCustomEdit);

begin

    if (EdtCmp As TCustomEdit).Modified then
    begin
    // mach irgendwas
    end;

end;
ich habe jetzt aber noch paar andere komponenten wie combobox und checkbox und soweiter und muss die funktion abstrahieren, zur welcher oberklasse gehören diese komponenten und wie kann ich überprüfen ob etwas selektiert wird oder nicht, gibt es da sowas ähnliches wie modified ??? ich habe schon bei Delphi-Hilfe gesucht, aber ich find nichts.

ich hoffe ihr könnt wir weiterhelfen...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Combox, Checkbox, usw. selektiert ????

  Alt 15. Mai 2007, 11:40
Ninn TComponent oder TWinControl.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
vanilla

Registriert seit: 23. Mär 2007
44 Beiträge
 
Delphi 7 Professional
 
#3

Re: Combox, Checkbox, usw. selektiert ????

  Alt 15. Mai 2007, 12:50
mit diesen beiden klassen hatte ich es schon versucht aber weiss nicht mit welcher methode ich überprüfen kann ob was selektiert wurde oder nicht. bei tcustomedit ging das schön mit modified....
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#4

Re: Combox, Checkbox, usw. selektiert ????

  Alt 15. Mai 2007, 13:56
Du kannst auch, wenn du die Komponenten entsprechend benannt hast, erstmal schauen, wie die Komponente heißt und dann auf den Komp.typ schließen.

Delphi-Quellcode:
function SiS(s,SubStr:string):boolean; //StringInString prüft, ob ein String in einem längeren vorkommt
begin
  result:=false;
  if Pos(SubStr,s)>0 then
    result:=true;
end;

function TypBestimmen(AComp:TComponent):string;
var s:string;
begin
  s:=AComp.Name;
  if SiS('edit',s) then result:='Editfeld'
  else if SiS('Checkbox',s) then result:='Checkbox'
  else if ...
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Showmessage(TypBestimmen(Editfeld{ as TComponent}));
end;
Was ich aber machen würde, ist, dass du eine globale Variable namens "geaendert" nimmst und sie auf true setzt, wenn der Anwender etwas irgendwo rein schreibt.
Achim
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Combox, Checkbox, usw. selektiert ????

  Alt 15. Mai 2007, 14:34
Typbestimmen braucht man nicht. Wozu gibt es denn Classname.
Ich würde bei den Komponenten mit "Tag" arbeiten. Also im onChange-Ereignis denn Tag auf 1 setzen und dann einfach überprüfen.
Hoffe geholfen zu haben
Apollonius
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
vanilla

Registriert seit: 23. Mär 2007
44 Beiträge
 
Delphi 7 Professional
 
#6

Re: Combox, Checkbox, usw. selektiert ????

  Alt 15. Mai 2007, 15:29
hi,

ich möchte nicht bei jedem einzelnen komponenten das onchange ereignis aufrufen. sondern durch EINE funktion alle durchlaufen und abfragen.

Delphi-Quellcode:
for i := 0 to Form1.ComponentCount-1 do
  begin

    if ( self.components[i] Is TCustomEdit) then
      fileModified(Form1.components[i] As TCustomEdit);

  end;
so hatte ichs bis jetzt. Ich kann die Funktion nicht so umbauen, dass sie auch auf irgendwelchen selektionen von checkboxen, combobox usw. reagiert. da find ich keine passende methode. ich bräuchte sowas wie 'selected' (anstatt modified).
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Combox, Checkbox, usw. selektiert ????

  Alt 15. Mai 2007, 15:42
Zitat von vanilla:
ich bräuchte sowas wie 'selected' (anstatt modified).
Naja, dann bastels dir doch Leite eine Klasse von TCheckbox ab und füge die Property wie gewünscht ein. Dann musst du nur noch auf das erstmalige Ändern reagieren und deine Property entsprechend setzen und kannst sie dann in deinem Programm abfragen
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Combox, Checkbox, usw. selektiert ????

  Alt 15. Mai 2007, 15:46
Ich hatte nicht vor, onChange ständig irgendwie aufzurufen.
Du weist allen Komponenten das selbe onChange zu. Dort wird der Tag der Komponenten verändert. In deiner Prüfprozedur schaust du dann nur nach, ob der Tag eben den entsprechenden Wert hat und setzt ihn gegebenenfalls wieder zurück.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
vanilla

Registriert seit: 23. Mär 2007
44 Beiträge
 
Delphi 7 Professional
 
#9

Re: Combox, Checkbox, usw. selektiert ????

  Alt 15. Mai 2007, 15:57
ich danke euch erstmal für eure lösungsvorschläge, werde sie dann mal ausprobieren.
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#10

Re: Combox, Checkbox, usw. selektiert ????

  Alt 16. Mai 2007, 12:52
Hallo,
Zitat von vanilla:
... ich bräuchte sowas wie 'selected' (anstatt modified).
dann sollte das passen: Screen.OnActiveControlChange

Den Tipp entsprechend modifizieren, also farblich hervorheben > merken:
dsdt: Komponente beim Fokussieren farblich hervorheben
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  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 15:37 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