Subversion Repositories colormanager

Rev

Rev 2 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 3
Line 32... Line 32...
32
    WebSafe1: TPanel;
32
    WebSafe1: TPanel;
33
    WebSafe2: TPanel;
33
    WebSafe2: TPanel;
34
    CurrentLbl: TLabel;
34
    CurrentLbl: TLabel;
35
    mWebsafe: TMenuItem;
35
    mWebsafe: TMenuItem;
36
    mWebsafeInv: TMenuItem;
36
    mWebsafeInv: TMenuItem;
37
    TabControl: TTabControl;
-
 
38
    Panel1: TPanel;
37
    Panel1: TPanel;
39
    RGBBox: TGroupBox;
38
    RGBBox: TGroupBox;
40
    RLbl: TLabel;
39
    RLbl: TLabel;
41
    GLbl: TLabel;
40
    GLbl: TLabel;
42
    BLbl: TLabel;
41
    BLbl: TLabel;
Line 295... Line 294...
295
    Info7: TLabel;
294
    Info7: TLabel;
296
    Info8: TLabel;
295
    Info8: TLabel;
297
    Info9: TLabel;
296
    Info9: TLabel;
298
    Info12: TLabel;
297
    Info12: TLabel;
299
    Info5: TLabel;
298
    Info5: TLabel;
300
    Info10: TLabel;
-
 
301
    Info11: TLabel;
-
 
302
    Info14: TLabel;
299
    Info14: TLabel;
303
    Info15: TLabel;
300
    Info15: TLabel;
304
    Info13: TLabel;
301
    Info13: TLabel;
305
    ColorTmr: TTimer;
302
    ColorTmr: TTimer;
306
    Info3: TLabel;
303
    Info3: TLabel;
307
    AverageX: TEdit;
-
 
308
    AverageMidLbl: TLabel;
304
    AverageMidLbl: TLabel;
309
    AverageY: TEdit;
-
 
310
    MagPnl: TPanel;
305
    MagPnl: TPanel;
311
    MagBox: TPaintBox;
306
    MagBox: TPaintBox;
312
    favo17: TPanel;
307
    favo17: TPanel;
313
    favo18: TPanel;
308
    favo18: TPanel;
314
    favo19: TPanel;
309
    favo19: TPanel;
Line 328... Line 323...
328
    GProC: TUpDown;
323
    GProC: TUpDown;
329
    BProC: TUpDown;
324
    BProC: TUpDown;
330
    RProLbl: TLabel;
325
    RProLbl: TLabel;
331
    GProLbl: TLabel;
326
    GProLbl: TLabel;
332
    BProLbl: TLabel;
327
    BProLbl: TLabel;
-
 
328
    PageControl1: TPageControl;
-
 
329
    TabSheet1: TTabSheet;
-
 
330
    TabSheet2: TTabSheet;
-
 
331
    TabSheet3: TTabSheet;
-
 
332
    TabSheet4: TTabSheet;
-
 
333
    AverageX: TSpinEdit;
-
 
334
    AverageY: TSpinEdit;
333
    procedure ColorClick(Sender: TObject; Button: TMouseButton;
335
    procedure ColorClick(Sender: TObject; Button: TMouseButton;
334
      Shift: TShiftState; X, Y: Integer);
336
      Shift: TShiftState; X, Y: Integer);
335
    procedure SaveEditChange(Sender: TObject);
337
    procedure SaveEditChange(Sender: TObject);
336
    procedure ColorTmrTimer(Sender: TObject);
338
    procedure ColorTmrTimer(Sender: TObject);
337
    procedure LinkClick(Sender: TObject);
339
    procedure LinkClick(Sender: TObject);
Line 341... Line 343...
341
    procedure WinDialogClick(Sender: TObject);
343
    procedure WinDialogClick(Sender: TObject);
342
    procedure PalClick(Sender: TObject);
344
    procedure PalClick(Sender: TObject);
343
    procedure OutboxPaint(Sender: TObject);
345
    procedure OutboxPaint(Sender: TObject);
344
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
346
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
345
    procedure WebsafeLblClick(Sender: TObject);
347
    procedure WebsafeLblClick(Sender: TObject);
346
    procedure TabControlChange(Sender: TObject);
-
 
347
    procedure InvertBtnClick(Sender: TObject);
348
    procedure InvertBtnClick(Sender: TObject);
348
    procedure TakeClick(Sender: TObject);
349
    procedure TakeClick(Sender: TObject);
349
    procedure DelphiBoxClick(Sender: TObject);
350
    procedure DelphiBoxClick(Sender: TObject);
350
    procedure DefColorClick(Sender: TObject);
351
    procedure DefColorClick(Sender: TObject);
351
    procedure GreyscaleBtnClick(Sender: TObject);
352
    procedure GreyscaleBtnClick(Sender: TObject);
Line 356... Line 357...
356
    procedure PickBtnClick(Sender: TObject);
357
    procedure PickBtnClick(Sender: TObject);
357
    procedure FormCreate(Sender: TObject);
358
    procedure FormCreate(Sender: TObject);
358
    procedure EditKeyPress(Sender: TObject; var Key: Char);
359
    procedure EditKeyPress(Sender: TObject; var Key: Char);
359
    procedure UpDownClick(Sender: TObject; Button: TUDBtnType);
360
    procedure UpDownClick(Sender: TObject; Button: TUDBtnType);
360
    procedure Change(Sender: TObject);
361
    procedure Change(Sender: TObject);
-
 
362
    procedure AverageXYChange(Sender: TObject);
361
  private
363
  private
362
    LangArray: Array of TLanguageEntry;
364
    LangArray: Array of TLanguageEntry;
363
    function GetLangEntry(name: string): string;
365
    function GetLangEntry(name: string): string;
364
  public
366
  public
365
    SampleMethod, NewMethod: byte;
