Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   FormResize (https://www.delphipraxis.net/62043-formresize.html)

MPirnstill 30. Jan 2006 10:41


FormResize
 
Hi Leute!

Folgendes Problemchen!
Ich benutze in FormResize die Funktion "ScaleControls" um für die Anwender meines Programmes die Controls beim maximieren wirklich größer zu machen und nicht einfach nur mehr anzuzeigen (gibt eben viele mit Augenproblemen). Das Resize-Ereignis habe ich im Vorfahr definiert, damit ich das nicht bei jedem Dialog neu machen muß, allerdings habe ich verschiedene Vorfahren für verschiedene Dialogtypen.

Bei dem einen Dialog funktionert dies auch korrekt, wobei bei dem anderen Dialog das Resize-Ereignis mehrfach, um genau zu sein dreimal, ausgelöst wird, obwohl ich nur einmal auf maximieren clicke. Dadurch werden mein Control natürlcih gigantisch und damit kann auch wieder keiner arbeiten.

Hat einer von euch eine Idee :idea: was das auslöst! Ich habe nicht den geringsten Schimmer wieso das Prog so merkwürdig reagiert! Ich auf mir beim Debuggen schon den Aufrufstack anzeigen lassen, aber auch da ist nicht ersichtlich von welcher anderen Routine das Resize-Ereignis aufgerufen wird.

Gruß

Micha

MPirnstill 30. Jan 2006 15:18

Re: FormResize
 
Hat denn keiner eine Idee.

Ich habe das Programm schon getraced und verstehe es einfach nicht. Gehe mit SHIFT+F7 durch. Verlasse das Resize-Ereignis und schon ist die nächste Anweisung, die oben im Resize-Ereignis steht. Und das macht er 2 mal mit mir, so das diese Routine insgesamt 3 mal durchlaufen wird.

Woran könnte das liegen? Ich weiß nicht wo ich noch suchen könnte.

Gruß

[edit=Luckie]Dein Thread ist nicht mal fünf Stunden alt. Halte dich also bitte etwas zurück, was das Pushen angeht, das ist nämlich erst nach frühestens 24 Stunden erlaubt. Mfg, Luckie[/edit]

marabu 30. Jan 2006 16:43

Re: FormResize
 
Hi Micha,

du hast da wahrscheinlich eine unglückliche Verkettung von Ereignissen. Grundsätzlich wird beim Maximieren bzw. Minimieren nur ein event erzeugt. Habe es gerade mit einem leeren D2 Projekt ausprobiert:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
    procedure FormResize(Sender: TObject);
  private
    FResizeCount: Integer;
  public
    procedure IncResizeCount;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.IncResizeCount;
begin
  Inc(FResizeCount);
  Caption := IntToStr(FResizeCount);
end;

procedure TForm1.FormResize(Sender: TObject);
begin
  IncResizeCount;
end;

end.
Grüße vom marabu

MPirnstill 31. Jan 2006 14:38

Re: FormResize
 
Erstmal danke das du dich dem Thema angenommen hast, marabu!

Ich weiß zwar nicht was es war, ich habe jetzt einfach einen ähnlichen Vorfahren genommen und angepaßt, alles ein bischen nachgearbeitet und jetz funktioniert es. Aber verstehen muß ich das nicht.

@Luckie: Sorry, war wohl ein wenig verwöhnt von den schnellen Antworten auf andere Fragen meinerseits, aber seit der Gelesen-Counter nicht mehr drin ist, weiß man auch garnicht, ob überhaupt mal jemand reingeschaut hat. Außerdem habe ich immer die Befürchtung, daß wenn ein Thema aus den aktuellen / letzten Themen verschwunden ist, in den Dornröschenschlaf übergeht und darauf wartet das ein Prinz kommt um es wieder wach zu küssen. :cat: Ich wollte eigentlich garnicht drängeln, nur wenn man vor einem Prob sitzt und gefrustet ist, wird man manchmal ungeduldig. :cyclops: :gruebel: :drunken: :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 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