Drag n Drop w synedit | przesuwanie suwaka

0

Witam, prosze o pomoc. Mianowicie jak uaktywnic drag n drop np z pulpitu na synedit.

  1. jak zasymulowac nacisniecie scrollbara przesuwajacego tekst np by przesunac tekst w dol - ok na to juz mam odpowiedz >
var
i:integer ;
begin
i:=0;
memo1.Perform(WM_VScroll, SB_LINEDOWN, i+1);

w timerze przesuwa w dol :)

ale prosze op omoc z syneditem

0

TSynEdit.Options.eoDropFiles

0
DriveX napisał(a)
var
i:integer ;
begin
i:=0;
memo1.Perform(WM_VScroll, SB_LINEDOWN, i+1);

w timerze przesuwa w dol :)

szczerze wątpię w potrzebę istnienia tutaj zmiennej i skoro zawsze ma mieć wartość 1 :/

0
Deti napisał(a)

TSynEdit.Options.eoDropFiles

i tylko tyle ? mam to na true ale i tak jak przesuwam to sie nic nie dzieje ><

0

a co chcesz dokładnie zrobić ?

może tak:

w private

    procedure WMDROPFILES(var M: TWMDROPFILES); message WM_DROPFILES;

w implementation

procedure TForm1.WMDROPFILES(var M: TWMDROPFILES);
var NumFiles, i : integer;
  buffer : array[0..MAX_PATH] of char;
  lista: TStrings;
begin
  lista:=TStringList.Create;
  lista.Clear;
  try
    NumFiles := DragQueryFile(M.Drop, $FFFFFFFF, nil, 0);
    if (NumFiles > 0) then for i := 0 to (NumFiles - 1) do begin
      buffer[0] := #0;
      DragQueryFile(M.Drop, i, @buffer, SizeOf(buffer));
      lista.Add(buffer);
    end; // w lista będziemy mieli listę plików najechanych
    if(lista.Count > 0) and (FileExists(lista.Strings[0])) then
      SynEdit1.LoadFromFile(lista.Strings[0]);
  finally
    lista.Free;
  end;
end;

w oncreate:

  DragAcceptFiles(Handle, True);

lub ew. chyba można:

  DragAcceptFiles(SynEdit1.Handle, True);

to ogólnie do wszystkich komponentów coś można tak wrzucać a nie miałem nigdy styczności z SynEdit'em więc nie wiem co ma być w miejscu SynEdit1.LoadFromFile - ogólnie funkcja wczytująca plik

(kod skopiowany z jednego unita jakiegoś mojego programiku starego - oryginalnie wzięty chyba z tego forum ale niestety źródła nie znam :( i lekko przerobiony, nie chce mi się sprawdzać ale możliwe że do uses trzeba dodać ShlObj)

0

i tylko tyle ? mam to na true ale i tak jak przesuwam to sie nic nie dzieje ><

Zajrzałeś w zdarzenia SynEdit?

procedure TForm1.SynEdit1DropFiles(Sender: TObject; X, Y: Integer;
AFiles: TStrings);

0

Wporzadku dzieki Deti I Adamo. Wykorzystalem to co mi podpowiedzieliscie, odpowiednio przerobilem i poprawilem i jakos dziala :)
Dzieki jeszcze raz !

1 użytkowników online, w tym zalogowanych: 0, gości: 1