367
    SampleMethod, NewMethod: byte;
Line 376... Line 378...
376
    procedure Ladefarbe(col: tcolor);
378
    procedure Ladefarbe(col: tcolor);
377
    procedure BerechneMixColor;
379
    procedure BerechneMixColor;
378
    procedure CheckWebfarben;
380
    procedure CheckWebfarben;
379
    procedure CheckDelphiFarben;
381
    procedure CheckDelphiFarben;
380
    procedure ZeigeRichtigePalette;
382
    procedure ZeigeRichtigePalette;
381
    procedure SchreibeInt(name: string; wert: integer);
383
    procedure WriteIntSetting(name: string; wert: integer);
382
    function LeseInt(name: string): integer;
384
    function ReadIntSetting(name: string): integer;
383
end;
385
end;
384
 
386
 
385
var
387
var
386
  MainForm: TMainForm;
388
  MainForm: TMainForm;
387
 
389
 
Line 390... Line 392...
390
{$R *.DFM}
392
{$R *.DFM}
391
 
393
 
392
{$R WindowsXP.res}
394
{$R WindowsXP.res}
393
 
395
 
394
const
396
const
-
 
397
  // Source: https://developer.mozilla.org/en-US/docs/Web/CSS/named-color
395
  webfarben: array[0..140] of string = ('#F0F8FF', '#FAEBD7', '#00FFFF', '#7FFFD4',
398
  webfarben: array[0..149] of string = (
-
 
399
    '#f0f8ff', // aliceblue
-
 
400
    '#faebd7', // antiquewhite
-
 
401
    '#00ffff', // aqua
-
 
402
    '#7fffd4', // aquamarine
-
 
403
    '#f0ffff', // azure
-
 
404
    '#f5f5dc', // beige
-
 
405
    '#ffe4c4', // bisque
-
 
406
    '#000000', // black
-
 
407
    '#ffebcd', // blanchedalmond
-
 
408
    '#0000ff', // blue
-
 
409
    '#8a2be2', // blueviolet
-
 
410
    '#a52a2a', // brown
-
 
411
    '#deb887', // burlywood
-
 
412
    '#5f9ea0', // cadetblue
-
 
413
    '#7fff00', // chartreuse
-
 
414
    '#d2691e', // chocolate
-
 
415
    '#ff7f50', // coral
-
 
416
    '#6495ed', // cornflowerblue
-
 
417
    '#fff8dc', // cornsilk
-
 
418
    '#dc143c', // crimson
396
    '#F0FFFF', '#F5F5DC', '#FFE4C4', '#000000', '#FFEBCD', '#0000FF', '#8A2BE2',
419
    '#00ffff', // cyan (synonym of aqua)
-
 
420
    '#00008b', // darkblue
-
 
421
    '#008b8b', // darkcyan
397
    '#A52A2A', '#DEB887', '#5F9EA0', '#7FFF00', '#D2691E', '#FF7F50', '#6495ED',
422
    '#b8860b', // darkgoldenrod
-
 
423
    '#a9a9a9', // darkgray
-
 
424
    '#006400', // darkgreen
-
 
425
    '#a9a9a9', // darkgrey
-
 
426
    '#bdb76b', // darkkhaki
398
    '#FFF8DC', '#DC143C', '#00FFFF', '#00008B', '#008B8B', '#B8860B', '#A9A9A9',
427
    '#8b008b', // darkmagenta
399
    '#006400', '#BDB76B', '#8B008B', '#556B2F', '#FF8C00', '#9932CC', '#8B0000',
428
    '#556b2f', // darkolivegreen
-
 
429
    '#ff8c00', // darkorange
-
 
430
    '#9932cc', // darkorchid
-
 
431
    '#8b0000', // darkred
-
 
432
    '#e9967a', // darksalmon
-
 
433
    '#8fbc8f', // darkseagreen
400
    '#E9967A', '#8FBC8F', '#483D8B', '#2F4F4F', '#00CED1', '#9400D3', '#FF1493',
434
    '#483d8b', // darkslateblue
-
 
435
    '#2f4f4f', // darkslategray
-
 
436
    '#2f4f4f', // darkslategrey
401
    '#00BFFF', '#696969', '#1E90FF', '#B22222', '#FFFAF0', '#228B22', '#FF00FF',
437
    '#00ced1', // darkturquoise
-
 
438
    '#9400d3', // darkviolet
-
 
439
    '#ff1493', // deeppink
-
 
440
    '#00bfff', // deepskyblue
-
 
441
    '#696969', // dimgray
-
 
442
    '#696969', // dimgrey
-
 
443
    '#1e90ff', // dodgerblue
-
 
444
    '#b22222', // firebrick
-
 
445
    '#fffaf0', // floralwhite
-
 
446
    '#228b22', // forestgreen
-
 
447
    '#ff00ff', // fuchsia
-
 
448
    '#dcdcdc', // gainsboro
-
 
449
    '#f8f8ff', // ghostwhite
-
 
450
    '#ffd700', // gold
-
 
451
    '#daa520', // goldenrod
-
 
452
    '#808080', // gray
402
    '#DCDCDC', '#F8F8FF', '#FFD700', '#DAA520', '#808080', '#008000', '#ADFF2F',
453
    '#008000', // green
-
 
454
    '#adff2f', // greenyellow
403
    '#808080', '#F0FFF0', '#FF69B4', '#CD5C5C', '#4B0082', '#FFFFF0', '#F0E68C',
455
    '#808080', // grey (synonym of gray)
-
 
456
    '#f0fff0', // honeydew
-
 
457
    '#ff69b4', // hotpink
-
 
458
    '#cd5c5c', // indianred
-
 
459
    '#4b0082', // indigo
-
 
460
    '#fffff0', // ivory
-
 
461
    '#f0e68c', // khaki
-
 
462
    '#e6e6fa', // lavender
404
    '#E6E6FA', '#FFF0F5', '#7CFC00', '#FFFACD', '#ADD8E6', '#F08080', '#E0FFFF',
463
    '#fff0f5', // lavenderblush
-
 
464
    '#7cfc00', // lawngreen
-
 
465
    '#fffacd', // lemonchiffon
-
 
466
    '#add8e6', // lightblue
-
 
467
    '#f08080', // lightcoral
-
 
468
    '#e0ffff', // lightcyan
405
    '#FAFAD2', '#90EE90', '#D3D3D3', '#FFB6C1', '#FFA07A', '#20B2AA', '#87CEFA',
469
    '#fafad2', // lightgoldenrodyellow
-
 
470
    '#d3d3d3', // lightgray
-
 
471
    '#90ee90', // lightgreen
-
 
472
    '#d3d3d3', // lightgrey
-
 
473
    '#ffb6c1', // lightpink
-
 
474
    '#ffa07a', // lightsalmon
-
 
475
    '#20b2aa', // lightseagreen
-
 
476
    '#87cefa', // lightskyblue
-
 
477
    '#778899', // lightslategray
406
    '#778899', '#B0C4DE', '#FFFFE0', '#00FF00', '#32CD32', '#FAF0E6', '#FF00FF',
478
    '#778899', // lightslategrey
-
 
479
    '#b0c4de', // lightsteelblue
-
 
480
    '#ffffe0', // lightyellow
-
 
481
    '#00ff00', // lime
-
 
482
    '#00ff00', // lime
-
 
483
    '#32cd32', // limegreen
-
 
484
    '#faf0e6', // linen
407
    '#800000', '#66CDAA', '#0000CD', '#BA55D3', '#9370DB', '#3CB371', '#7B68EE',
485
    '#ff00ff', // magenta (synonym of fuchsia)
-
 
486
    '#800000', // maroon
-
 
487
    '#800000', // maroon
408
    '#00FA9A', '#48D1CC', '#C71585', '#191970', '#F5FFFA', '#FFE4E1', '#FFE4B5',
488
    '#66cdaa', // mediumaquamarine
409
    '#FFDEAD', '#000080', '#FDF5E6', '#808000', '#6B8E23', '#FFA500', '#FF4500',
489
    '#0000cd', // mediumblue
-
 
490
    '#ba55d3', // mediumorchid
-
 
491
    '#9370db', // mediumpurple
-
 
492
    '#3cb371', // mediumseagreen
410
    '#DA70D6', '#EEE8AA', '#98FB98', '#AFEEEE', '#DB7093', '#FFEFD5', '#FFDAB9',
493
    '#7b68ee', // mediumslateblue
411
    '#CD853F', '#FFC0CB', '#DDA0DD', '#B0E0E6', '#800080', '#FF0000', '#BC8F8F',
494
    '#00fa9a', // mediumspringgreen
412
    '#4169E1', '#8B4513', '#FA8072', '#F4A460', '#2E8B57', '#FFF5EE', '#A0522D',
495
    '#48d1cc', // mediumturquoise
413
    '#C0C0C0', '#87CEEB', '#6A5ACD', '#708090', '#FFFAFA', '#00FF7F', '#4682B4',
496
    '#c71585', // mediumvioletred
-
 
497
    '#191970', // midnightblue
-
 
498
    '#f5fffa', // mintcream
-
 
499
    '#ffe4e1', // mistyrose
-
 
500
    '#ffe4b5', // moccasin
-
 
501
    '#ffdead', // navajowhite
-
 
502
    '#000080', // navy
-
 
503
    '#fdf5e6', // oldlace
-
 
504
    '#808000', // olive
-
 
505
    '#6b8e23', // olivedrab
-
 
506
    '#ffa500', // orange
-
 
507
    '#ff4500', // orangered
-
 
508
    '#da70d6', // orchid
-
 
509
    '#eee8aa', // palegoldenrod
-
 
510
    '#98fb98', // palegreen
-
 
511
    '#afeeee', // paleturquoise
414
    '#D2B48C', '#008080', '#D8BFD8', '#FF6347', '#40E0D0', '#EE82EE', '#F5DEB3',
512
    '#db7093', // palevioletred
-
 
513
    '#ffefd5', // papayawhip
-
 
514
    '#ffdab9', // peachpuff
-
 
515
    '#cd853f', // peru
-
 
516
    '#ffc0cb', // pink
-
 
517
    '#dda0dd', // plum
-
 
518
    '#b0e0e6', // powderblue
-
 
519
    '#800080', // purple
-
 
520
    '#663399', // rebeccapurple
-
 
521
    '#ff0000', // red
-
 
522
    '#bc8f8f', // rosybrown
-
 
523
    '#4169e1', // royalblue
-
 
524
    '#8b4513', // saddlebrown
-
 
525
    '#fa8072', // salmon
-
 
526
    '#f4a460', // sandybrown
-
 
527
    '#2e8b57', // seagreen
-
 
528
    '#fff5ee', // seashell
-
 
529
    '#a0522d', // sienna
-
 
530
    '#c0c0c0', // silver
-
 
531
    '#87ceeb', // skyblue
-
 
532
    '#6a5acd', // slateblue
-
 
533
    '#708090', // slategray
-
 
534
    '#708090', // slategrey
-
 
535
    '#fffafa', // snow
-
 
536
    '#00ff7f', // springgreen
-
 
537
    '#4682b4', // steelblue
-
 
538
    '#d2b48c', // tan
-
 
539
    '#008080', // teal
-
 
540
    '#d8bfd8', // thistle
-
 
541
    '#ff6347', // tomato
-
 
542
    '#40e0d0', // turquoise
-
 
543
    '#ee82ee', // violet
-
 
544
    '#f5deb3', // wheat
-
 
545
    '#ffffff', // white
415
    '#FFFFFF', '#F5F5F5', '#FFFF00', '#9ACD32');
546
    '#f5f5f5', // whitesmoke
-
 
547
    '#ffff00', // yellow
-
 
548
    '#9acd32'  // yellowgreen
-
 
549
  );
