Autor Beitrag
Benny800
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 01.01.11 17:16 
Hallo zusammen,

mich hat es gestört, dass man mit dem ColorDialog zwar eine Farbe auswählen kann, aber nie weiß, welche gerade ausgewählt ist. Deshalb hab ich mich an einer kleinen Farbvorschau versucht.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.ColorDialog1Close(Sender: TObject);
var
  bmp: TBitmap;
begin
  bmp := TBitmap.Create;
  bmp.Width := 25;
  bmp.Height := 25;
  bmp.Canvas.Brush.Color := ColorDialog1.Color;
  bmp.Canvas.Rectangle(002525);
  Image3.Canvas.Draw(00, bmp);
  bmp.Free;
end;


Das funktioniert auch ohne Probleme. Nur leider bekomme ich immer nur die alte Farbe, da beim Close-Event die Color-Eigenschaft noch nicht aktualisiert wurde. Wie kann ich das umgehen?

Grüße Dennis
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Sa 01.01.11 18:25 
Bastle Dir doch einen ExcuteWrapper
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Function ColorDialogWrapper(CD:TColorDialog;DestImage:TImage):Boolean;
begin
  Result := CD.Execute(nil);
  if Result and Assigned(DestImage) then
    begin
      // DeinCode
    end;
end;

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS

Für diesen Beitrag haben gedankt: Benny800
Benny800 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 01.01.11 18:38 
Stimmt. Hab gar nicht mehr daran gedacht, dass im Programmablauf so lange bei Execute gewartet wird bis der Dialog wieder zu ist.