Einzelnen Beitrag anzeigen

delphifan2004

Registriert seit: 26. Nov 2004
Ort: Dresden
274 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: EInvalidOperation, warum?

  Alt 21. Mär 2009, 13:50
Hallo,

Ich habe den Thread von vor paar Tagen verfolgt, wo es um den eigenen Fordesigner ging und um die Typinformation. Hab mir TSizeControl auch runtergeladen und experimentiert. Ich habe die folgende Änderung eingebaut, erhalte nun aber eine EInvalidOperation.

Warum?

Hier ist der geänderte Quelltext:

Delphi-Quellcode:
procedure TForm1.SizeCtrlTargetChange(Sender: TObject);
begin
  if SizeCtrl.TargetCount = 0 then
    StatusBar1.SimpleText := ''
  else begin
    with SizeCtrl.Targets[0] do StatusBar1.SimpleText :=
    format(' %s - left:%d top:%d, width:%d height:%d',
      [Name,left,top,width,height]);
    
 //### DIESE ZEILE HABE ICH HINZUGEFÜGT ###
    ActiveControl := TWinControl(SizeCtrl.Targets[0]);
 //### HIER WIRD DIE EInvalidOperation ausgelöst ### Aber warum???
 
  end;
end;
Targets[0] enthält nach meinem Verständnis die fokussierte Komponente.

Bei Klick auf Label 2 krieg ich einen EAbstractError

Bei Klich auf die unsichtbare ComboBox krieg ich die EInvalidOperation mit der Meldung, das unsichtbare Controls nicht den Fokus erhalten können.

Ohne die von mir eingefügte Zeile funktioniert alles einwandfrei.

Die Disabled Combobox soll ja gerade demonstrieren das auch solche disabled controls verschoben, vergrößert und verkleinert werden können.

Was läuft hier falsch. Wie komme ich an die aktuell selektierte Komponente?
  Mit Zitat antworten Zitat