416
 
550
 
417
function TMainForm.GetLangEntry(name: string): string;
551
function TMainForm.GetLangEntry(name: string): string;
418
var
552
var
419
  i: integer;
553
  i: integer;
420
begin
554
begin
Line 558... Line 692...
558
begin
692
begin
559
  if not PickBtn.Enabled then
693
  if not PickBtn.Enabled then
560
    SetCapture(MainForm.Handle);
694
    SetCapture(MainForm.Handle);
561
end;
695
end;
562
 
696
 
-
 
697
procedure TMainForm.AverageXYChange(Sender: TObject);
-
 
698
begin
-
 
699
  WriteIntSetting(TSpinEdit(sender).GetNamePath, TSpinEdit(sender).Value);
-
 
700
end;
-
 
701
 
563
procedure TMainForm.DrawGrad(BoxNum: integer);
702
procedure TMainForm.DrawGrad(BoxNum: integer);
564
 var
703
 var
565
  R, G, B, S, V: byte;
704
  R, G, B, S, V: byte;
566
  H: integer;
705
  H: integer;
567
begin
706
begin
Line 753... Line 892...
753
      ini.free;
892
      ini.free;
754
      str.Free;
893
      str.Free;
755
    end;
894
    end;
756
  end;
895
  end;
757
 
896
 
-
 
897
  PageControl1.ActivePageIndex := 0;
-
 
898
 
758
  // Elemente mit Sprache versehen
899
  // Elemente mit Sprache versehen
759
  rgbbox.Caption := GetLangEntry('rgb');
900
  rgbbox.Caption := GetLangEntry('rgb');
760
  hsvbox.Caption := GetLangEntry('hsv');
901
  hsvbox.Caption := GetLangEntry('hsv');
761
  rdeclbl.Caption := GetLangEntry('dec');
902
  rdeclbl.Caption := GetLangEntry('dec');
762
  gdeclbl.Caption := GetLangEntry('dec');
903
  gdeclbl.Caption := GetLangEntry('dec');
Line 791... Line 932...
791
  longlbl.caption := GetLangEntry('long');
932
  longlbl.caption := GetLangEntry('long');
792
  currentlbl.caption := GetLangEntry('current');
933
  currentlbl.caption := GetLangEntry('current');
793
  websafelbl.caption := GetLangEntry('websafelbl');
934
  websafelbl.caption := GetLangEntry('websafelbl');
794
  komplementaercolor.Caption := GetLangEntry('invcolor');
935
  komplementaercolor.Caption := GetLangEntry('invcolor');
795
  websafe2.Caption := GetLangEntry('invwebsafe');
936
  websafe2.Caption := GetLangEntry('invwebsafe');
796
  tabcontrol.tabs.clear;
-
 
797
  tabcontrol.Tabs.add(GetLangEntry('tab1'));
937
  PageControl1.Pages[0].Caption := GetLangEntry('tab1');
798
  tabcontrol.Tabs.add(GetLangEntry('tab2'));
938
  PageControl1.Pages[1].Caption := GetLangEntry('tab2');
799
  tabcontrol.Tabs.add(GetLangEntry('tab3'));
939
  PageControl1.Pages[2].Caption := GetLangEntry('tab3');
800
  tabcontrol.Tabs.add(GetLangEntry('tab4'));
940
  PageControl1.Pages[3].Caption := GetLangEntry('tab4');
801
  colormixerbox.Caption := getlangentry('colormixer');
941
  colormixerbox.Caption := getlangentry('colormixer');
802
  color1.Caption := getlangentry('color') + ' 1';
942
  color1.Caption := getlangentry('color') + ' 1';
803
  color2.Caption := getlangentry('color') + ' 2';
943
  color2.Caption := getlangentry('color') + ' 2';
804
  mixedcolor.caption := getlangentry('mixedcolor');
944
  mixedcolor.caption := getlangentry('mixedcolor');
805
  colorbox.caption := getlangentry('colors');
945
  colorbox.caption := getlangentry('colors');
806
  pallbl.Caption := getlangentry('availablepals');
946
  pallbl.Caption := getlangentry('availablepals');
807
  delphiboxlbl.Caption := getlangentry('delphipal');
947
  delphiboxlbl.Caption := getlangentry('delphipal');
808
  webcolorlbl.Caption := getlangentry('css3');
948
  webcolorlbl.Caption := getlangentry('css');
809
  delphizutreffendlbl.Caption := getlangentry('zutr');
949
  delphizutreffendlbl.Caption := getlangentry('zutr');
810
  webzutreffendlbl.Caption := getlangentry('zutr');
950
  webzutreffendlbl.Caption := getlangentry('zutr');
811
  qblbl.Caption := getlangentry('vgapal');
951
  qblbl.Caption := getlangentry('vgapal');
812
  windialog.Caption := getlangentry('windialog');
952
  windialog.Caption := getlangentry('windialog');
813
  favoritenlbl.Caption := getlangentry('favorites');
953
  favoritenlbl.Caption := getlangentry('favorites');
Line 821... Line 961...
821
  pickbtn.Caption := getlangentry('capture');
961
  pickbtn.Caption := getlangentry('capture');
822
  info3.Caption := getlangentry('createdwith');
962
  info3.Caption := getlangentry('createdwith');
823
  info4.Caption := getlangentry('leader');
963
  info4.Caption := getlangentry('leader');
824
  info6.Caption := getlangentry('email');
964
  info6.Caption := getlangentry('email');
825
  info8.Caption := getlangentry('website');
965
  info8.Caption := getlangentry('website');
826
  info10.Caption := getlangentry('icq');
-
 
827
  info13.Caption := getlangentry('webportal');
966
  info13.Caption := getlangentry('webportal');
828
  info14.Caption := getlangentry('viathinksoft');
967
  info14.Caption := getlangentry('viathinksoft');
829
  info15.Caption := getlangentry('projektseite');
968
  info15.Caption := getlangentry('projektseite');
830
  info5.Caption := getlangentry('contact');
969
  info5.Caption := getlangentry('contact');
831
  info12.Caption := getlangentry('links');
970
  info12.Caption := getlangentry('links');
Line 850... Line 989...
850
  popupmenu.Items.Items[2].Caption := getlangentry('PopupC');
989
  popupmenu.Items.Items[2].Caption := getlangentry('PopupC');
851
 
990
 
852
  // Favoriten-Farben und Einstellungen aus Registry holen
991
  // Favoriten-Farben und Einstellungen aus Registry holen
853
  pal.ItemIndex := 0;
992
  pal.ItemIndex := 0;
854
  for i := 1 to 20 do
993
  for i := 1 to 20 do
855
    tpanel(mainform.FindComponent('favo'+inttostr(i))).Color := LeseInt('favo'+inttostr(i));
994
    tpanel(mainform.FindComponent('favo'+inttostr(i))).Color := ReadIntSetting('favo'+inttostr(i));
856
  pal.ItemIndex := LeseInt('Palette');
995
  pal.ItemIndex := ReadIntSetting('Palette');
857
  AverageX.Text := inttostr(LeseInt('AverageX'));
996
  AverageX.Value := ReadIntSetting('AverageX');
858
  AverageY.Text := inttostr(LeseInt('AverageY'));
997
  AverageY.Value := ReadIntSetting('AverageY');
859
 
998
 
860
  ZeigeRichtigePalette;
999
  ZeigeRichtigePalette;
861
end;
1000
end;
862
 
1001
 
863
function WebSafeColor(inp: TColor): TColor;
1002
function WebSafeColor(inp: TColor): TColor;
Line 1011... Line 1150...
1011
  end
1150
  end
1012
  else if (sender = Photoshop) then
1151
  else if (sender = Photoshop) then
1013
  begin
1152
  begin
1014
    if not (Key in [#13, #08, '0'..'9', 'a'..'f', 'A'..'F']) then Key := #0;
1153
    if not (Key in [#13, #08, '0'..'9', 'a'..'f', 'A'..'F']) then Key := #0;
1015
  end
1154
  end
1016
  else if (sender = Long) or (sender = AverageX) or (sender = AverageY) or
1155
  else if (sender = Long) or
1017
    (sender = SPro) or (sender = VPro) or (sender = RPro) or (sender = GPro) or
1156
    (sender = SPro) or (sender = VPro) or (sender = RPro) or (sender = GPro) or
1018
    (sender = BPro) then
1157
    (sender = BPro) then
1019
  begin
1158
  begin
1020
    if not (Key in [#13, #08, '0'..'9']) then Key := #0;
1159
    if not (Key in [#13, #08, '0'..'9']) then Key := #0;
1021
  end
1160
  end
Line 1455... Line 1594...
1455
  CursorPos: TPoint;
1594
  CursorPos: TPoint;
1456
  PixelCol: TColor;
1595
  PixelCol: TColor;
1457
  AverageR, AverageG, AverageB: integer;
1596
  AverageR, AverageG, AverageB: integer;
1458
  x, y: shortint;
1597
  x, y: shortint;
1459
begin
1598
begin
-
 
1599
  if PageControl1.ActivePage <> TabSheet3 then exit;
-
 
1600
 
1460
  GetCursorPos(CursorPos);
1601
  GetCursorPos(CursorPos);
1461
  CoordsLbl.Caption := Format('%d,' + #13 + '%d', [CursorPos.x, CursorPos.y]);
1602
  CoordsLbl.Caption := Format('%d,' + #13 + '%d', [CursorPos.x, CursorPos.y]);
1462
 
1603
 
1463
  AverageR := 0;
1604
  AverageR := 0;
1464
  AverageG := 0;
1605
  AverageG := 0;
1465
  Averageb := 0;
1606
  Averageb := 0;
1466
  for y := -floor((strtoint(AverageY.text)-1)/2) to ceil((strtoint(AverageY.text)-1)/2) do
1607
  for y := -floor((AverageY.Value-1)/2) to ceil((AverageY.Value-1)/2) do
1467
    for x := -floor((strtoint(AverageX.text)-1)/2) to ceil((strtoint(AverageX.text)-1)/2) do
1608
    for x := -floor((AverageX.Value-1)/2) to ceil((AverageX.Value-1)/2) do
1468
    begin
1609
    begin
1469
      PixelCol := GetPixel(ScreenDC, CursorPos.x + x, CursorPos.y + y);
1610
      PixelCol := GetPixel(ScreenDC, CursorPos.x + x, CursorPos.y + y);
1470
      AverageR := AverageR + GetRValue(PixelCol);
1611
      AverageR := AverageR + GetRValue(PixelCol);
1471
      AverageG := AverageG + GetGValue(PixelCol);
1612
      AverageG := AverageG + GetGValue(PixelCol);
1472
      AverageB := AverageB + GetBValue(PixelCol);
1613
      AverageB := AverageB + GetBValue(PixelCol);
1473
    end;
1614
    end;
1474
  if strtoint(AverageX.text)*strtoint(AverageY.text) > 0 then
1615
  if AverageX.Value*AverageY.Value > 0 then
1475
    AverageR := AverageR div (strtoint(AverageX.text)*strtoint(AverageY.text));
1616
    AverageR := AverageR div (AverageX.Value*AverageY.Value);
1476
  if strtoint(AverageX.text)*strtoint(AverageY.text) > 0 then
1617
  if AverageX.Value*AverageY.Value > 0 then
1477
    AverageG := AverageG div (strtoint(AverageX.text)*strtoint(AverageY.text));
1618
    AverageG := AverageG div (AverageX.Value*AverageY.Value);
1478
  if strtoint(AverageX.text)*strtoint(AverageY.text) > 0 then
1619
  if AverageX.Value*AverageY.Value > 0 then
1479
    AverageB := AverageB div (strtoint(AverageX.text)*strtoint(AverageY.text));
1620
    AverageB := AverageB div (AverageX.Value*AverageY.Value);
1480
 
1621
 
1481
  PixelCol := RGB(Lo(AverageR), Lo(AverageG), Lo(AverageB));
1622
  PixelCol := RGB(Lo(AverageR), Lo(AverageG), Lo(AverageB));
1482
 
1623
 
1483
  BitBlt(MemPix.Canvas.Handle,
1624
  BitBlt(MemPix.Canvas.Handle,
1484
     0, 0,
1625
     0, 0,
1485
     strtoint(AverageX.text), strtoint(AverageY.text),
1626
     AverageX.Value, AverageY.Value,
1486
     ScreenDC,
1627
     ScreenDC,
1487
     CursorPos.x - floor(strtoint(AverageX.text)/2), CursorPos.y - floor(strtoint(AverageY.text)/2),
1628
     CursorPos.x - floor(AverageX.Value/2), CursorPos.y - floor(AverageY.Value/2),
1488
     SRCCOPY);
1629
     SRCCOPY);
1489
  StretchBlt(MagBox.Canvas.Handle,
1630
  StretchBlt(MagBox.Canvas.Handle,
1490
     0, 0,
1631
     0, 0,
1491
     MagBox.Width, MagBox.Height,
1632
     MagBox.Width, MagBox.Height,
1492
     MemPix.Canvas.Handle,
1633
     MemPix.Canvas.Handle,
1493
     0, 0,
1634
     0, 0,
1494
     strtoint(AverageX.text), strtoint(AverageY.text),
1635
     AverageX.Value, AverageY.Value,
1495
     SRCCOPY);
1636
     SRCCOPY);
1496
 
1637
 
1497
  if not PickBtn.Enabled then
1638
  if not PickBtn.Enabled then
1498
    Ladefarbe(PixelCol);
1639
    Ladefarbe(PixelCol);
1499
end;
1640
end;
Line 1539... Line 1680...
1539
     (PopupmenuSender = favo7) or (PopupmenuSender = favo8) or (PopupmenuSender = favo9) or
1680
     (PopupmenuSender = favo7) or (PopupmenuSender = favo8) or (PopupmenuSender = favo9) or
1540
     (PopupmenuSender = favo10) or (PopupmenuSender = favo11) or (PopupmenuSender = favo12) or
1681
     (PopupmenuSender = favo10) or (PopupmenuSender = favo11) or (PopupmenuSender = favo12) or
1541
     (PopupmenuSender = favo13) or (PopupmenuSender = favo14) or (PopupmenuSender = favo15) or
1682
     (PopupmenuSender = favo13) or (PopupmenuSender = favo14) or (PopupmenuSender = favo15) or
1542
     (PopupmenuSender = favo16) or (PopupmenuSender = favo17) or (PopupmenuSender = favo18) or
1683
     (PopupmenuSender = favo16) or (PopupmenuSender = favo17) or (PopupmenuSender = favo18) or
1543
     (PopupmenuSender = favo19) or (PopupmenuSender = favo20) then
1684
     (PopupmenuSender = favo19) or (PopupmenuSender = favo20) then
1544
    SchreibeInt(tpanel(PopupmenuSender).GetNamePath, colortorgb(tpanel(PopupmenuSender).color));
1685
    WriteIntSetting(tpanel(PopupmenuSender).GetNamePath, colortorgb(tpanel(PopupmenuSender).color));
1545
end;
1686
end;
1546
 
1687
 
1547
procedure TMainForm.Menu2Click(Sender: TObject);
1688
procedure TMainForm.Menu2Click(Sender: TObject);
1548
begin
1689
begin
1549
  if sender = mAktuell2 then
1690
  if sender = mAktuell2 then
Line 1551... Line 1692...
1551
  if sender = mKomplementaer2 then
1692
  if sender = mKomplementaer2 then
1552
    Ladefarbe(tpanel(PopupmenuSender).Color xor $FFFFFF);
1693
    Ladefarbe(tpanel(PopupmenuSender).Color xor $FFFFFF);
1553
end;
1694
end;
1554
 
1695
 
1555
procedure TMainForm.GreyscaleBtnClick(Sender: TObject);
1696
procedure TMainForm.GreyscaleBtnClick(Sender: TObject);
-
 
1697
var
-
 
1698
  i: integer;
1556
begin
1699
begin
1557
  S.Position := 0;
1700
  //S.Position := 0;
-
 
1701
 
-
 
1702
  i := Round((R.Position*0.2126) + (G.Position*0.7152) + (B.Position*0.0722));
-
 
1703
 
-
 
1704
  R.OnChange := nil;
-
 
1705
  G.OnChange := nil;
-
 
1706
  B.OnChange := nil;
-
 
1707
 
-
 
1708
  R.Position := i;
-
 
1709
  G.Position := i;
-
 
1710
  B.Position := i;
-
 
1711
 
-
 
1712
  AktualisiereWert(r);
-
 
1713
  AktualisiereWert(g);
-
 
1714
  AktualisiereWert(b);
-
 
1715
 
-
 
1716
  R.OnChange := Change;
-
 
1717
  G.OnChange := Change;
-
 
1718
  B.OnChange := Change;
-
 
1719
 
-
 
1720
  AktualisiereFarben(true);
1558
end;
1721
end;
1559
 
1722
 
1560
procedure TMainForm.DefColorClick(Sender: TObject);
1723
procedure TMainForm.DefColorClick(Sender: TObject);
1561
begin
1724
begin
1562
  LadeFarbe(tpanel(sender).Color);
1725
  LadeFarbe(tpanel(sender).Color);
Line 1582... Line 1745...
1582
 
1745
 
1583
  R.OnChange := Change;
1746
  R.OnChange := Change;
1584
  G.OnChange := Change;
1747
  G.OnChange := Change;
1585
  B.OnChange := Change;
1748
  B.OnChange := Change;
1586
 
1749
 
1587
  // DelphiBox muss nicht mehr ignoriert werden, da wir nun "DelphiZustimmend"
1750
  // DelphiBox muss nicht mehr ignoriert werden, da wir nun "CheckDelphiFarben"
1588
  // verwenden und nichts mehr in der DelphiBox markieren
1751
  // verwenden und nichts mehr in der DelphiBox markieren
1589
  // AktualisiereFarben(true, 1);
1752
  // AktualisiereFarben(true, 1);
1590
  AktualisiereFarben(true);
1753
  AktualisiereFarben(true);
1591
end;
1754
end;
1592
 
1755
 
Line 1598... Line 1761...
1598
procedure TMainForm.InvertBtnClick(Sender: TObject);
1761
procedure TMainForm.InvertBtnClick(Sender: TObject);
1599
begin
1762
begin
1600
  TakeClick(KomplementaerColor);
1763
  TakeClick(KomplementaerColor);
1601
end;
1764
end;
1602
 
1765
 
1603
procedure TMainForm.TabControlChange(Sender: TObject);
-
 
1604
begin
-
 
1605
  panel1.Visible := tabcontrol.TabIndex = 0;
-
 
1606
  panel2.Visible := tabcontrol.TabIndex = 1;
-
 
1607
  panel3.Visible := tabcontrol.TabIndex = 2;
-
 
1608
  panel4.Visible := tabcontrol.TabIndex = 3;
-
 
1609
end;
-
 
1610
 
-
 
1611
procedure TMainForm.WebsafeLblClick(Sender: TObject);
1766
procedure TMainForm.WebsafeLblClick(Sender: TObject);
1612
begin
1767
begin
1613
  TakeClick(websafe1);
1768
  TakeClick(websafe1);
1614
end;
1769
end;
1615
 
1770
 
1616
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
1771
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
1617
begin
1772
begin
1618
  ReleaseDC(0, ScreenDC);
1773
  ReleaseDC(0, ScreenDC);
1619
  MemPix.Free;
1774
  FreeAndNil(MemPix);
1620
  BoxBuf.Free;
1775
  FreeAndNil(BoxBuf);
1621
  Box2Buf.Free;
1776
  FreeAndNil(Box2Buf);
1622
end;
1777
end;
1623
 
1778
 
1624
procedure TMainForm.OutboxPaint(Sender: TObject);
1779
procedure TMainForm.OutboxPaint(Sender: TObject);
1625
begin
1780
begin
1626
  DrawGrad(TPaintbox(Sender).Tag);
1781
  DrawGrad(TPaintbox(Sender).Tag);
Line 1633... Line 1788...
1633
end;
1788
end;
1634
 
1789
 
1635
procedure TMainForm.PalClick(Sender: TObject);
1790
procedure TMainForm.PalClick(Sender: TObject);
1636
begin
1791
begin
1637
  ZeigeRichtigePalette;
1792
  ZeigeRichtigePalette;
1638
  SchreibeInt('Palette', Pal.ItemIndex);
1793
  WriteIntSetting('Palette', Pal.ItemIndex);
1639
end;
1794
end;
1640
 
1795
 
1641
procedure TMainForm.WinDialogClick(Sender: TObject);
1796
procedure TMainForm.WinDialogClick(Sender: TObject);
1642
begin
1797
begin
1643
  WinColorDialog.Color := ColorPanel.Color;
1798
  WinColorDialog.Color := ColorPanel.Color;
Line 1645... Line 1800...
1645
    LadeFarbe(WinColorDialog.Color);
1800
    LadeFarbe(WinColorDialog.Color);
1646
end;
1801
end;
1647
 
1802
 
1648
procedure TMainForm.WebcolorBoxClick(Sender: TObject);
1803
procedure TMainForm.WebcolorBoxClick(Sender: TObject);
1649
begin
1804
begin
1650
  html.Text := webfarben[webcolorbox.ItemIndex];
1805
  html.Text := UpperCase(webfarben[webcolorbox.ItemIndex]);
1651
 
1806
 
1652
  R.OnChange := nil;
1807
  R.OnChange := nil;
1653
  G.OnChange := nil;
1808
  G.OnChange := nil;
1654
  B.OnChange := nil;
1809
  B.OnChange := nil;
1655
 
1810
 
Line 1670... Line 1825...
1670
 
1825
 
1671
  AktualisiereWert(r);
1826
  AktualisiereWert(r);
1672
  AktualisiereWert(g);
1827
  AktualisiereWert(g);
1673
  AktualisiereWert(b);
1828
  AktualisiereWert(b);
1674
 
1829
 
1675
  // WebcolorBox muss nicht mehr ignoriert werden, da wir nun "WebZustimmend"
1830
  // WebcolorBox muss nicht mehr ignoriert werden, da wir nun "CheckWebfarben"
1676
  // verwenden und nichts mehr in der WebcolorBox markieren
1831
  // verwenden und nichts mehr in der WebcolorBox markieren
1677
  // AktualisiereFarben(true, 2);
1832
  // AktualisiereFarben(true, 2);
1678
  AktualisiereFarben(true);
1833
  AktualisiereFarben(true);
1679
end;
1834
end;
1680
 
1835
 
Line 1682... Line 1837...
1682
var
1837
var
1683
  i: integer;
1838
  i: integer;
1684
begin
1839
begin
1685
  WebZutreffend.Clear;
1840
  WebZutreffend.Clear;
1686
  if webcolorbox.itemindex <> -1 then
1841
  if webcolorbox.itemindex <> -1 then
1687
    if html.text <> webfarben[webcolorbox.itemindex] then
1842
    if not SameText(html.text, webfarben[webcolorbox.itemindex]) then
1688
      webcolorbox.itemindex := -1;
1843
      webcolorbox.itemindex := -1;
1689
  for i := 0 to high(webfarben) do
1844
  for i := 0 to high(webfarben) do
1690
  begin
1845
  begin
1691
    if html.text = webfarben[i] then
1846
    if SameText(html.text, webfarben[i]) then
1692
      WebZutreffend.Items.add(webcolorbox.Items.Strings[i]); // Geht nicht mit mehreren Übereinstimmungen: webcolorbox.ItemIndex := i;
1847
      WebZutreffend.Items.add(webcolorbox.Items.Strings[i]); // Geht nicht mit mehreren Übereinstimmungen: webcolorbox.ItemIndex := i;
1693
  end;
1848
  end;
1694
end;
1849
end;
1695
 
1850
 
1696
procedure TMainForm.CheckDelphiFarben;
1851
procedure TMainForm.CheckDelphiFarben;
Line 1720... Line 1875...
1720
end;
1875
end;
1721
 
1876
 
1722
procedure TMainForm.LinkClick(Sender: TObject);
1877
procedure TMainForm.LinkClick(Sender: TObject);
1723
begin
1878
begin
1724
  if sender = info7 then
1879
  if sender = info7 then
1725
    ShellExecute(Application.Handle, 'open', pchar('mailto:'+tlabel(sender).caption+'?subject=ColorManager 2.0'), nil, nil, SW_SHOW);
1880
    ShellExecute(Application.Handle, 'open', pchar('mailto:'+tlabel(sender).caption+'?subject=ColorManager 2.1'), nil, nil, SW_SHOW);
1726
  if (sender = Info9) or (sender = Info13) then
1881
  if (sender = Info9) or (sender = Info13) then
1727
    ShellExecute(Application.Handle, 'open', pchar(Info9.caption), nil, nil, SW_SHOW);
1882
    ShellExecute(Application.Handle, 'open', pchar(Info9.caption), nil, nil, SW_SHOW);
1728
  if (sender = Info11) then
-
 
1729
    ShellExecute(Application.Handle, 'open', 'http://www.icq.com/people/about_me.php?uin=160106169', nil, nil, SW_SHOW);
-
 
1730
  if (sender = Info14) then
1883
  if (sender = Info14) then
1731
    ShellExecute(Application.Handle, 'open', 'http://www.viathinksoft.de/', nil, nil, SW_SHOW);
1884
    ShellExecute(Application.Handle, 'open', 'https://www.viathinksoft.de/', nil, nil, SW_SHOW);
1732
  if (sender = Info15) then
1885
  if (sender = Info15) then
1733
    ShellExecute(Application.Handle, 'open', 'http://www.viathinksoft.de/index.php?page=projektanzeige&seite=projekt-20', nil, nil, SW_SHOW);
1886
    ShellExecute(Application.Handle, 'open', 'https://www.viathinksoft.de/projects/colormanager', nil, nil, SW_SHOW);
1734
end;
1887
end;
1735
 
1888
 
1736
var
1889
var
1737
  ColorTmrDurchlauf: integer;
1890
  ColorTmrDurchlauf: integer;
1738
 
1891
 
Line 1743... Line 1896...
1743
    ColorTmrDurchlauf := ColorTmrDurchlauf - 360;
1896
    ColorTmrDurchlauf := ColorTmrDurchlauf - 360;
1744
  if panel4.Visible then
1897
  if panel4.Visible then
1745
    Info1.Font.Color := hsvtorgb(ColorTmrDurchlauf, 255, 200);
1898
    Info1.Font.Color := hsvtorgb(ColorTmrDurchlauf, 255, 200);
1746
end;
1899
end;
1747
 
1900
 
1748
procedure TMainForm.SchreibeInt(name: string; wert: integer);
1901
procedure TMainForm.WriteIntSetting(name: string; wert: integer);
1749
var
1902
var
1750
  reg: TRegistry;
1903
  reg: TRegistry;
1751
begin
1904
begin
1752
  reg := tregistry.Create;
1905
  reg := tregistry.Create;
1753
  try
1906
  try
Line 1758... Line 1911...
1758
  finally
1911
  finally
1759
    Reg.Free;
1912
    Reg.Free;
1760
  end;
1913
  end;
1761
end;
1914
end;
1762
 
1915
 
1763
function TMainForm.LeseInt(name: string): integer;
1916
function TMainForm.ReadIntSetting(name: string): integer;
1764
var
1917
var
1765
  reg: TRegistry;
1918
  reg: TRegistry;
1766
begin
1919
begin
1767
  result := 0;
1920
  result := 0;
1768
  reg := tregistry.Create;
1921
  reg := tregistry.Create;
Line 1777... Line 1930...
1777
  end;
1930
  end;
1778
end;
1931
end;
1779
 
1932
 
1780
procedure TMainForm.SaveEditChange(Sender: TObject);
1933
procedure TMainForm.SaveEditChange(Sender: TObject);
1781
begin
1934
begin
1782
  SchreibeInt(tedit(sender).GetNamePath, strtoint(tedit(sender).text));
1935
  WriteIntSetting(tedit(sender).GetNamePath, strtoint(tedit(sender).text));
1783
end;
1936
end;
1784
 
1937
 
1785
procedure TMainForm.ColorClick(Sender: TObject; Button: TMouseButton;
1938
procedure TMainForm.ColorClick(Sender: TObject; Button: TMouseButton;
1786
  Shift: TShiftState; X, Y: Integer);
1939
  Shift: TShiftState; X, Y: Integer);
1787
var
1940
var